Enkripsi data untuk pekerjaan evaluasi basis pengetahuan - Amazon Bedrock

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

Enkripsi data untuk pekerjaan evaluasi basis pengetahuan

Selama pekerjaan evaluasi basis pengetahuan, Amazon Bedrock membuat salinan sementara data Anda. Amazon Bedrock menghapus data setelah pekerjaan selesai. Untuk mengenkripsi data, Amazon Bedrock menggunakan kunci KMS. Ini menggunakan kunci KMS yang Anda tentukan atau kunci yang dimiliki Amazon Bedrock.

Amazon Bedrock memerlukan IAM dan AWS KMS izin di bagian berikut sehingga dapat menggunakan kunci KMS Anda untuk melakukan hal berikut:

  • Dekripsi data Anda.

  • Enkripsi salinan sementara yang dibuat Amazon Bedrock.

Saat membuat pekerjaan evaluasi basis pengetahuan, Anda dapat memilih untuk menggunakan kunci KMS yang dimiliki Amazon Bedrock, atau Anda dapat memilih kunci yang dikelola pelanggan Anda sendiri. Jika Anda tidak menentukan kunci yang dikelola pelanggan, Amazon Bedrock menggunakan kuncinya secara default.

Sebelum Anda dapat menggunakan kunci yang dikelola pelanggan, Anda harus melakukan hal berikut:

  • Tambahkan tindakan dan sumber daya IAM yang diperlukan ke kebijakan peran layanan IAM.

  • Tambahkan elemen kebijakan kunci KMS yang diperlukan.

  • Buat kebijakan yang dapat berinteraksi dengan kunci yang dikelola pelanggan. Ini ditentukan dalam kebijakan kunci KMS terpisah.

Elemen kebijakan yang diperlukan

Kebijakan utama IAM dan KMS di bagian berikut mencakup elemen-elemen berikut yang diperlukan:

  • kms:Decrypt— Untuk file yang telah Anda enkripsi dengan kunci KMS Anda, berikan Amazon Bedrock izin untuk mengakses dan mendekripsi file-file tersebut.

  • kms:GenerateDataKey— Mengontrol izin untuk menggunakan kunci KMS untuk menghasilkan kunci data. Amazon Bedrock menggunakan GenerateDataKey untuk mengenkripsi data sementara yang disimpan untuk pekerjaan evaluasi.

  • kms:DescribeKey— Memberikan informasi rinci tentang kunci KMS.

  • kms:ViaService— Kunci kondisi membatasi penggunaan kunci KMS untuk meminta dari AWS layanan tertentu. Anda harus menentukan layanan berikut:

    • Amazon S3, karena Amazon Bedrock menyimpan salinan sementara data Anda di lokasi Amazon S3 yang dimiliki Amazon Bedrock.

    • Amazon Bedrock, karena layanan evaluasi memanggil Amazon Bedrock Knowledge Bases API untuk menjalankan alur kerja basis pengetahuan.

  • kms:EncryptionContext:context-key— Kunci kondisi ini membatasi akses ke AWS KMS operasi sehingga hanya spesifik untuk konteks enkripsi yang disediakan.

Persyaratan kebijakan IAM

Dalam peran IAM yang Anda gunakan dengan Amazon Bedrock, kebijakan IAM terkait harus memiliki elemen berikut. Untuk mempelajari lebih lanjut tentang mengelola AWS KMS kunci Anda, lihat Menggunakan kebijakan IAM dengan AWS KMS.

Pekerjaan evaluasi basis pengetahuan di Amazon Bedrock menggunakan kunci yang AWS dimiliki. Untuk informasi selengkapnya tentang AWS kunci yang AWS dimiliki, lihat kunci yang dimiliki di Panduan AWS Key Management Service Pengembang.

Berikut ini adalah contoh kebijakan IAM yang hanya berisi AWS KMS tindakan dan sumber daya yang diperlukan:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CustomKMSKeyProvidedToBedrockEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockEvalKMS", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBDecryption", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ], "Condition": { "StringLike": { "kms:EncryptionContext:CustomerAwsAccountId": "account-id", "kms:EncryptionContext:SessionId": "*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSDescribeKeyProvidedToBedrock", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/*" ] } ] }

AWS KMS persyaratan kebijakan utama

Setiap kunci KMS harus memiliki satu kebijakan utama. Pernyataan dalam kebijakan kunci menentukan siapa yang memiliki izin untuk menggunakan kunci KMS dan bagaimana mereka dapat menggunakannya. Anda juga dapat menggunakan kebijakan dan hibah IAM untuk mengontrol akses ke kunci KMS, tetapi setiap kunci KMS harus memiliki kebijakan utama.

Anda harus menambahkan pernyataan berikut ke kebijakan kunci KMS yang ada. Ini memberi Amazon Bedrock izin untuk menyimpan sementara data Anda dalam bucket S3 menggunakan kunci KMS yang telah Anda tentukan.

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:knowledgeBaseArn": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockKBGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:CustomerAwsAccountId": "account-id", "kms:EncryptionContext:SessionId": "*" }, "StringEquals": { "kms:ViaService": [ "bedrock.region.amazonaws.com" ] } } }, { "Sid": "CustomKMSKeyProvidedToBedrockS3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CustomerProvidedRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "Service": [ "bedrock.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:bedrock:region:account-id:evaluation-job/*", "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:region:account-id:evaluation-job/*" } } } ] }

Menyiapkan izin KMS untuk peran yang memanggil API CreateEvaluationJob

Pastikan Anda memiliki DescribeKey, GenerateDataKey, dan Dekripsi izin untuk peran Anda yang digunakan untuk membuat pekerjaan evaluasi pada kunci KMS yang Anda gunakan dalam pekerjaan evaluasi Anda.

Contoh kebijakan kunci KMS

{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/APICallingRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kmsDescribeKey" ], "Resource": "*" } ] }

Contoh Kebijakan IAM untuk API Panggilan CreateEvaluationJob Peran

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CustomKMSKeyProvidedToBedrockEncryption", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/keyYouUse" ] } ] }