Pembuatan kebijakan: validasi per kebijakan
Saat menggunakan layanan pembuat kebijakan untuk menghasilkan kebijakan dari bahasa alami, validasi dan analisis terjadi per kebijakan individu selama pembuatan.
Cara kerjanya
-
Bahasa alami diubah menjadi kebijakan Cedar
-
Setiap kebijakan yang dihasilkan divalidasi terhadap skema gateway
-
Analisis berjalan pada setiap kebijakan secara individual
-
Hasil tersedia dalam respons generasi
Contoh: Menghasilkan dan memvalidasi kebijakan
Mengambil hasil pembuatan adalah proses dua langkah: pertama periksa status pembuatan, lalu daftarkan aset yang dihasilkan untuk melihat kebijakan dan temuan validasinya.
Mulai pembuatan kebijakan:
aws bedrock-agentcore-control start-policy-generation \ --policy-engine-id MyEngine-abc123 \ --name RefundPolicy \ --content '{ "rawText": "Allow customer service agents to process refunds up to 500 dollars for orders placed within the last 30 days" }' \ --resource '{ "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" }'
Tanggapan tersebut mencakup ID dan status pembuatan kebijakan:
{ "policyGenerationId": "RefundPolicy-def456", "policyEngineId": "MyEngine-abc123", "status": "GENERATING" }
Periksa status pembuatan menggunakanget-policy-generation:
aws bedrock-agentcore-control get-policy-generation \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456
Respons menunjukkan status generasi keseluruhan:
{ "policyGenerationId": "RefundPolicy-def456", "status": "GENERATED", "statusReasons": [] }
Setelah statusnyaGENERATED, daftarkan aset yang dihasilkan untuk mengambil kebijakan dan temuan validasi per kebijakan mereka:
aws bedrock-agentcore-control list-policy-generation-assets \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456
Tanggapan tersebut mencakup setiap kebijakan yang dihasilkan dengan definisi Cedar dan temuan validasi:
{ "policyGenerationAssets": [ { "policyGenerationAssetId": "asset-1", "definition": { "cedar": { "statement": "permit(\n principal is AgentCore::OAuthUser,\n action == AgentCore::Action::\"RefundTool___process_refund\",\n resource == AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789\"\n) when {\n context.input.amount <= 500\n};" } }, "findings": [ { "type": "VALID" } ], "rawTextFragment": "Allow customer service agents to process refunds up to 500 dollars" }, { "policyGenerationAssetId": "asset-2", "definition": { "cedar": { "statement": "permit(\n principal,\n action == AgentCore::Action::\"RefundTool___view_order_history\",\n resource\n);" } }, "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ], "rawTextFragment": "Allow customer service agents to view order history" } ] }
Temuan validasi per kebijakan
Setiap aset kebijakan yang dihasilkan mencakup findings array Finding objek, masing-masing dengan type dandescription. Contoh berikut menunjukkan jenis temuan yang berbeda:
Kebijakan yang lulus validasi dan analisis:
{ "findings": [ { "type": "VALID" } ] }
Kebijakan yang ditandai sebagai terlalu permisif:
{ "findings": [ { "type": "ALLOW_ALL", "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated" } ] }
Kebijakan yang tidak dapat dihasilkan dari input bahasa alami:
{ "findings": [ { "type": "NOT_TRANSLATABLE", "description": "Unsupported Condition Error: The request includes conditions that rely on data or attributes currently not supported." } ] }
Temuan umum untuk kebijakan yang dihasilkan
Tabel berikut menjelaskan jenis temuan yang dapat dikembalikan untuk kebijakan yang dihasilkan:
| Tipe temuan | Kepelikan | Deskripsi | Tindakan yang disarankan |
|---|---|---|---|
|
|
Berhasil |
Kebijakan adalah Cedar yang valid tanpa temuan. Tidak ada deskripsi yang dikembalikan untuk jenis temuan ini. |
Tidak ada tindakan diperlukan. Kebijakan ini siap digunakan. |
|
|
Kesalahan |
Kebijakan Cedar yang dihasilkan berisi kesalahan sintaks atau tidak sesuai dengan skema gateway. |
Tinjau kebijakan yang dihasilkan untuk pelanggaran skema atau masalah sintaks. Ulangi input bahasa alami dan regenerasi. |
|
|
Kesalahan |
Bahasa alami tidak dapat diubah menjadi Cedar yang valid. Permintaan dapat mencakup kondisi yang bergantung pada data atau atribut yang tidak didukung. |
Periksa kembali sumber daya gateway yang ditargetkan untuk definisi alat. |
|
|
Peringatan |
Kebijakan izin berlaku untuk semua kombinasi prinsipal, tindakan, dan sumber daya. |
Konfirmasikan bahwa akses tidak terbatas dimaksudkan. Tambahkan kondisi untuk membatasi ruang lingkup jika tidak. |
|
|
Peringatan |
Kebijakan izin tidak menentukan karena tidak mengizinkan apa pun. |
Tinjau kondisi kebijakan. Kebijakan tersebut mungkin berisi kondisi yang kontradiktif atau tidak dapat dijangkau. |
|
|
Peringatan |
Kebijakan menyangkal semua tindakan untuk semua kepala sekolah. |
Konfirmasikan bahwa penolakan penuh dimaksudkan. Ini mengesampingkan semua kebijakan izin karena semantik izin-penggantian larangan. |
|
|
Peringatan |
Kebijakan larangan tidak menentukan karena tidak menyangkal apa pun. |
Tinjau kondisi kebijakan. Kebijakan larangan mungkin mengandung kondisi yang kontradiktif atau tidak dapat dijangkau. |