View a markdown version of this page

Escrevendo políticas em linguagem natural - Amazon Bedrock AgentCore

Escrevendo políticas em linguagem natural

O Policy in AgentCore selecionará automaticamente a região ideal em sua geografia para processar suas solicitações de inferência feitas por meio do serviço de criação de políticas. Isso maximiza os recursos computacionais disponíveis, a disponibilidade do modelo e oferece a melhor experiência ao cliente. Seus dados permanecerão armazenados somente na região de origem da solicitação. No entanto, as solicitações de entrada e os resultados de saída podem ser processados fora dessa região. Todos os dados serão transmitidos criptografados pela rede segura da Amazon.

O Policy in AgentCore encaminhará com segurança suas solicitações de inferência para os recursos computacionais disponíveis na área geográfica de origem da solicitação, da seguinte forma:

  • Solicitações de inferência originadas na União Europeia serão processadas dentro da União Europeia.

  • Solicitações de inferência originadas nos Estados Unidos da América serão processadas nos Estados Unidos.

  • Solicitações de inferência originadas na APAC serão processadas dentro da APAC.

Visão geral do

O Cedar fornece controle de acesso preciso, mas requer o aprendizado da sintaxe formal. O NL2Cedar permite que você:

  1. Escreva os requisitos de autorização em linguagem natural

  2. Converta automaticamente para a sintaxe Cedar

  3. Verifique se as políticas geradas atendem aos seus requisitos

nota

A geração de políticas de linguagem natural requer um AgentCore gateway e um mecanismo de políticas implantados. O serviço usa o esquema AgentCore Gateway para gerar políticas válidas do Cedar. Consulte Introdução à política em AgentCore para obter instruções de configuração.

nota

A linguagem natural é flexível, mas a precisão é essencial para a segurança. As políticas devem ser claras e inequívocas.

Exemplo

A política de reembolso da seção anterior pode ser expressa em linguagem natural:

Linguagem natural:

Permita que o diretor com o nome de usuário “agente de reembolso” processe reembolsos quando o valor do reembolso for inferior a $500.

Converte em cedro:

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 };

Efeitos políticos

As políticas de autorização têm dois efeitos possíveis: permitir e proibir.

Políticas de permissão

As políticas de permissão especificam o que os usuários podem fazer:

  • “Permitir que o agente de reembolso do usuário processe reembolsos”

  • “Permita que usuários com função de diretor aprovem decisões”

  • “Autorize usuários com o escopo admin:write a atualizar a cobertura”

Proibir políticas

As políticas de proibição especificam o que os usuários não podem fazer:

  • “Impeça que usuários acessem modelos de alta sensibilidade”

  • “Impeça que subscritores juniores aprovem decisões”

  • “Proibir os usuários de processar reembolsos quando a validação de risco estiver pendente”

Semântica de autorização

Entender como a Cedar avalia as políticas é crucial para redigir regras de autorização eficazes. O cedro segue três princípios fundamentais:

  • Por padrão, tudo é negado. Se nenhuma política permitir explicitamente uma ação, ela será automaticamente bloqueada

  • Proibir sempre vence - Se alguma política de proibição corresponder, o acesso será negado, mesmo que as políticas de permissão também correspondam

  • É necessária pelo menos uma permissão - Para que o acesso seja concedido, pelo menos uma política de permissão deve corresponder e nenhuma política de proibição pode corresponder

Por que usar políticas de proibição se tudo é negado por padrão?

As políticas de proibição garantem que ações específicas não possam ser permitidas por engano. Mesmo que alguém escreva uma política de permissão mais ampla, a política de proibição tem precedência e bloqueia o acesso.

Exemplo de cenário:

// Broad permit policy - allows all users to view model results permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ); // Forbid policy - blocks access to high-sensitivity results forbid( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ) when { context.input.sensitivity == "high" };

Resultado: os usuários podem visualizar resultados de sensibilidade baixa e média (a permissão se aplica), mas os resultados de alta sensibilidade são sempre bloqueados (proíbe vitórias).

Use políticas de proibição para:

  • Restrições de segurança explícitas que nunca devem ser substituídas

  • Requisitos de conformidade

  • Desligamentos de emergência

  • Criação de exceções para políticas de licenciamento mais amplas

Elementos da política

As políticas de autorização exigem três elementos principais:

  1. Quem - Quais usuários ou funções podem realizar a ação

  2. O que - Quais operações ou ferramentas eles podem usar

  3. Quando - Sob quais condições ou restrições

Especificação principal

O principal identifica a quais usuários, funções ou grupos a política se aplica.

Expressões flexíveis:

  • “Permitir que o agente de reembolso do usuário...”

  • “Permita que usuários com agente de reembolso de nome de usuário...”

  • “Usuários com função de agente de seguros podem...”

  • “Qualquer pessoa com o escopo refund:write está autorizada a...”

  • “Todos os usuários podem...”

Seja específico sobre identidade:

Incompleto: ❌ “Permitir o processamento de reembolsos abaixo de $500"

Completo: ✓ “Permitir que o agente de reembolso processe reembolsos abaixo de $500"

Especificação da ação

O “o quê” identifica quais operações, ferramentas ou ações a política controla.

Verbos de ação flexíveis:

  • “Permitir que os usuários processem reembolsos”

  • “Permitir processamento de reembolso”

  • “Os usuários podem criar aplicativos”

  • “Autorizar a visualização dos registros de auditoria”

Seja específico sobre a ferramenta:

Vago: ❌ “Permitir que os usuários acessem modelos”

Claro: ✓ “Permita que a equipe de ciência de dados acesse o modelo de análise”

Especificação da condição

O “quando” especifica sob quais circunstâncias a política se aplica.

Expressões condicionais flexíveis:

  • “... quando o valor for inferior a $500"

  • “... se a região for EUA, CA ou Reino Unido”

  • “... somente quando o status de aprovação é aprovado pelo gerente”

  • “... desde que a pontuação de risco tenha sido enviada”

Seja preciso com as condições:

Vago: ❌ “Permitir transferências quando o valor for razoável”

Preciso: ✓ “Permitir transferências quando o valor for inferior a $10.000"

Exemplos de políticas

Os exemplos a seguir demonstram como estruturar políticas de linguagem natural com princípios, ações e condições claras.

Exemplo 1: User-Based Política simples

Permita que o agente de reembolso do usuário processe reembolsos quando o valor for inferior a $500.

Elementos:

  • Quem: agente de reembolso do usuário

  • O que: processar reembolsos

  • Quando: o valor é inferior a $500

Exemplo 2: Role-Based com várias condições

Permita que usuários com função de agente de seguros atualizem a cobertura quando o tipo de cobertura for responsabilidade civil ou colisão e a apólice estiver ativa.

Elementos:

  • Quem: usuários com função de agente de seguros

  • O que: atualizar a cobertura

  • Quando: o tipo de cobertura é responsabilidade ou colisão E a apólice está ativa

Exemplo 3: Scope-Based Acesso

Permita que usuários com escopo travel:book criem reservas de voos quando a região não for da UE e o produto for elegível.

Elementos:

  • Quem: usuários com escopo travel:book

  • O que: criar reservas de voos

  • Quando: a região não é da UE E o produto é elegível

Exemplo 4: Todos com restrições

Permita que todos os usuários visualizem os resultados do modelo quando a sensibilidade dos dados for baixa ou média e o tipo de resultado for pontuação de risco.

Elementos:

  • Quem: todos os usuários

  • O que: ver os resultados do modelo

  • Quando: a sensibilidade dos dados é baixa ou média E o tipo de resultado é a pontuação de risco

Sintaxe da condição

As condições são onde as políticas geralmente se tornam ambíguas. Veja como escrever condições claras e testáveis.

Comparações numéricas

Bons exemplos:

  • “quando o valor for inferior a $500"

  • “quando o valor da cobertura for inferior a 5 milhões”

  • “quando a reclamação exceder $10.000.000"

  • “quando a contagem de passageiros é exatamente 2"

Evite termos vagos:

  • ❌ “quando a quantidade é pequena”

  • ❌ “quando a cobertura é alta”

Correspondência de

Correspondência exata:

  • “quando a região é EUA”

  • “quando o método de pagamento é cartão de crédito”

  • “quando o status for aprovado”

Várias opções:

  • “quando a região é EUA, CA ou Reino Unido”

  • “quando o tipo de decisão é aprovar ou encaminhar”

Correspondência de padrões:

  • “quando o e-mail contém @example .com”

  • “quando o escopo contém admin:write”

Negação:

  • “quando a região não é a UE”

  • “quando a classificação não é restrita”

Condições boolianas

Verificações diretas:

  • “quando o produto é elegível”

  • “quando a pontuação de risco é enviada”

  • “quando o envio expresso é solicitado”

Negação:

  • “quando o produto não é elegível”

  • “quando a pontuação de risco não é enviada”

Existência do campo

Campos obrigatórios:

  • “quando um motivo é fornecido”

  • “quando existe um ID de aplicativo”

  • “quando a data de devolução é especificada”

Combinando condições

Políticas reais geralmente precisam de várias condições. Use conectores lógicos claros.

E lógica (tudo deve ser verdade)

Use palavras como: “e”, “também”, “adicionalmente”, “enquanto”, “com”

Exemplo:

Permita inscrições quando a região for os EUA e o produto estiver qualificado e o território estiver ativo.

OU Lógica (pelo menos uma deve ser verdadeira)

Use palavras como: “ou”, “alternativamente”, “ou”

Exemplo:

Permita a aprovação quando a reclamação exceder $10.000.000 ou o nível de risco for alto ou crítico.

Lógica complexa

Para condições complexas, use uma estrutura clara:

Exemplo:

Permita a finalização quando o estágio do fluxo de trabalho estiver concluído ou aprovado, o status de conformidade for aprovado e a autoridade for gerente ou diretora.

Armadilhas comuns

Evite esses erros comuns ao escrever políticas de linguagem natural para garantir que elas sejam convertidas corretamente para a sintaxe do Cedar.

Erro 1: princípios vagos

Ruim: “Permitir acesso à ferramenta de reembolso”

Bom: “Permitir que o agente de reembolso do usuário acesse a ferramenta de reembolso”

Erro 2: ações ambíguas

Ruim: “Permitir que os usuários acessem os dados”

Bom: “Permitir que os usuários visualizem os registros dos pacientes”

Erro 3: condições subjetivas

Ruim: “Permitir transferências quando o valor for razoável”

Bom: “Permitir transferências quando o valor for inferior a $10.000"

Erro 4: condições ausentes

Ruim: “Permitir que usuários com escopo admin:write atualizem a cobertura”

Bom: “Permita que usuários com escopo admin:write atualizem a cobertura quando a apólice estiver ativa e o tipo de cobertura for responsabilidade ou colisão”

Erro 5: lógica pouco clara

Ruim: “Permitir quando A ou B e C”

Bom: “Permitir quando (A ou B) e C” ou “Permitir quando A ou (B e C)”