View a markdown version of this page

Génération de politiques : validation par politique - Amazon Bedrock AgentCore

Génération de politiques : validation par politique

Lorsque vous utilisez le service de création de politiques pour générer des politiques à partir du langage naturel, la validation et l'analyse sont effectuées par stratégie individuelle lors de la génération.

Comment ça marche

  1. Le langage naturel est converti en une politique Cedar

  2. Chaque politique générée est validée par rapport au schéma de passerelle

  3. L'analyse est exécutée sur chaque politique individuellement

  4. Les résultats sont disponibles dans la réponse de génération

Exemple : génération et validation d'une politique

L'extraction des résultats de génération s'effectue en deux étapes : vérifiez d'abord l'état de la génération, puis listez les actifs générés pour voir les politiques et les résultats de leur validation.

Lancez la génération d'une politique :

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" }'

La réponse inclut un identifiant et un statut de génération de politique :

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

Vérifiez l'état de la génération à l'aide de get-policy-generation :

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

La réponse indique l'état général de la génération :

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

Une fois que le statut est GENERATED atteint, listez les actifs générés pour récupérer les politiques et les résultats de leur validation par politique :

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

La réponse inclut chaque politique générée avec sa définition Cedar et ses résultats de validation :

{ "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" } ] }

Résultats de validation par politique

Chaque actif de politique généré inclut un findings ensemble d'Findingobjets, chacun avec un type etdescription. Les exemples suivants présentent différents types de recherche :

Une politique qui a passé avec succès la validation et l'analyse :

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

Une politique signalée comme trop permissive :

{ "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" } ] }

Une politique qui n'a pas pu être générée à partir de l'entrée en langage naturel :

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

Conclusions communes pour les politiques générées

Le tableau suivant décrit les types de recherche qui peuvent être renvoyés pour les politiques générées :

Type de résultat Sévérité Description Action recommandée

VALID

Réussite

La politique est valide chez Cedar sans résultats. Aucune description n'est renvoyée pour ce type de recherche.

Aucune action requise. La politique est prête à être utilisée.

INVALID

Erreur

La politique Cedar générée contient des erreurs de syntaxe ou n'est pas conforme au schéma de passerelle.

Passez en revue la politique générée pour détecter les violations de schéma ou les problèmes de syntaxe. Reformulez la saisie en langage naturel et régénérez.

NOT_TRANSLATABLE

Erreur

Le langage naturel n'a pas pu être converti en Cedar valide. La demande peut inclure des conditions qui reposent sur des données ou des attributs non pris en charge.

Vérifiez la ressource de passerelle ciblée pour la définition des outils.

ALLOW_ALL

Avertissement

La politique d'autorisation s'applique à toutes les combinaisons de principal, d'action et de ressources.

Confirmez que l'accès illimité est prévu. Ajoutez des conditions pour restreindre la portée si ce n'est pas le cas.

ALLOW_NONE

Avertissement

La politique en matière de permis n'est pas déterminante car elle n'autorise rien.

Passez en revue les conditions de la politique. La politique peut contenir des conditions contradictoires ou inaccessibles.

DENY_ALL

Avertissement

La politique refuse toutes les actions pour tous les mandants.

Confirmez qu'un refus complet est prévu. Cela annule toutes les politiques d'autorisation en raison de la sémantique « interdid-override-permit ».

DENY_NONE

Avertissement

La politique d'interdiction n'est pas déterminante car elle ne nie rien.

Passez en revue les conditions de la politique. La politique d'interdiction peut contenir des conditions contradictoires ou inaccessibles.