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