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
-
Le langage naturel est converti en une politique en cèdre
-
Chaque politique générée est validée par rapport au schéma de passerelle
-
L'analyse s'exécute sur chaque politique individuellement
-
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 |
|---|---|---|---|
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |
|
|
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. |