Criteri di accesso agli strumenti in Azure agente SRE

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:

  1. Negare (solo globale): se corrisponde, lo strumento viene bloccato.
  2. Consentire (qualsiasi ambito): se corrisponde, lo strumento viene eseguito immediatamente, anche in modalità revisione.
  3. Ask (solo globale): se corrisponde, l'agente sospende l'approvazione in modalità di revisione o approva automaticamente in modalità autonoma.
  4. 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)