Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS) di bucket direktori - Amazon Simple Storage Service

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

Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS) di bucket direktori

Kontrol keamanan AWS KMS dapat membantu Anda memenuhi persyaratan kepatuhan terkait enkripsi. Anda dapat memilih untuk mengonfigurasi bucket direktori untuk menggunakan enkripsi sisi server dengan AWS Key Management Service (AWS KMS) keys (SSE-KMS) dan menggunakan kunci ini KMS untuk melindungi data Anda di bucket direktori Amazon S3. Untuk informasi lebih lanjut tentang SSE -KMS, lihatMenggunakan enkripsi sisi server dengan AWS KMS kunci (-) SSE KMS.

Izin

Untuk mengunggah atau mengunduh objek yang dienkripsi dengan AWS KMS key ke atau dari Amazon S3, Anda kms:GenerateDataKey perlu kms:Decrypt dan izin pada kunci. Untuk informasi selengkapnya, lihat Mengizinkan pengguna kunci menggunakan KMS kunci untuk operasi kriptografi di Panduan AWS Key Management Service Pengembang. Untuk informasi tentang AWS KMS izin yang diperlukan untuk unggahan multibagian, lihat. Unggahan API dan izin multibagian

Untuk informasi selengkapnya tentang KMS kunci untuk SSE -KMS, lihatMenentukan enkripsi sisi server dengan (-) AWS KMS SSE KMS.

AWS KMS keys

KMSKonfigurasi SSE - Anda hanya dapat mendukung 1 kunci terkelola pelanggan per bucket direktori selama masa pakai bucket. Sebuah Kunci yang dikelola AWS(aws/s3) tidak didukung. Selain itu, setelah menentukan kunci terkelola pelanggan untuk SSE -KMS, Anda tidak dapat mengganti kunci terkelola pelanggan untuk KMS konfigurasi bucket SSE -.

Anda dapat mengidentifikasi kunci terkelola pelanggan yang Anda tentukan untuk KMS konfigurasi bucket SSE - dengan cara berikut:

  • Anda membuat permintaan HeadObject API operasi untuk menemukan nilai x-amz-server-side-encryption-aws-kms-key-id dalam respons Anda.

Untuk menggunakan kunci terkelola pelanggan baru untuk data Anda, sebaiknya salin objek yang ada ke bucket direktori baru dengan kunci terkelola pelanggan baru.

Saat Anda menentukan kunci terkelola AWS KMS pelanggan untuk enkripsi di bucket direktori Anda, hanya gunakan ID kunci atau kunciARN. Format alias KMS kunci kunci tidak didukung.

Untuk informasi selengkapnya tentang KMS kunci untuk SSE -KMS, lihatAWS KMS keys.

Menggunakan SSE - KMS untuk operasi lintas akun

Saat menggunakan enkripsi untuk operasi lintas akun di bucket direktori, perhatikan hal berikut:

  • Jika Anda ingin memberikan akses lintas akun ke objek S3 Anda, konfigurasikan kebijakan kunci yang dikelola pelanggan untuk mengizinkan akses dari akun lain.

  • Untuk menentukan kunci yang dikelola pelanggan, Anda harus menggunakan KMS kunci yang sepenuhnya memenuhi syaratARN.

Kunci Bucket Amazon S3

Kunci Bucket S3 selalu diaktifkan untuk GET dan PUT beroperasi di bucket direktori dan tidak dapat dinonaktifkan. Kunci Bucket S3 tidak didukung, saat Anda menyalin SSE - objek KMS terenkripsi dari bucket tujuan umum ke bucket direktori, dari bucket direktori ke bucket tujuan umum, atau di antara bucket direktori, hingga CopyObject, UploadPartCopy, Copy operasi dalam Operasi Batch, atau import pekerjaan. Dalam hal ini, Amazon S3 melakukan panggilan ke AWS KMS setiap kali permintaan salinan dibuat untuk objek yang KMS dienkripsi.

Untuk APIoperasi titik akhir Zonal (tingkat objek) kecuali CopyObjectdan, Anda mengautentikasi dan UploadPartCopymengotorisasi permintaan melalui CreateSessionuntuk latensi rendah. Sebaiknya enkripsi default bucket menggunakan konfigurasi enkripsi yang diinginkan dan Anda tidak mengganti enkripsi default bucket dalam CreateSession permintaan atau permintaan PUT objek. Kemudian, objek baru secara otomatis dienkripsi dengan pengaturan enkripsi yang diinginkan. Untuk mengenkripsi objek baru dalam bucket direktori dengan SSE -KMS, Anda harus menentukan SSE - KMS sebagai konfigurasi enkripsi default bucket direktori dengan KMS kunci (khususnya, kunci yang dikelola pelanggan). Kemudian, ketika sesi dibuat untuk API operasi titik akhir Zonal, objek baru secara otomatis dienkripsi dan didekripsi dengan SSE - KMS dan S3 Bucket Keys selama sesi berlangsung. Untuk informasi selengkapnya tentang perilaku pengesampingan enkripsi dalam bucket direktori, lihat Menentukan enkripsi sisi server dengan unggahan objek baru. AWS KMS

Kunci Bucket S3 digunakan untuk jangka waktu terbatas dalam Amazon S3, yang selanjutnya mengurangi kebutuhan Amazon S3 untuk membuat permintaan AWS KMS untuk menyelesaikan operasi enkripsi. Untuk informasi selengkapnya tentang penggunaan S3 Bucket Keys, lihat Kunci Bucket Amazon S3 danMengurangi biaya SSE - KMS dengan Amazon S3 Bucket Keys.

Membutuhkan SSE - KMS

Untuk KMS mewajibkan SSE - semua objek dalam bucket direktori tertentu, Anda dapat menggunakan kebijakan bucket. Misalnya, saat Anda menggunakan CreateSession API operasi untuk memberikan izin mengunggah objek baru (PutObject,CopyObject, danCreateMultipartUpload), kebijakan bucket berikut menolak izin objek upload (s3express:CreateSession) kepada semua orang jika CreateSession permintaan tidak menyertakan x-amz-server-side-encryption-aws-kms-key-id header yang meminta SSE -KMS.

{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Untuk mengharuskan seseorang AWS KMS key digunakan untuk mengenkripsi objek dalam ember, Anda dapat menggunakan kunci s3express:x-amz-server-side-encryption-aws-kms-key-id kondisi. Untuk menentukan KMS kunci, Anda harus menggunakan kunci Amazon Resource Name (ARN) yang ada dalam arn:aws:kms:region:acct-id:key/key-id format. AWS Identity and Access Management tidak memvalidasi jika string untuk s3express:x-amz-server-side-encryption-aws-kms-key-id ada. ID AWS KMS kunci yang digunakan Amazon S3 untuk enkripsi objek harus cocok dengan ID AWS KMS kunci dalam kebijakan, jika tidak Amazon S3 menolak permintaan tersebut.

Untuk informasi selengkapnya tentang cara menggunakan SSE - KMS untuk upload objek baru, lihatMenentukan enkripsi sisi server dengan AWS KMS (SSE-KMS) untuk unggahan objek baru di bucket direktori.

Untuk daftar lengkap kunci kondisi khusus untuk bucket direktori, lihatMengotorisasi titik akhir APIs Regional dengan IAM.

Konteks enkripsi

Untuk bucket direktori, konteks enkripsi adalah sekumpulan pasangan kunci-nilai yang berisi informasi kontekstual tentang data. Nilai konteks enkripsi tambahan tidak didukung. Untuk informasi selengkapnya tentang konteks enkripsi, lihatKonteks enkripsi.

Secara default, jika Anda menggunakan SSE - KMS pada bucket direktori, Amazon S3 menggunakan bucket Amazon Resource Name (ARN) sebagai pasangan konteks enkripsi:

arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3

Pastikan IAM kebijakan atau kebijakan AWS KMS utama Anda menggunakan bucket Anda ARN sebagai konteks enkripsi.

Anda secara opsional dapat memberikan pasangan konteks enkripsi eksplisit dengan menggunakan x-amz-server-side-encryption-context header dalam API permintaan titik akhir Zonal, seperti. CreateSession Nilai header ini adalah string yang dikodekan Base64 dari UTF -8 yang dikodekanJSON, yang berisi konteks enkripsi sebagai pasangan nilai kunci. Untuk bucket direktori, konteks enkripsi harus sesuai dengan konteks enkripsi default — bucket Amazon Resource Name (ARN). Juga, karena konteks enkripsi tidak dienkripsi, pastikan itu tidak menyertakan informasi sensitif.

Anda dapat menggunakan konteks enkripsi untuk mengidentifikasi dan mengategorikan operasi kriptografi Anda. Anda juga dapat menggunakan ARN nilai konteks enkripsi default untuk melacak permintaan yang relevan AWS CloudTrail dengan melihat bucket direktori mana yang ARN digunakan dengan kunci enkripsi mana.

Di requestParameters bidang file CloudTrail log, jika Anda menggunakan SSE - KMS pada bucket direktori, nilai konteks enkripsi adalah bucket. ARN

"encryptionContext": { "aws:s3express:arn": "arn:aws:s3:::arn:aws:s3express:region:account-id:bucket/bucket-base-name--zone-id--x-s3" }

Selain itu, untuk enkripsi objek dengan SSE - KMS dalam ember direktori, AWS KMS CloudTrail peristiwa Anda mencatat bucket Anda ARN alih-alih objek AndaARN.

Mengirim permintaan untuk objek AWS KMS terenkripsi

Bucket direktori hanya dapat diakses melalui HTTPS (TLS). Selain itu, bucket direktori menandatangani permintaan dengan menggunakan AWS Signature Version 4 (SigV4). Untuk informasi selengkapnya tentang mengirim permintaan untuk objek AWS KMS terenkripsi, lihat. Mengirim permintaan untuk objek AWS KMS terenkripsi

Jika objek Anda menggunakan SSE -KMS, jangan mengirim header permintaan enkripsi untuk GET permintaan dan HEAD permintaan. Jika tidak, Anda akan mendapatkan kesalahan HTTP400 Bad Request.

Audit SSE - KMS enkripsi dalam ember direktori

Untuk mengaudit penggunaan AWS KMS kunci Anda untuk data KMS terenkripsi AndaSSE, Anda dapat menggunakan AWS CloudTrail log. Anda bisa mendapatkan wawasan tentang operasi kriptografi Anda, seperti GenerateDataKey dan Decrypt. CloudTrail mendukung banyak nilai atribut untuk memfilter pencarian Anda, termasuk nama acara, nama pengguna, dan sumber acara.