Enkripsi AgentCore gateway Anda dengan kunci KMS yang dikelola pelanggan
Secara default, Gateway mengenkripsi data Anda saat istirahat menggunakan kunci Layanan Manajemen AWS Kunci yang dikelola layanan. Namun, Anda dapat secara opsional memberikan kunci KMS yang dikelola pelanggan Anda sendiri untuk mengenkripsi data saat istirahat saat Anda:
-
Buat gateway.
-
Perbarui konfigurasi gateway.
Menggunakan kunci yang dikelola pelanggan memberi Anda kontrol lebih besar atas proses enkripsi, termasuk kemampuan untuk:
-
Putar tombol pada jadwal Anda sendiri
-
Kontrol akses ke kunci melalui kebijakan IAM
-
Nonaktifkan atau hapus kunci saat tidak lagi diperlukan
-
Audit penggunaan kunci melalui CloudWatch log dan AWS CloudTrail
Untuk informasi selengkapnya, lihat Panduan Pengembang Layanan Manajemen AWS Utama.
catatan
Jika Anda memilih untuk menggunakan kunci yang dikelola pelanggan, Anda bertanggung jawab untuk mengelola kunci dan izinnya. Jika kunci dinonaktifkan atau dihapus, atau jika Gateway kehilangan izin untuk menggunakan kunci, Anda akan kehilangan akses ke data terenkripsi.
Prasyarat untuk mengenkripsi gateway Anda AgentCore
Sebelum mengenkripsi gateway Anda, pastikan Anda telah memenuhi prasyarat berikut:
-
Anda memiliki akses ke kunci KMS. Untuk informasi tentang membuat kunci KMS, lihat Membuat kunci KMS.
-
Kunci KMS memiliki kebijakan kunci yang melekat padanya yang memungkinkan izin berikut:
-
Izin yang memungkinkan peran layanan gateway untuk melakukan tindakan berikut:
-
km: CreateGrant
-
km: DescribeKey
-
kms:Decrypt
-
km: GenerateDataKey
-
-
(Jika Anda mengaktifkan CloudWatch Log untuk gateway Anda) Izin yang memungkinkan layanan CloudWatch Log untuk mendekripsi kunci.
Untuk informasi selengkapnya tentang mengendalikan izin IAM untuk kunci KMS, lihat akses kunci KMS dan izin di Panduan Pengembang Layanan Manajemen AWS Kunci.
-
Contoh kebijakan kunci
Contoh kebijakan berikut memberikan izin yang diperlukan untuk mengenkripsi gateway dan menggunakan gateway terenkripsi. Pernyataan keempat juga memungkinkan CloudWatch log log penggunaan kunci untuk gateway terenkripsi. Kebijakan ini berisi kunci kondisi agar sesuai dengan praktik terbaik keamanan.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServiceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] } } }, { "Sid": "AllowServiceRoleDecryptKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowServiceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowKMSDecryptionLogging", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }
Kebijakan tersebut berisi pernyataan berikut:
-
AllowServiceRoleDescribeKKey— Memungkinkan kepala sekolah yang ditentukan untuk menjelaskan kunci jika permintaan dibuat melalui AgentCore layanan. Ganti nilai di bidang berikut:
-
Principal— GantiAWSnilai dengan ARN sebenarnya dari peran layanan gateway Anda. -
Condition— Dalamkms:ViaServicearray, gantius-east-1dengan AWS Wilayah sebenarnya yang ingin Anda izinkan kuncinya dijelaskan.
-
-
AllowServiceRoleDecryptKey— Memungkinkan kepala sekolah yang ditentukan untuk mendekripsi kunci jika permintaan dibuat melalui AgentCore layanan dan jika ARN dari gateway tempat permintaan dibuat cocok dengan yang ada di lapangan.
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnGanti nilai-nilai berikut:-
Principal— GantiAWSnilai dengan ARN sebenarnya dari peran layanan gateway Anda. -
Condition— Lakukan hal berikut:-
Dalam
kms:ViaServicearray, gantius-east-1dengan AWS Wilayah sebenarnya yang ingin Anda izinkan kuncinya didekripsi. -
Ganti
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnnilainya dengan ARN sebenarnya dari gateway Anda.
-
-
-
AllowServiceRoleCreateGrant— Memungkinkan kepala sekolah yang ditentukan untuk membuat hibah untuk kunci jika permintaan dibuat melalui AgentCore layanan dan jika ARN dari gateway tempat permintaan dibuat cocok dengan yang ada di
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnlapangan. Ganti nilai-nilai berikut:-
Principal— GantiAWSnilai dengan ARN sebenarnya dari peran layanan gateway Anda. -
Condition— Lakukan hal berikut:-
Dalam
kms:ViaServicearray, gantius-east-1dengan AWS Wilayah sebenarnya yang ingin Anda izinkan kuncinya didekripsi. -
Ganti
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnnilainya dengan ARN sebenarnya dari gateway Anda (jika Anda ingin mengizinkan).
-
-
-
AllowKMSDecryptionLogging— Memungkinkan prinsipal yang ditentukan untuk mendekripsi kunci KMS yang dikelola pelanggan untuk mengaudit penggunaan kunci melalui Log. CloudWatch Dalam
kms:EncryptionContext:SourceArnnilai, gantius-east-1dan123456789012nilai dengan AWS Wilayah dan ID akun Anda yang sebenarnya.