View a markdown version of this page

Tetapkan kebijakan kunci yang dikelola pelanggan - Batu Dasar Amazon AgentCore

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

Tetapkan kebijakan kunci yang dikelola pelanggan

Untuk menggunakan kunci yang dikelola pelanggan dengan AWS Agen Registry, Anda harus mengonfigurasi kebijakan IAM untuk kepala panggilan dan kebijakan kunci KMS yang memungkinkan layanan melakukan operasi enkripsi dan dekripsi.

Prasyarat

Sebelum membuat registri dengan kunci yang dikelola pelanggan, pastikan hal berikut:

  • Anda memiliki kunci KMS enkripsi simetris di Wilayah yang sama AWS dengan registri. Untuk informasi tentang membuat kunci KMS, lihat Membuat kunci di Panduan Pengembang Layanan Manajemen Kunci. AWS

  • Panggilan utama IAM CreateRegistry memiliki izin KMS yang diperlukan. Lihat Izin IAM yang diperlukan.

Izin IAM yang diperlukan

Untuk berinteraksi dengan registri terenkripsi, Anda harus memiliki izin berikut pada kunci KMS:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryCMKAccess", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } } ] }

Ganti nilai-nilai berikut:

  • Resource— ARN kunci KMS Anda.

  • kms:ViaService— Ganti us-east-1 dengan Wil AWS ayah registri Anda.

kms:ViaServiceKondisi ini membatasi izin untuk permintaan yang dibuat melalui layanan AWS Agen Registry, mencegah izin ini digunakan di luar AWS Agen Registry.

catatan

Anda harus diberi wewenang untuk melakukan tindakan KMS ini — baik melalui kebijakan IAM Anda atau melalui kebijakan utama (lihatKebijakan kunci untuk kunci yang dikelola pelanggan). Jika kebijakan utama Anda menyertakan pernyataan kebijakan kunci default yang mengaktifkan kebijakan IAM, kebijakan IAM sudah cukup.

Kebijakan kunci untuk kunci yang dikelola pelanggan

Bagian berikut mencantumkan pernyataan kebijakan kunci KMS yang diperlukan AWS Agen Registry. Tambahkan pernyataan ini ke kebijakan kunci KMS Anda sehingga layanan dan kepala panggil dapat menggunakan kunci tersebut. Menambahkan pernyataan diperlukan jika kebijakan kunci Anda tidak menyertakan pernyataan kebijakan kunci default yang mengaktifkan kebijakan IAM, atau ketika kunci tersebut berada di akun yang berbeda.

penting

Blok JSON di bagian berikut adalah contoh pernyataan kebijakan individual, bukan kebijakan kunci lengkap. Jangan menggunakannya untuk mengganti kebijakan kunci KMS Anda yang ada. Sebagai gantinya, salin pernyataan yang Anda perlukan — berdasarkan persona di organisasi Anda dan peran terkait layanan — dan tambahkan pernyataan tersebut ke Statement array kebijakan kunci yang ada. Perbarui nilai di setiap pernyataan (ID akun, Wilayah, peran ARN, dan ARN registri) agar sesuai dengan lingkungan Anda sebelum menyimpan kebijakan.

Kebijakan utama harus memberikan izin berdasarkan persona registr i di organisasi Anda:

  • Administrator - Membuat registri dan mengelola konfigurasi enkripsi. Kebutuhankms:DescribeKey,kms:CreateGrant, dan encrypt/decrypt izin.

  • Penerbit atau Persetujuan - Membuat dan memperbarui catatan registri (menulis dan membaca deskriptor rekaman). Perlu mengenkripsi dan mendekripsi izin.

  • Konsu men — Membaca catatan registri dan hasil pencarian (membaca deskriptor rekaman). Perlu izin mendekripsi.

Selain pernyataan persona, tambahkan Pernyataan kebijakan untuk peran terkait layanan agar AWS Agen Registry dapat menggunakan kunci atas nama Anda saat runtime. Jika Anda berbagi registri dengan akun lain di AWS Organisasi Anda dengan menggunakan AWS Resource Access Manager (AWS RAM), tambahkan jugaPernyataan kebijakan untuk akses organisasi melalui AWS RAM.

catatan

Jika peran Anda menulis dan membaca deskriptor rekaman (misalnya, penerbit yang juga mengambil catatan), berikan izin enkripsi dan dekripsi seperti yang ditunjukkan pada. Pernyataan kebijakan untuk penerbit

Pernyataan kebijakan untuk administrator

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryAdminKeyValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } }, { "Sid": "AllowRegistryAdminGrantCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowRegistryAdminCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryAdminKeyValidation- Memungkinkan administrator untuk memvalidasi kunci sebelum menggunakannya dengan registri.

  • AllowRegistryAdminGrantCreation- Memungkinkan administrator untuk membuat hibah saat membuat registri. kms:GrantIsForAWSResourceKondisi memastikan bahwa hanya kms:CreateGrant dapat digunakan ketika AWS layanan memulai pembuatan hibah atas nama penelepon.

  • AllowRegistryAdminCryptoOps- Memungkinkan administrator untuk mengenkripsi dan mendekripsi deskriptor catatan, dicakup ke registri tertentu melalui konteks enkripsi.

Pernyataan kebijakan untuk penerbit

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryPublisherCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryPublisherRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryPublisherCryptoOps- Memungkinkan penerbit dan penyetujui untuk mengenkripsi dan mendekripsi deskriptor catatan. Diperlukan untuk CreateRegistryRecord danUpdateRegistryRecord.

Pernyataan kebijakan untuk konsumen

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryConsumerDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryConsumerRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryConsumerDecrypt- Memungkinkan konsumen untuk mendekripsi deskriptor catatan. Diperlukan untuk GetRegistryRecord danSearchDiscoverableRegistryRecords.

Pernyataan kebijakan untuk peran terkait layanan

Ber AWS ikan izin peran terkait layanan Agen Registry untuk menggunakan kunci saat runtime. Layanan menggunakan peran ini untuk mengenkripsi dan mendekripsi deskriptor rekaman atas nama Anda.

Menambahkan pernyataan ini membutuhkan dua langkah berurutan:

  1. Buat peran terkait layanan di akun Anda terlebih dahulu. AWS Agen Registry tidak membuat peran untuk Anda — Anda harus membuatnya sendiri sebelum menambahkan pernyataan kebijakan kunci KMS. Gunakan AWS CLI:

    aws iam create-service-linked-role --aws-service-name agent-registry.amazonaws.com

    Ini menciptakan AWSServiceRoleForAgentRegistry peran diarn:aws:iam::<account-id>:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry. Anda hanya perlu melakukannya satu kali per akun.

  2. Kemudian tambahkan pernyataan berikut ke kebijakan kunci KMS Anda. IAM menolak kebijakan kunci apa pun yang mereferensikan prinsipal yang belum ada, jadi peran harus ada sebelum Anda menempelkan pernyataan yang menamainya.

Cakup pernyataan ke pendaftar di akun Anda menggunakan wildcard konteks enkripsi.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistrySlrCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/*" } } } ] }
  • AllowRegistrySlrCryptoOps— Memungkinkan peran terkait layanan AWS Agen Registry (AWSServiceRoleForAgentRegistry) untuk mengenkripsi dan mendekripsi deskriptor rekaman atas nama Anda, dicakup ke pendaftaran di akun Anda melalui kondisi. kms:EncryptionContext:aws:agent-registry:registry-arn

Pernyataan kebijakan untuk akses organisasi melalui AWS RAM

Tambahkan pernyataan ini jika Anda berbagi registri terenkripsi kunci yang dikelola pelanggan dengan akun lain di AWS Organisasi Anda menggunakan AWS Resource Access Manager (RAM).AWS Ini memberikan prinsipal mana pun di organisasi Anda kemampuan untuk mendekripsi deskriptor catatan dari registri yang dibagikan dengan mereka. Jika Anda tidak membagikan registri melalui AWS RAM, pernyataan ini tidak diperlukan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-EXAMPLE1234" } } } ] }
  • AllowOrganizationDecrypt- Memungkinkan prinsipal apa pun di AWS Organisasi Anda untuk mendekripsi deskriptor catatan dari pendaftar yang Anda bagikan melalui RAM. AWS aws:PrincipalOrgIDKondisi ini mencakup izin ini secara ketat ke akun anggota organisasi yang disebutkan; tanpa ID organisasi yang cocok, tidak memberikan "Principal": "*" apa pun. Penelepon masih memerlukan izin IAM tingkat layanan yang sesuai pada registri bersama itu sendiri.

Ganti nilai dalam pernyataan kebijakan utama

Ganti nilai-nilai berikut di setiap pernyataan kebijakan utama:

  • Principal— ARN pengguna atau peran IAM untuk setiap persona. Ganti 111122223333 dengan ID akun Anda dan nama peran dengan peran IAM Anda yang sebenarnya. Untuk pernyataan peran terkait layanan, ganti 111122223333 dengan ID akun Anda; pertahankan jalur peran dan nama (aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry) seperti yang ditunjukkan — ini adalah nilai tetap yang dikelola layanan.

  • kms:ViaService— Ganti us-east-1 dengan Wil AWS ayah registri Anda.

  • kms:EncryptionContext:aws:agent-registry:registry-arn— Ganti dengan ARN dari registri Anda. Untuk mengizinkan akses ke semua registri di akun Anda, gunakan StringLike dengan wildcard:. arn:aws:agent-registry:us-east-1:111122223333:registry/*

  • aws:PrincipalOrgID- Dalam pernyataan berbagi AWS RAM, ganti o-EXAMPLE1234 dengan ID AWS Organisasi Anda. Anda dapat menemukannya di konsol AWS Organisasi, atau jalankanaws organizations describe-organization --query 'Organization.Id' --output text.