Pengaturan dan pemantauan enkripsi default untuk 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.

Pengaturan dan pemantauan enkripsi default untuk bucket direktori

Bucket Amazon S3 memiliki enkripsi bucket yang diaktifkan secara default, dan objek baru secara otomatis dienkripsi dengan menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (-S3). SSE Enkripsi ini berlaku untuk semua objek baru di bucket Amazon S3 Anda, dan Anda tidak akan dikenakan biaya.

Jika Anda memerlukan kontrol lebih besar atas kunci enkripsi Anda, seperti mengelola rotasi kunci dan hibah kebijakan akses, Anda dapat memilih untuk menggunakan enkripsi sisi server AWS Key Management Service (AWS KMS) kunci (SSE-KMS).

catatan
  • 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 informasi selengkapnya tentang perilaku pengesampingan enkripsi dalam bucket direktori, lihat Menentukan enkripsi sisi server dengan AWS KMS untuk upload objek baru.

  • 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.

  • Saat Anda menyetel enkripsi bucket default ke SSE -KMS, 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 informasi selengkapnya tentang cara S3 Bucket Keys mengurangi AWS KMS meminta biaya, lihatMengurangi biaya SSE - KMS dengan Amazon S3 Bucket Keys.

  • 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.

  • Enkripsi sisi server dua lapis dengan AWS KMS keys (DSSE-KMS) dan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) tidak didukung untuk enkripsi default di bucket direktori.

Untuk informasi selengkapnya tentang mengonfigurasi enkripsi default, lihatMengonfigurasi enkripsi default.

Untuk informasi selengkapnya tentang izin yang diperlukan untuk enkripsi default, lihat PutBucketEncryptiondi APIReferensi Layanan Penyimpanan Sederhana Amazon.

Anda dapat mengonfigurasi enkripsi default Amazon S3 untuk bucket S3 dengan menggunakan konsol Amazon S3, AWS SDKs, Amazon S3 RESTAPI, dan AWS Command Line Interface (AWS CLI).

Untuk mengonfigurasi enkripsi default di bucket Amazon S3
  1. Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Dari daftar Bucket, pilih nama bucket yang Anda inginkan.

  4. Pilih tab Properti.

  5. Di bawah pengaturan enkripsi sisi server, bucket direktori menggunakan enkripsi sisi Server dengan kunci terkelola Amazon S3 (-S3). SSE

  6. Pilih Simpan perubahan.

Contoh-contoh ini menunjukkan kepada Anda cara mengonfigurasi enkripsi default dengan menggunakan SSE -S3 atau dengan menggunakan SSE - KMS dengan Kunci Bucket S3.

Untuk informasi selengkapnya tentang enkripsi default, lihat Mengatur perilaku enkripsi di sisi server default untuk bucket Amazon S3. Untuk informasi lebih lanjut tentang menggunakan AWS CLI untuk mengkonfigurasi enkripsi default, lihat put-bucket-encryption.

contoh — Enkripsi default dengan SSE -S3

Contoh ini mengonfigurasi enkripsi bucket default dengan kunci terkelola Amazon S3. Untuk menggunakan perintah, ganti user input placeholders dengan informasi Anda sendiri.

aws s3api put-bucket-encryption --bucket bucket-base-name--azid--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }'
contoh — Enkripsi default dengan SSE - KMS menggunakan Kunci Bucket S3

Contoh ini mengonfigurasi enkripsi bucket default dengan SSE - KMS menggunakan Kunci Bucket S3. Untuk menggunakan perintah, ganti user input placeholders dengan informasi Anda sendiri.

aws s3api put-bucket-encryption --bucket bucket-base-name--azid--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "KMS-Key-ARN" }, "BucketKeyEnabled": true } ] }'

Gunakan REST API PutBucketEncryption operasi untuk mengatur enkripsi default dengan jenis enkripsi sisi server untuk digunakan — SSE -S3, atau -. SSE KMS

Untuk informasi selengkapnya, silakan lihat PutBucketEncryptiondi APIReferensi Layanan Penyimpanan Sederhana Amazon.

Saat menggunakan AWS SDKs, Anda dapat meminta Amazon S3 untuk digunakan AWS KMS keys untuk enkripsi sisi server. Berikut ini AWS SDKsUntuk Java dan NETcontoh mengonfigurasi konfigurasi enkripsi default untuk bucket direktori dengan SSE - KMS dan Kunci Bucket S3. Untuk informasi tentang lainnyaSDKs, lihat Contoh kode dan pustaka di AWS Pusat Pengembang.

penting

Saat Anda menggunakan AWS KMS key untuk enkripsi sisi server di Amazon S3, Anda harus memilih kunci enkripsi simetris. KMS Amazon S3 hanya mendukung kunci enkripsi simetris. KMS Untuk informasi selengkapnya tentang kunci ini, lihat KMSKunci enkripsi simetris di AWS Key Management Service Panduan Pengembang.

Java

Dengan AWS SDK for Java 2.x, Anda dapat meminta Amazon S3 untuk menggunakan AWS KMS key dengan menggunakan applyServerSideEncryptionByDefault metode untuk menentukan konfigurasi enkripsi default bucket direktori Anda untuk enkripsi data dengan SSE -KMS. Anda membuat KMS kunci enkripsi simetris dan menentukannya dalam permintaan.

import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutBucketEncryptionRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionByDefault; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionConfiguration; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionRule; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.create(); String bucketName = "bucket-base-name--azid--x-s3"; String kmsKeyId = "your-kms-customer-managed-key-id"; // AWS managed KMS keys aren't supported. Only customer-managed keys are supported. ServerSideEncryptionByDefault serverSideEncryptionByDefault = ServerSideEncryptionByDefault.builder() .sseAlgorithm(ServerSideEncryption.AWS_KMS) .kmsMasterKeyID(kmsKeyId) .build(); // The bucketKeyEnabled field is enforced to be true. ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .bucketKeyEnabled(true) .applyServerSideEncryptionByDefault(serverSideEncryptionByDefault) .build(); ServerSideEncryptionConfiguration serverSideEncryptionConfiguration = ServerSideEncryptionConfiguration.builder() .rules(rule) .build(); PutBucketEncryptionRequest putRequest = PutBucketEncryptionRequest.builder() .bucket(bucketName) .serverSideEncryptionConfiguration(serverSideEncryptionConfiguration) .build(); s3.putBucketEncryption(putRequest); } }

Untuk informasi selengkapnya tentang membuat kunci terkelola pelanggan, lihat Memprogram AWS KMS APIdi AWS Key Management Service Panduan Pengembang.

Untuk contoh kode kerja mengunggah sebuah objek, lihat topik berikut ini. Untuk menggunakan contoh ini, Anda harus memperbarui contoh kode dan memberikan informasi enkripsi seperti yang ditunjukkan dalam fragmen kode sebelumnya.

.NET

Dengan AWS SDK for .NET, Anda dapat meminta Amazon S3 untuk menggunakan AWS KMS key dengan menggunakan ServerSideEncryptionByDefault properti untuk menentukan konfigurasi enkripsi default bucket direktori Anda untuk enkripsi data dengan SSE -KMS. Anda membuat kunci terkelola pelanggan enkripsi simetris dan menentukannya dalam permintaan.

// Set the bucket server side encryption to use AWSKMS with a customer-managed key id. // bucketName: Name of the directory bucket. "bucket-base-name--azid--x-s3" // kmsKeyId: The Id of the customer managed KMS Key. "your-kms-customer-managed-key-id" // Returns True if successful. public static async Task<bool> SetBucketServerSideEncryption(string bucketName, string kmsKeyId) { var serverSideEncryptionByDefault = new ServerSideEncryptionConfiguration { ServerSideEncryptionRules = new List<ServerSideEncryptionRule> { new ServerSideEncryptionRule { ServerSideEncryptionByDefault = new ServerSideEncryptionByDefault { ServerSideEncryptionAlgorithm = ServerSideEncryptionMethod.AWSKMS, ServerSideEncryptionKeyManagementServiceKeyId = kmsKeyId } } } }; try { var encryptionResponse =await _s3Client.PutBucketEncryptionAsync(new PutBucketEncryptionRequest { BucketName = bucketName, ServerSideEncryptionConfiguration = serverSideEncryptionByDefault, }); return encryptionResponse.HttpStatusCode == HttpStatusCode.OK; } catch (AmazonS3Exception ex) { Console.WriteLine(ex.ErrorCode == "AccessDenied" ? $"This account does not have permission to set encryption on {bucketName}, please try again." : $"Unable to set bucket encryption for bucket {bucketName}, {ex.Message}"); } return false; }

Untuk informasi selengkapnya tentang membuat kunci terkelola pelanggan, lihat Memprogram AWS KMS APIdi AWS Key Management Service Panduan Pengembang.

Untuk contoh kode kerja mengunggah sebuah objek, lihat topik berikut ini. Untuk menggunakan contoh ini, Anda harus memperbarui contoh kode dan memberikan informasi enkripsi seperti yang ditunjukkan dalam fragmen kode sebelumnya.

Memantau enkripsi default untuk bucket direktori dengan AWS CloudTrail

Anda dapat melacak permintaan konfigurasi enkripsi default untuk bucket direktori Amazon S3 dengan menggunakan AWS CloudTrail peristiwa. Nama-nama API acara berikut digunakan dalam CloudTrail log:

  • PutBucketEncryption

  • GetBucketEncryption

  • DeleteBucketEncryption

catatan
  • EventBridge tidak didukung dalam bucket direktori.

  • Enkripsi sisi server dua lapis dengan AWS Key Management Service (AWS KMS) keys (DSSE-KMS) atau enkripsi sisi server dengan kunci enkripsi yang disediakan pelanggan (SSE-C) tidak didukung dalam bucket direktori.

Untuk informasi lebih lanjut tentang pemantauan enkripsi default dengan AWS CloudTrail, lihat Memantau enkripsi default dengan AWS CloudTrail dan Amazon EventBridge.