View a markdown version of this page

Cakupan akses ke penyedia kredensia berdasarkan identitas beban kerja - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Cakupan akses ke penyedia kredensia berdasarkan identitas beban kerja

Anda dapat menggunakan kebijakan IAM untuk mengontrol identitas beban kerja mana yang memiliki akses ke penyedia kredensia tertentu. Ini memungkinkan kontrol akses yang halus, memastikan bahwa hanya agen resmi yang dapat mengambil kredenSIAL untuk layanan tertentu.

catatan

Peran IAM yang Anda tetapkan ke agen mengontrol penyedia kredensia mana yang dapat dipanggil agen. Layanan tidak memberlakukan pengikatan tambahan antara identitas beban kerja dan penyedia kredensia di akun yang sama. Untuk mengikuti praktik hak istimewa terkecil, lingkup Resource blok kebijakan IAM Anda ke identitas beban kerja tertentu dan ARN penyedia kredensia daripada menggunakan. *

Panggilan yang berhasil ke penyedia kredensi tidak berarti kredenSIAL dikembalikan secara otomatis. KredenSIAL yang diambil beban kerja dicakup ke identitas pengguna dalam token akses beban kerjanya. Untuk penyedia OAuth2 (3LO), pengguna akhir harus menyelesaikan otorisasi sebelum ada kredenSIAL untuk mengambil identitas beban kerja dan kombinasi pengguna tersebut.

Mekanisme kontrol akses

  • Pembatasan berbasis identitas beban kerja — Batasi akses penyedia kredensia ke identitas beban kerja tertentu

  • Resource-level izin — Kontrol akses ke penyedia kredensia individu menggunakan kebijakan ARN-based

  • Directory-level kontrol — Mengelola akses di tingkat direktori identitas beban kerja

  • Pelingkupan penyedia kredensia — Batasi penyedia kredensia mana yang dapat diakses oleh identitas beban kerja dengan menyertakan ARN penyedia kredensia di blok kebijakan Resource

Contoh kebijakan IAM

Contoh berikut menunjukkan cara membuat kebijakan IAM yang membatasi akses penyedia kredensia berdasarkan identitas beban kerja dan penyedia kredensia.

Batasi akses ke penyedia kredensia kunci API tertentu

Kebijakan ini mengizinkan identitas beban kerja untuk mengambil kunci API hanya dari penyedia kredensia tertentu. Penyedia kredensi ARN di Resource blok membatasi akses ke penyedia itu.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Batasi akses ke penyedia kredensia OAuth2 tertentu

Kebijakan ini mengizinkan identitas beban kerja untuk mengambil token OAuth2 hanya dari penyedia kredensia OAuth2 tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>" ] } ] }

Izinkan akses beberapa identitas beban kerja ke penyedia kredensia

Kebijakan ini memungkinkan beberapa identitas beban kerja untuk mengambil kunci API dari penyedia kredensia yang sama.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKeyMultipleIdentities", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-1", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-2", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-3", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Tolak akses ke penyedia kredensia tertentu

Anda dapat secara eksplisit menolak akses identitas beban kerja ke penyedia kredensia tertentu menggunakan Deny pernyataan. Pernyataan Tolak lebih diutamakan daripada pernyataan Izinkan, menjadikannya berguna untuk membuat pagar pembatas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToSensitiveProvider", "Effect": "Deny", "Action": [ "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<sensitive-provider-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<sensitive-provider-name>" ] } ] }

Gunakan identitas beban kerja terpisah untuk penyedia kredensia yang berbeda

Jika Anda memerlukan agen yang berbeda untuk mengakses penyedia kredensia yang berbeda, buat identitas beban kerja terpisah dengan peran IAM terpisah. Setiap peran IAM hanya dicakup oleh penyedia kredensia yang dibutuhkan agen.

Misalnya, jika Agen A harus mengakses hanya Penyedia X dan Agen B harus mengakses hanya Penyedia Y:

  1. Buat identitas beban kerja agent-a dan identitas beban kerja agent-b

  2. Buat peran IAM AgentARole dengan kebijakan yang memungkinkan akses hanya ke Penyedia X

  3. Buat peran IAM AgentBRole dengan kebijakan yang memungkinkan akses hanya ke Penyedia Y

  4. Mengaitkan setiap identitas beban kerja dengan peran IAM yang sesuai

Kebijakan IAM untuk Agen A (hanya akses ke Penyedia X)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentAAccessProviderX", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-a", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-x" ] } ] }

Kebijakan IAM untuk Agen B (hanya akses ke Penyedia Y)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentBAccessProviderY", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-b", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-y" ] } ] }

Langkah-langkah implementasi

Untuk menerapkan kontrol akses berbasis identitas beban kerja untuk penyedia kredensia:

  1. Identifikasi identitas beban kerja Anda — Gunakan aws bedrock-agentcore-control list-workload-identities untuk mencantumkan semua identitas beban kerja di akun Anda. Untuk informasi tentang membuat dan mengelola identitas beban kerja, lihat Mengel ola identitas beban kerja dengan AgentCore Identitas.

  2. Tentukan ARN penyedia kredensia — Identifikasi penyedia kredensia tertentu yang ingin Anda kontrol aksesnya. ARN penyedia kredensi mengikuti format ini:

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/api-key/<provider-name>

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>

  3. Buat kebijakan IAM — Tulis kebijakan IAM yang menentukan identitas beban kerja mana yang dapat mengakses penyedia kredensia mana

  4. Lampirkan kebijakan ke peran — Lampirkan kebijakan ke peran IAM yang digunakan oleh agen atau aplikasi Anda

  5. Uji kontrol akses — Memverifikasi bahwa hanya identitas beban kerja resmi yang dapat mengakses penyedia kredensia yang ditentukan

Praktik terbaik

  • Gunakan nama deskriptif untuk identitas beban kerja untuk mempermudah pengelolaan kebijakan

  • Sertakan ARN penyedia kredensia dalam Resource blok untuk mencakup akses ke penyedia tertentu, daripada memberikan akses ke semua penyedia di akun

  • Gunakan identitas beban kerja dan peran IAM yang terpisah saat agen yang berbeda memerlukan akses ke penyedia kredensia yang berbeda

  • Gunakan Deny pernyataan eksplisit untuk membuat pagar pembatas yang mencegah akses ke penyedia kredensia sensitif terlepas dari kebijakan lainnya

  • Secara teratur mengaudit dan meninjau kebijakan akses untuk memastikannya sesuai dengan persyaratan keamanan Anda

  • Pertimbangkan untuk menggunakan kondisi kebijakan IAM untuk kontrol akses tambahan berdasarkan waktu, alamat IP, atau faktor lainnya

  • Uji kebijakan di lingkungan pengembangan sebelum menerapkannya ke beban kerja produksi