Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Condizioni delle policy
Le condizioni aggiungono una logica dettagliata alle politiche utilizzando when clausole e: unless
when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 }
Tipi di condizioni
-
when { … }- La politica si applica solo se la condizione è vera -
unless { … }- La politica si applica solo se la condizione è falsa -
when guardrails { … }- La politica si applica solo se la condizione dichiarata sull'uscita di uno o più guardrail risulta vera -
unless guardrails { … }- La policy si applica solo se la condizione dichiarata sull'uscita di uno o più guardrail risulta falsa
Argomenti dello strumento
context.inputcontiene gli argomenti passati alla chiamata allo strumento:
context.input.amount < 500
Quando un utente chiama RefundTool___process_refund con argomenti come:
{ "orderId": "12345", "amount": 450, "reason": "Defective product" }
La policy può accedere a questi valori:
-
context.input.orderId→ «12345" -
context.input.amount→ 450 -
context.input.reason→ «Prodotto difettoso»
Le politiche possono prendere decisioni in base a parametri specifici di chiamata allo strumento.
Attributi principali
Gli attributi principali differiscono in base al tipo di autenticazione configurato per il AgentCore Gateway.
Dichiarazioni OAuth (tag)
Per i OAuth-authenticated gateway, le attestazioni JWT derivanti dal token OAuth vengono archiviate come tag sull'entità. OAuthUser Esempio di affermazioni JWT:
{ "sub": "user-123", "username": "refund-agent", "scope": "refund:write admin:read", "role": "admin" }
Queste affermazioni diventano etichette sull'entità principale. Controlla se esiste un tag:
principal.hasTag("username")
Ottieni un valore per il tag:
principal.getTag("username") == "refund-agent"
Corrispondenza dei modelli:
principal.getTag("scope") like "*refund:write*"
Attributi delle entità IAM
Per i IAM-authenticated gateway, il principale ha un id attributo contenente l'ARN IAM del chiamante. I principali IAM non supportano i tag.
Formato dell'entità principale
Il principio Cedar per i IAM-authenticated gateway è. AgentCore::IamEntity L'principal.idattributo contiene l'ARN IAM del chiamante.
Per i chiamanti che si autenticano tramite un ruolo IAM presunto, l'ID dell'entità principal.id e Cedar utilizzano il formato:
arn:aws:sts::<account-id>:assumed-role/<role-name>
Ad esempio, se un chiamante assume il ruoloMyServiceRole, l'ID dell'entità Cedar è:
AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/MyServiceRole"
Questo formato è stabile per tutte le chiamate, quindi puoi principal == utilizzarlo per una corrispondenza esatta dei ruoli.
Abbinamento del modello con like
Puoi anche utilizzare l'likeoperatore con i caratteri jolly per una corrispondenza più ampia:
// Match any role in a specific account principal.id like "arn:aws:sts::123456789012:assumed-role/*" // Match specific AWS account (any ARN format) principal.id like "*:123456789012:*" // Match a specific IAM role name across any account principal.id like "arn:aws:sts::*:assumed-role/AdminRole"
Operatori logici
Combina più condizioni utilizzando operatori logici:
-
&&- AND (tutte le condizioni devono essere vere) -
||- OR (almeno una condizione deve essere vera) -
!- NOT (nega una condizione)
Esempio:
principal.hasTag("username") && // User must have username tag principal.getTag("username") == "refund-agent" && // Username must be "refund-agent" context.input.amount < 500 // Amount must be less than $500