Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kondisi kebijakan
Kondisi menambahkan logika halus ke kebijakan yang menggunakan klausa when dan: unless
when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 }
Jenis kondisi
-
when { … }- Kebijakan hanya berlaku jika kondisinya benar -
unless { … }- Kebijakan hanya berlaku jika kondisinya salah -
when guardrails { … }- Kebijakan hanya berlaku jika kondisi yang ditegaskan pada output dari satu atau lebih pagar pembatas dievaluasi menjadi true -
unless guardrails { … }- Kebijakan hanya berlaku jika kondisi yang ditegaskan pada output dari satu atau lebih pagar pembatas dinilai salah
Argumen alat
context.inputberisi argumen yang diteruskan ke panggilan alat:
context.input.amount < 500
Ketika pengguna menelepon RefundTool___process_refund dengan argumen seperti:
{ "orderId": "12345", "amount": 450, "reason": "Defective product" }
Kebijakan dapat mengakses nilai-nilai ini:
-
context.input.orderId→ “12345" -
context.input.amount→ 450 -
context.input.reason→ “Produk cacat”
Kebijakan dapat membuat keputusan berdasarkan parameter panggilan alat tertentu.
Atribut utama
Atribut utama berbeda berdasarkan jenis otentikasi yang dikonfigurasi untuk AgentCore Gateway Anda.
Klaim OAuth (tag)
Untuk OAuth-authenticated gateway, klaim JWT dari token OAuth disimpan sebagai tag pada entitas. OAuthUser Contoh klaim JWT:
{ "sub": "user-123", "username": "refund-agent", "scope": "refund:write admin:read", "role": "admin" }
Klaim ini menjadi tag pada entitas utama. Periksa apakah ada tag:
principal.hasTag("username")
Dapatkan nilai tag:
principal.getTag("username") == "refund-agent"
Pencocokan pola:
principal.getTag("scope") like "*refund:write*"
Atribut entitas IAM
Untuk IAM-authenticated gateway, prinsipal memiliki id atribut yang berisi IAM ARN pemanggil. Prinsipal IAM tidak mendukung tag.
Format entitas utama
Prinsip Cedar untuk IAM-authenticated gerbang adalahAgentCore::IamEntity. A principal.id tribut berisi ARN IAM pemanggil.
Untuk pemanggil yang mengotentikasi melalui peran IAM yang diasumsikan, ID entitas principal.id dan Cedar menggunakan format:
arn:aws:sts::<account-id>:assumed-role/<role-name>
Misalnya, jika pemanggil mengambil peranMyServiceRole, ID entitas Cedar adalah:
AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/MyServiceRole"
Format ini stabil di seluruh pemanggilan, sehingga Anda dapat menggunakannya principal == untuk pencocokan peran yang tepat.
Pencocokan pola dengan seperti
Anda juga dapat menggunakan like operator dengan wildcard untuk pencocokan yang lebih luas:
// Match any role in a specific account principal.id like "arn:aws:sts::123456789012:assumed-role/*" // Match specific AWS account (any ARN format) principal.id like "*:123456789012:*" // Match a specific IAM role name across any account principal.id like "arn:aws:sts::*:assumed-role/AdminRole"
Operator logis
Gabungkan beberapa kondisi menggunakan operator logis:
-
&&- DAN (semua kondisi harus benar) -
||- ATAU (setidaknya satu syarat harus benar) -
!- TIDAK (meniadakan kondisi)
Contoh:
principal.hasTag("username") && // User must have username tag principal.getTag("username") == "refund-agent" && // Username must be "refund-agent" context.input.amount < 500 // Amount must be less than $500