View a markdown version of this page

Génération de politiques : validation par politique - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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 politique individuelle lors de la génération.

Comment ça marche

  1. Le langage naturel est converti en une politique en cèdre

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

  3. L'analyse s'exécute sur chaque politique individuellement

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

Exemple : générer et valider une politique

La récupération des résultats de génération se fait en deux étapes : vérifiez d'abord l'état de la génération, puis dressez la liste des actifs générés pour voir les politiques et leurs résultats de 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 le statut définiGENERATED, répertoriez les actifs générés pour récupérer les politiques et leurs résultats de 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é comprend un findings tableau d'Findingobjets, chacun étant doté d'un type etdescription. Les exemples suivants présentent différents types de résultats :

Une politique qui a été validée et analysée avec succès :

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

Une politique considéré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 la saisie en langage naturel :

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

Constatations 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 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 la passerelle.

Consultez 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 s'appuient 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.

Vérifiez 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 directeurs.

Confirmez qu'un refus complet est prévu. Cela annule toutes les politiques d'autorisation en raison de la sémantique forbid-overrides-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.