Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pola kebijakan umum
Contoh-contoh ini menunjukkan pola kebijakan Cedar yang sering digunakan. Pola bekerja dengan otentikasi OAuth dan IAM—pilih jenis utama yang sesuai untuk konfigurasi Gateway Anda. AgentCore Untuk detail tentang atribut utama, lihat Atribut utama.
Pola ini berlaku terlepas dari jenis otentikasi.
Pematian darurat
Nonaktifkan semua panggilan alat di seluruh Gateway:
forbid( principal, action, resource );
Kasus penggunaan: Pematian darurat, mode pemeliharaan, atau respons insiden.
Efek: Meng ganti semua kebijakan izin karena semantik bid-wins.
Nonaktifkan alat khusus
Nonaktifkan alat tertentu sambil menjaga alat lain tetap beroperasi:
forbid( principal, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" );
Kasus penggunaan: N onaktifkan sementara alat yang bermasalah tanpa mempengaruhi fungsionalitas lain.
Blokir akses pengguna
Mencegah pengguna atau akun tertentu melakukan tindakan apa pun:
OAuth: Blokir pengguna tertentu
Blokir pengguna dengan mencocokkan tag nama pengguna mereka:
forbid( principal is AgentCore::OAuthUser, action, resource ) when { principal.hasTag("username") && principal.getTag("username") == "suspended-user" };
Kasus penggunaan: Segera cabut akses untuk akun pengguna yang disusupi atau ditangguhkan.
IAM: Blokir akun tertentu
Blokir penelepon dari AWS akun tertentu:
forbid( principal is AgentCore::IamEntity, action, resource ) when { principal.id like "*:444455556666:*" };
Kasus penggunaan: Blokir pengujian atau akun yang tidak sah dari mengakses alat produksi. Pola cocok
:444455556666:
dengan format ARN apa pun (peran asumsi, pengguna IAM, atau peran IAM) yang berisi ID akun tersebut.
Role-based kontrol akses
Batasi akses berdasarkan peran. OAuth menggunakan tag peran; IAM menggunakan pola ARN peran.
OAuth: Menggunakan tag peran
Izinkan akses hanya untuk pengguna dengan peran tertentu:
permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" ) when { principal.hasTag("role") && (principal.getTag("role") == "admin" || principal.getTag("role") == "manager") };
Kasus penggunaan: Izinkan operasi administratif hanya untuk pengguna dengan peran admin atau manajer.
IAM: Menggunakan ARN peran IAM
Izinkan akses hanya ke pemanggil menggunakan peran IAM tertentu. Anda dapat menggunakan pen principal == cocokan yang tepat atau pencocokan principal.id like pola:
// Exact match (recommended for single-role policies) permit( principal == AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/AdminRole", action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" );
Kasus penggunaan: Iz inkan operasi administratif hanya untuk pemanggil yang mengasumsikan peran AdminRole IAM. ID entitas Cedar untuk peran yang diasumsikan menggunakan formatarn:aws:sts::<account>:assumed-role/<role-name>.
Variasi menggunakan pencocokan pola:
// Match a specific role from any account principal.id like "arn:aws:sts::*:assumed-role/AdminRole" // Match any role in a specific account principal.id like "arn:aws:sts::123456789012:assumed-role/*"
Operasi tipe data
Cedar mendukung berbagai jenis data dalam kondisi. Contoh-contoh ini menggunakan prinsipal OAuth (). AgentCore::OAuthUser Untuk IAM-authenticated gateway, gunakan sebagai AgentCore::IamEntity gantinya - logika validasi input tetap identik.
Bilangan bulat (Panjang)
// Check if passenger count is exactly 2 permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"TravelAPI___search_flights", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/travel" ) when { context.input.passengers == 2 };
String
// Check if payment method is credit card permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"PaymentAPI___process_payment", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/payment" ) when { context.input.paymentMethod == "credit-card" };
Daftar (Set)
// Check if country is in allowed list permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ShippingAPI___calculate_rate", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/shipping" ) when { ["US", "CA", "MX"].contains(context.input.country) };
Memeriksa Bidang Opsional
// Require optional field to be present permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"OrderAPI___create_order", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/order" ) when { context.input has shippingAddress };