View a markdown version of this page

Geração de políticas: validação por política - Amazon Bedrock AgentCore

Geração de políticas: validação por política

Ao usar o serviço de criação de políticas para gerar políticas a partir da linguagem natural, a validação e a análise ocorrem por política individual durante a geração.

Como funciona

  1. A linguagem natural é convertida em uma política de cedro

  2. Cada política gerada é validada em relação ao esquema do gateway

  3. A análise é executada em cada política individualmente

  4. Os resultados estão disponíveis na resposta de geração

Exemplo: gerar e validar uma política

A recuperação dos resultados da geração é um processo de duas etapas: primeiro verifique o status da geração e, em seguida, liste os ativos gerados para ver as políticas e seus resultados de validação.

Inicie uma geração de políticas:

aws bedrock-agentcore-control start-policy-generation \ --policy-engine-id MyEngine-abc123 \ --name RefundPolicy \ --content '{ "rawText": "Allow customer service agents to process refunds up to 500 dollars for orders placed within the last 30 days" }' \ --resource '{ "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" }'

A resposta inclui um ID e um status de geração de política:

{ "policyGenerationId": "RefundPolicy-def456", "policyEngineId": "MyEngine-abc123", "status": "GENERATING" }

Verifique o status da geração usandoget-policy-generation:

aws bedrock-agentcore-control get-policy-generation \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456

A resposta mostra o status geral da geração:

{ "policyGenerationId": "RefundPolicy-def456", "status": "GENERATED", "statusReasons": [] }

Quando o status forGENERATED, liste os ativos gerados para recuperar as políticas e suas descobertas de validação por política:

aws bedrock-agentcore-control list-policy-generation-assets \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456

A resposta inclui cada política gerada com suas conclusões de definição e validação do Cedar:

{ "policyGenerationAssets": [ { "policyGenerationAssetId": "asset-1", "definition": { "cedar": { "statement": "permit(\n principal is AgentCore::OAuthUser,\n action == AgentCore::Action::\"RefundTool___process_refund\",\n resource == AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789\"\n) when {\n context.input.amount <= 500\n};" } }, "findings": [ { "type": "VALID" } ], "rawTextFragment": "Allow customer service agents to process refunds up to 500 dollars" }, { "policyGenerationAssetId": "asset-2", "definition": { "cedar": { "statement": "permit(\n principal,\n action == AgentCore::Action::\"RefundTool___view_order_history\",\n resource\n);" } }, "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ], "rawTextFragment": "Allow customer service agents to view order history" } ] }

Conclusões de validação por política

Cada ativo de política gerado inclui uma findings matriz de Finding objetos, cada um com um type description e. Os exemplos a seguir mostram diferentes tipos de descoberta:

Uma política que passou pela validação e análise:

{ "findings": [ { "type": "VALID" } ] }

Uma política marcada como excessivamente permissiva:

{ "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ] }

Uma política que não pôde ser gerada a partir da entrada em linguagem natural:

{ "findings": [ { "type": "NOT_TRANSLATABLE", "description": "Unsupported Condition Error: The request includes conditions that rely on data or attributes currently not supported." } ] }

Conclusões comuns para políticas geradas

A tabela a seguir descreve os tipos de descoberta que podem ser retornados para as políticas geradas:

Tipo de descoberta Gravidade Description Ação recomendada

VALID

Bem-sucedida

A política é válida, Cedar, sem descobertas. Nenhuma descrição é retornada para esse tipo de descoberta.

Nenhuma ação necessária. A política está pronta para uso.

INVALID

Erro

A política Cedar gerada contém erros de sintaxe ou não está em conformidade com o esquema do gateway.

Analise a política gerada em busca de violações de esquema ou problemas de sintaxe. Reformule a entrada da linguagem natural e regenere.

NOT_TRANSLATABLE

Erro

A linguagem natural não pôde ser convertida em cedro válido. A solicitação pode incluir condições que dependem de dados ou atributos não compatíveis.

Verifique novamente o recurso de gateway direcionado para a definição das ferramentas.

ALLOW_ALL

Aviso

A política de permissão se aplica a todas as combinações principais, de ações e de recursos.

Confirme se o acesso irrestrito é pretendido. Adicione condições para restringir o escopo, caso contrário.

ALLOW_NONE

Aviso

A política de licenças não é determinante porque não permite nada.

Revise as condições da política. A política pode conter condições contraditórias ou inacessíveis.

DENY_ALL

Aviso

A política nega todas as ações de todos os diretores.

Confirme se a intenção é negar totalmente. Isso substitui todas as políticas de permissão devido à semântica de proibição-substituição-permissão.

DENY_NONE

Aviso

A política de proibição não é determinante porque não nega nada.

Revise as condições da política. A política de proibição pode conter condições contraditórias ou inacessíveis.