Création et mise à jour de politiques : validation par moteur de stratégie
Lorsque vous créez ou mettez à jour des politiques directement (et non par génération), la validation et l'analyse prennent en compte la nouvelle politique ainsi que ses interactions avec toutes les politiques préexistantes dans le moteur de politiques.
Comment ça marche
-
La politique est vérifiée par rapport au schéma Cedar pour toutes les passerelles associées au moteur de politiques. Les contrôles de schéma sont toujours exécutés quel que soit le mode de validation.
-
Si le mode de validation est défini sur
FAIL_ON_ANY_FINDINGS, la validation sémantique s'exécute dans le contexte de l'ensemble du moteur de politiques, en vérifiant les politiques trop permissives, trop restrictives et inefficaces. Si des vérifications de schéma ou une validation sémantique produisent des résultats, la politique est rejetée. Pour plus de détails sur chaque contrôle, voir Présentation de la validation et de l'analyse.
Note
AvecIGNORE_ALL_FINDINGS, seules les vérifications de schéma sont exécutées. Les politiques sont acceptées tant qu'elles passent avec succès les vérifications du schéma. Pour plus d'informations, voir Ajouter des politiques au moteur de politiques.
Exemple : création d'une politique avec validation
Créez une politique avec une validation stricte qui rejette les politiques quelles que soient les conclusions :
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};" } }'
La réponse indique que la politique est en cours de création :
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Vérifiez l'état de la politique pour confirmer que la validation a été réussie :
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Lorsque la validation est réussie, la politique devient active :
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Exemple : échec de validation
Si une politique fait référence à une action qui n'existe dans aucun schéma de passerelle associé, la validation échoue :
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);" } }'
Lorsque vous vérifiez l'état de la politique, la réponse indique l'échec de validation :
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" ] }