Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I criteri di accesso agli strumenti consentono di controllare quali strumenti possono essere usati dall'agente. Si impostano regole come "nega tutti i comandi di eliminazione", "consenti il monitoraggio delle query senza approvazione" o "chiedi prima delle distribuzioni". Queste regole si applicano indipendentemente dalla modalità di aggiunta dello strumento all'agente.
Le policy operano insieme ad altri controlli, come le modalità di esecuzione, gli hook e la governance dei connettori. Se non si configurano criteri, l'agente usa le modalità di esecuzione e le impostazioni del connettore come impostazioni predefinite.
Tre ambiti per i criteri di accesso agli strumenti
Impostare i criteri a tre livelli.
| Scope | Chi lo imposta | Regole consentite | Cosa copre |
|---|---|---|---|
| Global | Admin | Consenti, Chiedi, Nega | Tutti gli agenti e le conversazioni personalizzati su questo agente SRE |
| Agente personalizzato | Amministratore o autore | Consenti solo | Tutte le conversazioni per un unico agente personalizzato |
| Discussione | Qualsiasi utente | Consenti solo | Una conversazione |
Solo l'ambito globale può negare l'accesso agli strumenti. Gli ambiti dell'agente personalizzato e dei thread possono aggiungere solo regole di autorizzazione. Ampliano l'accesso all'interno dei confini globali, ma non possono mai indebolire una negazione globale.
Come vengono valutate le regole dei criteri di accesso agli strumenti
Quando l'agente chiama uno strumento, controlla le regole in questo ordine:
- Negare (solo globale): se corrisponde, lo strumento viene bloccato.
- Consentire (qualsiasi ambito): se corrisponde, lo strumento viene eseguito immediatamente, anche in modalità revisione.
- Ask (solo globale): se corrisponde, l'agente sospende l'approvazione in modalità di revisione o approva automaticamente in modalità autonoma.
- Nessuna corrispondenza: nessun criterio si applica, il comportamento predefinito diventa effettivo.
Tip
Se uno strumento corrisponde sia a una regola di autorizzazione sia a una regola di richiesta di conferma, la regola di autorizzazione ha la priorità. Ciò significa che un utente può aggiungere un'autorizzazione a livello di thread per saltare l'approvazione per uno strumento che ha già convalidato.
Le regole si basano su schemi glob per i nomi degli strumenti. I modelli supportano * come carattere jolly. Per gli strumenti che eseguono comandi (interfaccia della riga di comando di Azure, kubectl, bash, Python), usare la sintassi toolGlob(argGlob) per far corrispondere gli argomenti:
| Pattern | Corrispondenze |
|---|---|
RunAzCliWriteCommands |
Qualsiasi comando interfaccia della riga di comando di Azure che esegue operazioni di scrittura |
bash(az * delete *) |
Qualsiasi az ... delete ... comando tramite strumenti bash/shell |
RunKubectlReadCommand(kubectl get *) |
Qualsiasi kubectl get comando |
* |
Tutti gli strumenti |
Il nome dello strumento nel modello deve corrispondere al nome dello strumento di runtime. Gli alias bash, shell e execute_bash si espandono per corrispondere a tutti gli strumenti da riga di comando (interfaccia della riga di comando di Azure, kubectl, comandi della shell), ma non agli strumenti Python o PDF. Usare ExecutePythonCode direttamente per i modelli di Python.
Nomi degli strumenti di runtime che supportano i modelli di argomento:
| Nome strumento | Che cosa viene eseguito |
|---|---|
RunInTerminal |
Comandi del terminale |
RunShellCommand |
Comandi della shell |
RunAzCliReadCommands |
Operazioni di lettura di interfaccia della riga di comando di Azure |
RunAzCliWriteCommands |
Operazioni di scrittura di interfaccia della riga di comando di Azure |
RunKubectlReadCommand |
Operazioni di lettura kubectl |
RunKubectlWriteCommand |
operazioni di scrittura di kubectl |
ExecutePythonCode |
Script di Python |
RunPsqlReadCommand |
Query di lettura di PostgreSQL |
ValidatePsqlCommand |
Convalida dei comandi PostgreSQL |
GeneratePdfReport |
Generazione di report PDF |
Funzionamento dei criteri con altri controlli
L'agente dispone di diversi controlli che determinano se una chiamata dello strumento procede. Vengono valutati in ordine di priorità:
Importante
La restituzione di un hook definito dall'utente consente di eseguire l'override delle regole dei criteri, inclusa la negazione globale. Gli hook di sistema non possono attivare questa override. Ogni override viene registrato nel log di audit. Solo gli amministratori dell'agente SRE possono creare hook.
| Priority | Controllo | Funzionamento |
|---|---|---|
| Massima | Hook | Gli script o i giudici LLM valutano la chiamata allo strumento nel contesto. Un hook consente di saltare tutto ciò che segue. Un hook di rifiuto blocca immediatamente. |
| Inattivo | Criteri di accesso agli strumenti | Consenti, chiedi o nega in base allo schema del nome dello strumento. Un criterio di rifiuto blocca. Un criterio consente di saltare l'approvazione predefinita. |
| Inattivo | Approvazione predefinita | Gli strumenti Ask e RequiresApproval del connettore mettono in pausa il processo in attesa dell'approvazione dell'utente. |
| Più basso | Modalità di esecuzione | La modalità di revisione mette in pausa, la modalità autonoma approva automaticamente. |
Cosa accade in ogni scenario
| Criteri degli hook | Criteri di accesso | Connettore/Richiede approvazione | Modalità di esecuzione | Result |
|---|---|---|---|---|
| Consenti | qualsiasi (saltato) | qualsiasi (saltato) | qualsiasi (saltato) | Esegue immediatamente |
| Nega | qualsiasi (saltato) | qualsiasi (saltato) | qualsiasi (saltato) | Bloccati |
| Chiedi | qualsiasi (saltato) | qualsiasi (saltato) | qualsiasi (saltato) | L'utente approva |
| Nessun criterio | Nega | qualsiasi (saltato) | qualsiasi (saltato) | Bloccati |
| Nessun criterio | Consenti | qualsiasi (saltato) | qualsiasi (saltato) | Esegue immediatamente |
| Nessun criterio | Chiedi | (nessuno) | Review | L'utente approva |
| Nessun criterio | Chiedi | (nessuno) | Autonomo | Approvato automaticamente |
| Nessun criterio | Nessuna corrispondenza | Chiedere (connettore o richiede approvazione) | Review | L'utente approva |
| Nessun criterio | Nessuna corrispondenza | Chiedi (connettore o Richiede approvazione) | Autonomo | Approvato automaticamente |
| Nessun criterio | Nessuna corrispondenza | No | qualsiasi | Esegue |
Nessuna policy = nessun hook configurato oppure gli hook non si sono espressi su questo strumento. Nessuna corrispondenza = nessuna regola dei criteri di accesso corrispondente a questo strumento. Non esistono regole o i modelli non lo coprono.
Scegliere il controllo corretto per lo scenario
| Vorrei... | Utilizzo |
|---|---|
| Bloccare strumenti pericolosi specifici ovunque | Criteri di negazione globali |
| Approva automaticamente gli strumenti di sola lettura sicuri | Criterio consenso (globale, agente personalizzato o thread) |
| Richiedi conferma per strumenti specifici | Criterio richiesta (globale) |
| Assegnare una deroga temporanea a un ingegnere reperibile | Criterio di autorizzazione a livello di thread |
| Impostare l'accesso diverso agli strumenti per ogni agente personalizzato | Criteri di autorizzazione personalizzati a livello di agente |
| Valutare gli argomenti o il contesto dello strumento prima di decidere | Hook |
| Controllare quali operazioni SaaS sono disponibili | Connettori gestiti |
| Impostare il flusso di lavoro di approvazione generale | Modalità di esecuzione |
Configurare i criteri di accesso agli strumenti
Criteri globali
Impostato tramite Impostazioni > Autorizzazioni > nel portale o tramite l'API:
curl -X PUT "https://<agent>/api/v2/agent/settings/global" \
-H "Content-Type: application/json" \
-d '{
"permissions": {
"allow": ["RunAzCliReadCommands", "RunKubectlReadCommand(kubectl get *)"],
"ask": ["RunKubectlWriteCommand(kubectl apply *)"],
"deny": ["bash(az * delete *)", "RunKubectlWriteCommand(kubectl delete *)"]
}
}'
Criteri personalizzati a livello di agente (solo autorizzazione)
curl -X PUT "https://<agent>/api/v2/extendedAgent/my-k8s-agent/permissions" \
-H "Content-Type: application/json" \
-d '{ "allow": ["RunKubectlWriteCommand(kubectl apply *)", "RunKubectlWriteCommand(kubectl rollout *)"] }'
Criteri a livello di thread (consenti solo)
curl -X PUT "https://<agent>/api/v2/threads/<thread-id>/permissions" \
-H "Content-Type: application/json" \
-d '{ "allow": ["RunKubectlWriteCommand(kubectl apply -f deploy.yaml)"] }'
Limits
| Limit | Value |
|---|---|
| Modelli per ambito | Massimo 1.000 |
| Formato schema | Glob del nome dello strumento (supporta * carattere jolly) oppure toolGlob(argGlob) per gli strumenti di comando |
| Corrispondenza degli argomenti | Supportato solo dagli strumenti di esecuzione dei comandi (bash, shell, execute_bash gli alias si espandono a tutti gli strumenti di comando) |