Enkripsi bundel konfigurasi
Saat Anda menentukan kmsKeyArn pada bundel konfigurasi, layanan mengenkripsi konfigurasi komponen (prompt sistem, deskripsi alat, dan konten konfigurasi lainnya) menggunakan enkripsi amplop. Semua metadata bundel lainnya (nama, deskripsi, ID versi, cap waktu) tetap dienkripsi dengan kunci yang dimiliki. AWS
Cara kerjanya
Enkripsi bundel konfigurasi menggunakan enkripsi amplop dengan kredensi pemanggil. Saat Anda membuat atau memperbarui bundel dengan akmsKeyArn, layanan menggunakan kredensil Anda (melalui Sesi Akses Teruskan) untuk menghasilkan kunci enkripsi data (DEK) dari KMS. Layanan mengenkripsi konfigurasi komponen secara lokal menggunakan AES-GCM DEK itu, lalu menyimpan DEK terenkripsi di samping bundel. Saat Anda mengambil bundel, layanan mendekripsi DEK menggunakan kredensil Anda dan mendekripsi komponen.
Penelepon harus memilikikms:GenerateDataKey,kms:Decrypt,kms:DescribeKey, dan kms:ReEncrypt* izin pada kunci.
AgentCore pengoptimalan hanya mendukung kunci KMS enkripsi simetris. Kunci KMS harus berada di AWS Wilayah yang sama dengan bundel konfigurasi.
Mengkonfigurasi izin untuk menggunakan kunci KMS yang dikelola pelanggan
Kebijakan kunci berikut memberikan izin minimum yang diperlukan untuk enkripsi bundel konfigurasi. Kebijakan tersebut memiliki dua pernyataan:
-
AllowCallerAccess— Memungkinkan pengguna atau peran IAM untuk memvalidasi kunci melalui.
DescribeKey -
AllowCallerCryptoOps— Memungkinkan pengguna atau peran IAM untuk menghasilkan kunci data, mendekripsi, dan mengenkripsi ulang (untuk rotasi kunci), dicakup oleh konteks enkripsi.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*" } } } ] }
Kebijakan tersebut berisi pernyataan berikut:
-
AllowCallerAccess— Memberikan
kms:DescribeKeyizin peran IAM untuk validasi kunci pada pembuatan bundel atau waktu pembaruan. Ganti111122223333dengan ID akun Anda danMyConfigBundleRoledengan peran IAM atau pengguna yang mengelola bundel konfigurasi. -
AllowCallerCryptoOps— Memberikan peran IAM
kms:GenerateDataKey,, dankms:ReEncrypt*izinkms:Decrypt, yang dicakup oleh konteks enkripsi.aws:bedrock-agentcore:configurationBundleArnkms:ReEncrypt*Izin diperlukan untuk rotasi kunci (mengubah kunci KMS pada bundel yang ada). Ganti111122223333MyConfigBundleRole,, danus-east-1dengan nilai-nilai Anda. Untuk mengizinkan akses ke semua bundel konfigurasi di akun Anda, gunakan wildcard denganStringLike:.arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*
Mencakup akses ke kunci KMS yang dikelola pelanggan
Anda dapat menggunakan konteks enkripsi untuk mengurangi akses ke kunci yang dikelola pelanggan. AgentCore pengoptimalan mencakup konteks enkripsi berikut di semua operasi KMS:
{ "aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/bundle-id" }
Anda dapat menggunakan konteks enkripsi ini dalam kondisi kebijakan utama untuk membatasi operasi KMS ke bundel konfigurasi tertentu, seperti yang ditunjukkan dalam AllowCallerCryptoOps pernyataan dalam contoh kebijakan kunci di atas.
Membuat bundel konfigurasi dengan kunci KMS yang dikelola pelanggan
Untuk mengenkripsi bundel konfigurasi, tentukan kmsKeyArn parameter saat memanggil CreateConfigurationBundle.
contoh
Mengubah konfigurasi enkripsi pada bundel yang ada
Anda dapat mengubah konfigurasi enkripsi pada bundel yang ada menggunakan UpdateConfigurationBundle:
-
Tambahkan enkripsi - Tentukan
kmsKeyArnpada bundel yang dibuat tanpa satu. Layanan ini menghasilkan DEK baru dan mengenkripsi konfigurasi komponen. -
Putar tombol - Tentukan yang berbeda
kmsKeyArn. Layanan membungkus kembali DEK yang ada dari kunci lama ke kunci baru menggunakan.kms:ReEncryptPenelepon harus memiliki izin pada kedua tombol. Jika kunci lama tidak tersedia (izin dinonaktifkan, dihapus, atau hilang), pembaruan akan gagal.
catatan
Anda tidak dapat menghapus enkripsi kunci terkelola pelanggan dari bundel konfigurasi setelah ditambahkan.
Memantau penggunaan KMS untuk bundel konfigurasi
Nama CloudTrail acara berikut muncul untuk operasi KMS bundel konfigurasi:
-
GenerateDataKey— Saat membuat bundel dengan kunci yang dikelola pelanggan, atau menambahkan enkripsi ke bundel yang ada.encryptionContextBidang berisiaws:bedrock-agentcore:configurationBundleArn. -
Decrypt— Saat mengambil konten bundel (GetConfigurationBundle, GetConfigurationBundleVersion) atau saat memperbarui bundel terenkripsi. -
ReEncrypt— Saat memutar tombol KMS pada bundel yang ada melalui. UpdateConfigurationBundle -
DescribeKey— Saat memvalidasi kunci pada pembuatan bundel atau waktu pembaruan.
Perilaku ketika kunci menjadi tidak tersedia
Jika Anda menonaktifkan atau menghapus kunci KMS terkelola pelanggan yang digunakan oleh bundel konfigurasi:
-
CreateConfigurationBundle— Gagal dalam validasi dengan
ValidationException. -
UpdateConfigurationBundle— Gagal karena layanan tidak dapat mendekripsi DEK yang ada untuk mengenkripsi ulang komponen baru. Rotasi kunci juga gagal karena kunci lama tidak tersedia untuk pembungkus ulang.
-
GetConfigurationBundle / GetConfigurationBundleVersion— Gagal karena layanan tidak dapat mendekripsi konfigurasi DEK atau komponen.
-
ListConfigurationBundles / ListConfigurationBundleVersions— Berhasil karena daftar mengembalikan metadata saja dan tidak memerlukan operasi KMS.
-
DeleteConfigurationBundle— Berhasil karena penghapusan tidak memerlukan data bundel dekripsi.
Untuk memulihkan akses, aktifkan kembali kunci atau perbarui kebijakan kunci untuk memberikan izin yang diperlukan.