Creazione e aggiornamento delle politiche: convalida del motore per policy
Quando si creano o si aggiornano le politiche direttamente (non tramite la generazione), la convalida e l'analisi tengono conto della nuova politica e delle sue interazioni con tutte le politiche preesistenti nel motore delle politiche.
Come funziona
-
La policy viene verificata rispetto allo schema Cedar per tutti i gateway associati al policy engine. I controlli dello schema vengono sempre eseguiti indipendentemente dalla modalità di convalida.
-
Se la modalità di convalida è impostata su
FAIL_ON_ANY_FINDINGS, la convalida semantica viene eseguita nel contesto dell'intero motore delle politiche, verificando la presenza di politiche eccessivamente permissive, eccessivamente restrittive e inefficaci. Se i controlli dello schema o la convalida semantica producono risultati, la policy viene rifiutata. Per i dettagli su ogni controllo, consulta Panoramica sulla convalida e l'analisi.
Nota
ConIGNORE_ALL_FINDINGS, vengono eseguiti solo i controlli dello schema. Le politiche sono accettate purché superino i controlli dello schema. Per ulteriori informazioni, consulta Aggiungere politiche al Policy Engine.
Esempio: creare una politica con convalida
Crea una politica con una convalida rigorosa che rifiuti le politiche con qualsiasi risultato:
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 risposta indica che la politica è in fase di creazione:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Controlla lo stato della politica per confermare che la convalida è stata superata:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Una volta completata la convalida, la policy diventa attiva:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Esempio: errore di convalida
Se una policy fa riferimento a un'azione che non esiste nello schema di alcun gateway associato, la convalida fallisce:
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);" } }'
Quando si controlla lo stato della politica, la risposta mostra l'errore di convalida:
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" ] }