Richtlinien erstellen und aktualisieren: Überprüfung pro Policy-Engine
Bei der direkten Erstellung oder Aktualisierung von Richtlinien (nicht durch Generierung) werden bei der Validierung und Analyse die neue Richtlinie sowie ihre Interaktionen mit allen bereits vorhandenen Richtlinien in der Policy-Engine berücksichtigt.
Funktionsweise
-
Die Richtlinie wird für alle Gateways, die mit der Policy-Engine verknüpft sind, anhand des Cedar-Schemas geprüft. Schemaprüfungen werden immer unabhängig vom Validierungsmodus ausgeführt.
-
Wenn der Validierungsmodus auf eingestellt ist
FAIL_ON_ANY_FINDINGS, wird die semantische Validierung im Kontext der gesamten Policy-Engine ausgeführt und nach zu freizügigen, zu restriktiven und ineffektiven Richtlinien gesucht. Wenn entweder Schemaprüfungen oder die semantische Validierung Ergebnisse liefern, wird die Richtlinie abgelehnt. Einzelheiten zu den einzelnen Prüfungen finden Sie unter Übersicht über Validierung und Analyse.
Anmerkung
Mit IGNORE_ALL_FINDINGS werden nur Schemaprüfungen ausgeführt. Richtlinien werden akzeptiert, solange sie die Schemaprüfungen bestehen. Weitere Informationen finden Sie unter Hinzufügen von Richtlinien zur Policy Engine.
Beispiel: Erstellen Sie eine Richtlinie mit Validierung
Erstellen Sie eine Richtlinie mit strenger Validierung, die Richtlinien mit beliebigen Ergebnissen ablehnt:
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};" } }'
Die Antwort weist darauf hin, dass die Richtlinie gerade erstellt wird:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Überprüfen Sie den Status der Richtlinie, um zu bestätigen, dass die Validierung erfolgreich war:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Wenn die Validierung erfolgreich ist, wird die Richtlinie aktiv:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Beispiel: Überprüfung fehlgeschlagen
Wenn eine Richtlinie auf eine Aktion verweist, die im Schema eines zugehörigen Gateways nicht vorhanden ist, schlägt die Überprüfung fehl:
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);" } }'
Wenn Sie den Richtlinienstatus überprüfen, zeigt die Antwort, dass die Überprüfung fehlgeschlagen ist:
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" ] }