Pembuatan dan pembaruan kebijakan: validasi mesin per kebijakan
Saat membuat atau memperbarui kebijakan secara langsung (bukan melalui pembuatan), validasi dan analisis memperhitungkan kebijakan baru serta interaksinya dengan semua kebijakan yang sudah ada sebelumnya di mesin kebijakan.
Cara kerjanya
-
Kebijakan ini diperiksa terhadap skema Cedar untuk semua gateway yang terkait dengan mesin kebijakan. Pemeriksaan skema selalu berjalan terlepas dari mode validasi.
-
Jika mode validasi disetel ke
FAIL_ON_ANY_FINDINGS, validasi semantik berjalan dalam konteks seluruh mesin kebijakan, memeriksa kebijakan yang terlalu permisif, terlalu membatasi, dan tidak efektif. Jika pemeriksaan skema atau validasi semantik menghasilkan temuan, kebijakan tersebut ditolak. Untuk detail tentang setiap pemeriksaan, lihat ikhtisar Validasi dan analisis.
catatan
DenganIGNORE_ALL_FINDINGS, hanya pemeriksaan skema yang dijalankan. Kebijakan diterima selama mereka lulus pemeriksaan skema. Untuk informasi selengkapnya, lihat Menambahkan kebijakan ke Mesin Kebijakan.
Contoh: Membuat kebijakan dengan validasi
Buat kebijakan dengan validasi ketat yang menolak kebijakan dengan temuan apa pun:
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};" } }'
Tanggapan menunjukkan kebijakan sedang dibuat:
{ "policyId": "RestrictRefunds-ghi789", "status": "CREATING" }
Periksa status kebijakan untuk mengonfirmasi validasi yang telah dilewati:
aws bedrock-agentcore-control get-policy \ --policy-engine-id MyEngine-abc123 \ --policy-id RestrictRefunds-ghi789
Ketika validasi berlalu, kebijakan menjadi aktif:
{ "policyId": "RestrictRefunds-ghi789", "status": "ACTIVE", "statusReasons": [] }
Contoh: Kegagalan validasi
Jika kebijakan mereferensikan tindakan yang tidak ada dalam skema gateway terkait, validasi gagal:
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);" } }'
Saat Anda memeriksa status kebijakan, respons akan menunjukkan kegagalan validasi:
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" ] }