Menggunakan enkripsi sisi server dengan AWS KMS keys (SSE-KMS) dalam ember 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 keys (SSE-KMS) dalam ember direktori

Kontrol keamanan di AWS KMS dapat membantu Anda memenuhi persyaratan kepatuhan terkait enkripsi. Anda dapat memilih untuk mengonfigurasi bucket direktori untuk menggunakan enkripsi sisi server AWS Key Management Service (AWS KMS) kunci (SSE-KMS) dan gunakan KMS kunci ini 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 perlu kms:GenerateDataKey dan kms:Decrypt izin pada kunci. Untuk informasi selengkapnya, lihat Mengizinkan pengguna kunci menggunakan KMS kunci untuk operasi kriptografi di AWS Key Management Service Panduan Pengembang. Untuk informasi tentang AWS KMS izin yang diperlukan untuk upload multipart, 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. 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 AWS KMS kunci terkelola 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 KMS -terenkripsi.

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 AWS KMS untuk unggahan objek baru.

Kunci Bucket S3 digunakan untuk jangka waktu terbatas dalam Amazon S3, yang selanjutnya mengurangi kebutuhan Amazon S3 untuk mengajukan 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 untuk 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--azid--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Untuk mewajibkan yang khusus AWS KMS key digunakan untuk mengenkripsi objek dalam ember, Anda dapat menggunakan tombol 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. Bagian AWS KMS ID kunci yang digunakan Amazon S3 untuk enkripsi objek harus cocok dengan AWS KMS ID 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 ember direktori.

Untuk daftar lengkap kunci kondisi khusus untuk bucket direktori, lihatAWS Identity and Access Management (IAM) untuk S3 Express One Zone.

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--azid--x-s3

Pastikan IAM kebijakan Anda atau AWS KMS kebijakan utama 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 ARN yang 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--azid--x-s3" }

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

Mengirim permintaan untuk AWS KMS objek terenkripsi

Bucket direktori hanya dapat diakses melalui HTTPS (TLS). Juga, ember direktori menandatangani permintaan dengan menggunakan AWS Tanda Tangan Versi 4 (SiGv4). Untuk informasi lebih lanjut tentang mengirim permintaan AWS KMS objek terenkripsi, lihat. Mengirim permintaan untuk AWS KMS objek terenkripsi

Jika objek Anda menggunakan SSE -KMS, jangan kirim 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 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.