As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Condições de políticas
As condições adicionam uma lógica refinada às políticas que usam when cláusulas e: unless
when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 }
Tipos de condição
-
when { … }- A política se aplica somente se a condição for verdadeira -
unless { … }- A política se aplica somente se a condição for falsa -
when guardrails { … }- A política se aplica somente se a condição declarada nas saídas de um ou mais guardrails for avaliada como verdadeira -
unless guardrails { … }- A política se aplica somente se a condição declarada na (s) saída (s) de um ou mais guardrails for avaliada como falsa
Argumentos da ferramenta
context.inputcontém os argumentos passados para a chamada da ferramenta:
context.input.amount < 500
Quando um usuário liga RefundTool___process_refund com argumentos como:
{ "orderId": "12345", "amount": 450, "reason": "Defective product" }
A política pode acessar esses valores:
-
context.input.orderId→ “12345" -
context.input.amount→ 450 -
context.input.reason→ “Produto com defeito”
As políticas podem tomar decisões com base em parâmetros específicos de chamada de ferramentas.
Atributos principais
Os atributos principais diferem com base no tipo de autenticação configurado para seu AgentCore Gateway.
Declarações OAuth (tags)
Para OAuth-authenticated gateways, as declarações JWT do token OAuth são armazenadas como tags na entidade. OAuthUser Exemplo de reivindicações da JWT:
{ "sub": "user-123", "username": "refund-agent", "scope": "refund:write admin:read", "role": "admin" }
Essas reivindicações se tornam tags na entidade principal. Verifique se existe uma tag:
principal.hasTag("username")
Obtenha um valor de tag:
principal.getTag("username") == "refund-agent"
Correspondência de padrões:
principal.getTag("scope") like "*refund:write*"
Atributos da entidade IAM
Para IAM-authenticated gateways, o principal tem um id atributo contendo o ARN do IAM do chamador. Os diretores do IAM não oferecem suporte a tags.
Formato da entidade principal
O princípio do Cedar para IAM-authenticated gateways é. AgentCore::IamEntity O principal.id atributo contém o ARN do IAM do chamador.
Para os chamadores que se autenticam por meio de uma função presumida do IAM, o ID da entidade principal.id e o Cedar usam o formato:
arn:aws:sts::<account-id>:assumed-role/<role-name>
Por exemplo, se um chamador assumir a funçãoMyServiceRole, a ID da entidade Cedar será:
AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/MyServiceRole"
Esse formato é estável em todas as invocações, então você pode usá-lo principal == para a correspondência exata de funções.
Combinação de padrões com similares
Você também pode usar o like operador com curingas para uma correspondência mais ampla:
// 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"
Operadores lógicos
Combine várias condições usando operadores lógicos:
-
&&- E (todas as condições devem ser verdadeiras) -
||- OU (pelo menos uma condição deve ser verdadeira) -
!- NÃO (nega uma condição)
Exemplo:
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