政策建立和更新:每個政策引擎驗證
直接建立或更新政策時 (而不是透過產生),驗證和分析會將新政策及其與政策引擎中所有預先存在政策的互動納入考量。
運作方式
-
政策會針對與政策引擎關聯之所有閘道的 Cedar 結構描述進行檢查。無論驗證模式為何,結構描述檢查一律會執行。
-
如果驗證模式設定為
FAIL_ON_ANY_FINDINGS,語意驗證會在整個政策引擎的內容中執行,檢查是否過度寬鬆、過度限制和無效政策。如果結構描述檢查或語意驗證產生調查結果,則會拒絕政策。如需每個檢查的詳細資訊,請參閱驗證和分析概觀。
注意
使用 IGNORE_ALL_FINDINGS時,只會執行結構描述檢查。只要政策通過結構描述檢查,就會接受政策。如需詳細資訊,請參閱將政策新增至政策引擎。
範例:建立具有驗證的政策
建立具有嚴格驗證的政策,以拒絕具有任何調查結果的政策:
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};" } }'
回應表示正在建立政策:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
檢查政策狀態以確認已通過驗證:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
驗證通過時,政策會變成作用中:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
範例:驗證失敗
如果政策參考在任何關聯閘道的結構描述中不存在的動作,驗證會失敗:
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);" } }'
當您檢查政策狀態時,回應會顯示驗證失敗:
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" ] }