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) dalam bucket direktori
Kontrol keamanan di dalam 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 KMS 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).
Perizinan
Untuk mengunggah atau mengunduh objek yang dienkripsi dengan AWS KMS key ke atau dari Amazon S3, Anda memerlukan kms:GenerateDataKey dan kms:Decrypt izin pada kunci. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS untuk operasi kriptografi di Panduan Pengembang AWS Key Management Service . Untuk informasi tentang AWS KMS izin yang diperlukan untuk unggahan multipart, lihat. API dan izin unggahan multibagian
Untuk informasi selengkapnya tentang kunci KMS untuk SSE-KMS, lihatMenentukan enkripsi sisi server dengan AWS KMS (SSE-KMS).
Topik
AWS KMS keys
SSE-KMS Konfigurasi Anda hanya dapat mendukung 1 kunci yang dikelola pelanggan per bucket direktori selama masa pakai bucket. Kunci yang dikelola AWS (aws/s3) tidak didukung. Selain itu, setelah Anda menentukan kunci yang dikelola pelanggan untuk SSE-KMS, Anda tidak dapat mengganti kunci yang dikelola pelanggan untuk SSE-KMS konfigurasi bucket.
Anda dapat mengidentifikasi kunci yang dikelola pelanggan yang Anda tentukan untuk SSE-KMS konfigurasi bucket, dengan cara berikut:
Anda membuat permintaan operasi
HeadObjectAPI untuk menemukan nilaix-amz-server-side-encryption-aws-kms-key-iddalam respons Anda.
Untuk menggunakan kunci baru yang dikelola pelanggan untuk data Anda, sebaiknya menyalin objek yang ada ke bucket direktori baru dengan kunci yang dikelola pelanggan baru.
Saat Anda menentukan kunci yang dikelola AWS KMS pelanggan untuk enkripsi di bucket direktori Anda, gunakan hanya ID kunci atau kunci ARN. Format alias kunci untuk kunci KMS tidak didukung.
Untuk informasi selengkapnya tentang kunci KMS 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 kunci KMS yang sepenuhnya memenuhi syarat ARN.
Kunci Bucket Amazon S3
S3 Bucket Keys selalu diaktifkan untuk PUT operasi GET dan dalam bucket direktori dan tidak dapat dinonaktifkan. S3 Bucket Keys tidak didukung, saat Anda menyalin objek SSE-KMS terenkripsi dari bucket tujuan umum ke bucket direktori, dari bucket direktori ke bucket tujuan umum, atau antara bucket direktori CopyObject, melalui 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 suatu KMS-encrypted objek.
Untuk operasi API titik akhir Zonal (tingkat objek) kecuali CopyObject dan UploadPartCopy, Anda mengotentikasi dan mengotorisasi permintaan untuk latensi rendah. CreateSession 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 konfigurasi enkripsi default bucket direktori dengan kunci KMS (khususnya, kunci yang dikelola pelanggan). Kemudian, ketika sesi dibuat untuk operasi API 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 penggantian enkripsi dalam bucket direktori, lihat Menentukan enkripsi sisi server dengan AWS KMS untuk unggahan objek baru.
S3 Bucket Keys digunakan untuk jangka waktu terbatas di Amazon S3, yang selanjutnya mengurangi kebutuhan Amazon S3 untuk membuat permintaan AWS KMS untuk menyelesaikan operasi enkripsi. Untuk informasi selengkapnya tentang menggunakan S3 Bucket Keys, lihat Kunci Bucket Amazon S3 danMengurangi biaya SSE-KMS dengan Amazon S3 Bucket Keys.
Membutuhkan SSE-KMS
Untuk meminta SSE-KMS semua objek dalam bucket direktori tertentu, Anda dapat menggunakan kebijakan bucket. Misalnya, saat Anda menggunakan operasi CreateSession API untuk memberikan izin untuk mengunggah objek baru (PutObject,CopyObject, danCreateMultipartUpload), kebijakan bucket berikut menolak izin objek unggah (s3express:CreateSession) kepada semua orang jika CreateSession permintaan tidak menyertakan x-amz-server-side-encryption-aws-kms-key-id header yang meminta SSE-KMS.
Untuk mengharuskan suatu benda tertentu AWS KMS key digunakan untuk mengenkripsi objek dalam bucket, Anda dapat menggunakan kunci s3express:x-amz-server-side-encryption-aws-kms-key-id kondisi. Untuk menentukan kunci KMS, Anda harus menggunakan kunci Nama Sumber Daya Amazon (ARN) yang ada dalam arn:aws:kms: format. AWS Identity and Access Management tidak memvalidasi jika string untuk region:acct-id:key/key-ids3express:x-amz-server-side-encryption-aws-kms-key-id ada. ID AWS KMS kunci yang digunakan Amazon S3 untuk enkripsi objek harus sesuai 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 tertentu untuk bucket direktori, lihatMengotorisasi operasi API titik akhir 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 kebijakan IAM atau kebijakan AWS KMS kunci menggunakan bucket ARN sebagai konteks enkripsi.
Anda dapat secara opsional menyediakan pasangan konteks enkripsi eksplisit dengan menggunakan x-amz-server-side-encryption-context header dalam permintaan API titik akhir Zonal, seperti CreateSession. Nilai header ini adalah Base64-encoded string dari JSON yang UTF-8 dikodekan, yang berisi konteks enkripsi sebagai pasangan kunci-nilai. 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 nilai ARN konteks enkripsi default untuk melacak permintaan yang relevan AWS CloudTrail dengan melihat bucket direktori mana ARN digunakan dengan kunci enkripsi mana.
Di requestParameters bidang file CloudTrail log, jika Anda menggunakan SSE-KMS pada bucket direktori, nilai konteks enkripsi adalah ARN dari bucket.
"encryptionContext": { "aws:s3express:arn": "arn:aws:s3:::arn:aws:s3express:" }region:account-id:bucket/bucket-base-name--zone-id--x-s3
Juga, untuk enkripsi objek dengan SSE-KMS dalam bucket direktori, AWS KMS CloudTrail peristiwa Anda mencatat bucket ARN Anda alih-alih objek ARN Anda.
Mengirim permintaan untuk AWS KMS objek terenkripsi
Bucket direktori hanya dapat diakses melalui HTTPS (TLS). Juga, bucket direktori menandatangani permintaan dengan menggunakan Sig AWS nature Version 4 (SIGv4). Untuk informasi selengkapnya tentang mengirim permintaan untuk objek AWS KMS terenkripsi, lihatMengirim permintaan untuk AWS KMS objek terenkripsi.
Jika objek Anda menggunakan SSE-KMS, jangan mengirim header permintaan enkripsi untuk GET permintaan dan HEAD permintaan. Jika tidak, Anda akan mendapatkan kesalahan HTTP 400 Bad Request.
Mengaudit SSE-KMS enkripsi dalam bucket direktori
Untuk mengaudit penggunaan AWS KMS kunci Anda untuk data SSE-KMS terenkripsi Anda, 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.