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 mengaktifkan enkripsi bucket secara default, dan objek baru secara otomatis dienkripsi dengan menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3). 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 dengan kunci AWS Key Management Service (AWS KMS) (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 unggahan objek baru. AWS KMS

  • Untuk mengenkripsi objek baru dalam bucket direktori dengan SSE-KMS, Anda harus menentukan SSE-KMS sebagai 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.

  • 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 objek terenkripsi SSE-KMS 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 dienkripsi KMS. Untuk informasi selengkapnya tentang cara Kunci Bucket S3 mengurangi biaya AWS KMS permintaan Anda, lihatMengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3.

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

  • Enkripsi sisi server dua lapis dengan AWS KMS kunci (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 PutBucketEncryption dalam Referensi API Layanan Penyimpanan Sederhana Amazon.

Anda dapat mengonfigurasi enkripsi default Amazon S3 untuk bucket S3 dengan menggunakan konsol Amazon S3, API REST AWS SDKs Amazon S3, 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 (SSE-S3).

  6. Pilih Simpan perubahan.

Contoh ini menunjukkan 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 selengkapnya tentang menggunakan enkripsi default AWS CLI untuk mengonfigurasi, 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--zone-id--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--zone-id--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "KMS-Key-ARN" }, "BucketKeyEnabled": true } ] }'

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

Untuk informasi selengkapnya, silakan lihat PutBucketEncryption dalam Referensi API 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 SDKs untuk contoh Java dan .NET mengonfigurasi konfigurasi enkripsi default untuk bucket direktori dengan SSE-KMS dan S3 Bucket Key. Untuk informasi tentang lainnya SDKs, lihat Contoh kode dan pustaka di Pusat AWS Pengembang.

penting

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

Java

Dengan itu AWS SDK for Java 2.x, Anda dapat meminta Amazon S3 untuk menggunakan metode AWS KMS key dengan menggunakan applyServerSideEncryptionByDefault metode untuk menentukan konfigurasi enkripsi default bucket direktori Anda untuk enkripsi data dengan SSE-KMS. Anda membuat kunci KMS 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--zoneid--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 API di Panduan AWS Key Management Service 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 itu AWS SDK for .NET, Anda dapat meminta Amazon S3 untuk menggunakan properti 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--zonsid--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 API di Panduan AWS Key Management Service 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 peristiwa. AWS CloudTrail Nama peristiwa API berikut digunakan dalam CloudTrail log:

  • PutBucketEncryption

  • GetBucketEncryption

  • DeleteBucketEncryption

catatan
  • EventBridge tidak didukung dalam bucket direktori.

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

Untuk informasi selengkapnya tentang memantau enkripsi default dengan AWS CloudTrail, lihatMemantau enkripsi default dengan AWS CloudTrail dan Amazon EventBridge.