Criação e atualização de políticas: validação do mecanismo por política
Ao criar ou atualizar políticas diretamente (não por meio de geração), a validação e a análise levam em consideração a nova política, bem como suas interações com todas as políticas preexistentes no mecanismo de políticas.
Como funciona
-
A política é verificada em relação ao esquema Cedar para todos os gateways associados ao mecanismo de políticas. As verificações de esquema sempre são executadas independentemente do modo de validação.
-
Se o modo de validação estiver definido como
FAIL_ON_ANY_FINDINGS, a validação semântica será executada no contexto de todo o mecanismo de políticas, verificando políticas excessivamente permissivas, excessivamente restritivas e ineficazes. Se as verificações de esquema ou a validação semântica produzirem descobertas, a política será rejeitada. Para obter detalhes sobre cada verificação, consulte Visão geral da validação e análise.
nota
ComIGNORE_ALL_FINDINGS, somente verificações de esquema são executadas. As políticas são aceitas desde que passem pelas verificações do esquema. Para obter mais informações, consulte Adicionar políticas ao mecanismo de políticas.
Exemplo: criar uma política com validação
Crie uma política com validação rigorosa que rejeite políticas com quaisquer descobertas:
aws bedrock-agentcore-control create-policy \ --policy-engine-id MyEngine-abc123 \ --name RestrictRefunds \ --validation-mode FAIL_ON_ANY_FINDINGS \ --definition '{ "cedar": { "statement": "forbid(\n principal,\n action == Action::\"processRefund\",\n resource\n) when {\n context.amount > 1000\n};" } }'
A resposta indica que a política está sendo criada:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Verifique o status da política para confirmar se a validação foi aprovada:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Quando a validação é aprovada, a política se torna ativa:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Exemplo: falha na validação
Se uma política fizer referência a uma ação que não existe no esquema de nenhum gateway associado, a validação falhará:
aws bedrock-agentcore-control create-policy \ --policy-engine-id MyEngine-abc123 \ --name InvalidPolicy \ --validation-mode FAIL_ON_ANY_FINDINGS \ --definition '{ "cedar": { "statement": "permit(\n principal,\n action == Action::\"nonExistentTool\",\n resource\n);" } }'
Quando você verifica o status da política, a resposta mostra a falha na validação:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id InvalidPolicy-jkl012
{ "policyId": "InvalidPolicy-jkl012", "status": "CREATE_FAILED", "statusReasons": [ "Validation failed: Action 'nonExistentTool' is not defined in the schema for any associated gateway" ] }