View a markdown version of this page

Kondisi kebijakan - Batu Dasar Amazon AgentCore

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