View a markdown version of this page

Enkripsi AgentCore gateway Anda dengan kunci KMS 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.

Enkripsi AgentCore gateway Anda dengan kunci KMS yang dikelola pelanggan

Secara default, Gateway mengenkripsi data Anda saat diam menggunakan kunci Layanan Manajemen Kunci yang dikelola AWS layanan. Namun, Anda dapat secara opsional memberikan kunci KMS yang dikelola pelanggan Anda sendiri untuk mengenkripsi data saat Anda:

  • Buat gateway.

  • Perbarui konfigurasi gateway.

Menggunakan kunci yang dikelola pelanggan memberi Anda kontrol lebih besar atas proses enkripsi, termasuk kemampuan untuk:

  • Putar kunci sesuai jadwal Anda sendiri

  • Kontrol akses ke kunci melalui kebijakan IAM

  • Nonaktifkan atau hapus kunci saat tidak lagi diperlukan

  • Mengaudit penggunaan kunci melalui CloudWatch log dan AWS CloudTrail

Untuk informasi selengkapnya, lihat AWS Panduan Pengembang Layanan Manajemen Kunci.

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 dilampirkan 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 Logs untuk mendekripsi kunci.

      Untuk informasi selengkapnya tentang mengendalikan izin IAM untuk kunci KMS, lihat akses dan izin kunci KMS di Panduan Pengembang Layanan Manajemen K AWS unci.

Contoh kebijakan kunci

Kebijakan contoh berikut memberikan izin yang diperlukan untuk mengenkripsi gateway dan menggunakan gateway terenkripsi. Pernyataan keempat juga memungkinkan CloudWatch log logging penggunaan kunci untuk gateway terenkripsi. Kebijakan 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 prinsipal yang ditentukan untuk menggambarkan kunci jika permintaan dibuat melalui AgentCore layanan. Ganti nilai di bidang berikut:

    • Principal— Ganti AWS nilai dengan ARN aktual dari peran layanan gateway Anda.

    • Condition- Dalam kms:ViaService array, ganti us-east-1 dengan Wil AWS ayah aktual yang ingin Anda izinkan kunci dijelaskan.

  • AllowServiceRoleDecryptKey- Mengizinkan prinsipal yang ditentukan untuk mendekripsi kunci jika permintaan dibuat melalui AgentCore layanan dan jika ARN gateway tempat permintaan dibuat cocok dengan yang ada di kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn lapangan. Ganti nilai-nilai berikut:

    • Principal— Ganti AWS nilai dengan ARN aktual dari peran layanan gateway Anda.

    • Condition— Lakukan hal berikut:

      • Dalam kms:ViaService array, ganti us-east-1 dengan Wil AWS ayah aktual yang ingin Anda izinkan kunci didekripsi.

      • Ganti kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn nilai dengan ARN sebenarnya dari gateway Anda.

  • AllowServiceRoleCreateGrant— Mengizinkan prinsipal yang ditentukan untuk membuat hibah untuk kunci jika permintaan dibuat melalui AgentCore layanan dan jika ARN gateway tempat permintaan dibuat cocok dengan yang ada di kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn lapangan. Ganti nilai-nilai berikut:

    • Principal— Ganti AWS nilai dengan ARN aktual dari peran layanan gateway Anda.

    • Condition— Lakukan hal berikut:

      • Dalam kms:ViaService array, ganti us-east-1 dengan Wil AWS ayah aktual yang ingin Anda izinkan kunci didekripsi.

      • Ganti kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn nilai dengan ARN sebenarnya dari gateway Anda (jika Anda ingin mengizinkan).

  • AllowKMSDecryptionLogging- Mengizinkan prinsipal yang ditentukan untuk mendekripsi kunci KMS yang dikelola pelanggan untuk mengaudit penggunaan kunci melalui Log. CloudWatch Dalam kms:EncryptionContext:SourceArn nilai, ganti us-east-1 dan 123456789012 nilai dengan Wil AWS ayah dan ID akun Anda yang sebenarnya.

contoh
Console
  1. ====== Untuk mengenkripsi gateway Anda dengan kunci KMS yang dikelola pelanggan

  2. Ikuti langkah-langkah Kon sol di Buat AgentCore gateway Amazon Bedrock dan perluas tombol KMS - bagian opsional.

  3. Pilih S esuaikan pengaturan enkripsi (lanjutan).

  4. Pilih kunci KMS dan konfirmasikan detailnya.

    catatan

    Jika Anda tidak melihat kunci KMS Anda, periksa Pras yarat untuk mengenkripsi AgentCore gateway Anda dan periksa apakah izin dikonfigurasi dengan benar.

  5. Lanjutkan melalui langkah-langkah konsol yang tersisa.

CLI
  1. Untuk mengenkripsi gateway Anda menggunakan AWS CLI, sertakan kms-key-arn saat mengirim salah satu permintaan berikut melalui klien AgentCore bidang kontrol. :

    • buat-gerbang

    • pembaruan gerbang

      Contoh berikut menunjukkan contoh permintaan CLI untuk membuat gateway dengan kunci AWS KMS ditentukan menggunakan argumen: kms-key-arn

      aws bedrock-agentcore-control create-gateway \ --name "MyGateway" \ --role-arn "arn:aws:iam::123456789012:role/GatewayRole" \ --protocol-type "MCP" \ --kms-key-arn "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --authorizer-type "CUSTOM_JWT" \ --authorizer-configuration '{ "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } }'
Python (Boto3)
  1. Untuk mengenkripsi gateway Anda menggunakan AWS Python SDK (Boto3), sertakan kms-key-arn saat mengirim salah satu permintaan berikut melalui klien bidang AgentCore kontrol. :

    • buat_gerbang

    • pembaruan_gateway

      Contoh berikut menunjukkan contoh permintaan Boto3 untuk membuat gateway dengan kunci AWS KMS ditentukan menggunakan argumen: kmsKeyArn

      import boto3 # Create client agentcore_client = boto3.client('bedrock-agentcore-control') # Create gateway and specify gateway = agentcore_client.create_gateway( name="MyGateway", roleArn="arn:aws:iam::123456789012:role/GatewayRole", protocolType="MCP", kmsKeyArn="arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" authorizerType="CUSTOM_JWT", authorizerConfiguration= { "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } } )