View a markdown version of this page

Pembuatan kebijakan: validasi per kebijakan - Batuan Dasar Amazon AgentCore

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

  1. Bahasa alami diubah menjadi kebijakan Cedar

  2. Setiap kebijakan yang dihasilkan divalidasi terhadap skema gateway

  3. Analisis berjalan pada setiap kebijakan secara individual

  4. 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

VALID

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.

INVALID

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.

NOT_TRANSLATABLE

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.

ALLOW_ALL

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.

ALLOW_NONE

Peringatan

Kebijakan izin tidak menentukan karena tidak mengizinkan apa pun.

Tinjau kondisi kebijakan. Kebijakan tersebut mungkin berisi kondisi yang kontradiktif atau tidak dapat dijangkau.

DENY_ALL

Peringatan

Kebijakan menyangkal semua tindakan untuk semua kepala sekolah.

Konfirmasikan bahwa penolakan penuh dimaksudkan. Ini mengesampingkan semua kebijakan izin karena semantik izin-penggantian larangan.

DENY_NONE

Peringatan

Kebijakan larangan tidak menentukan karena tidak menyangkal apa pun.

Tinjau kondisi kebijakan. Kebijakan larangan mungkin mengandung kondisi yang kontradiktif atau tidak dapat dijangkau.