View a markdown version of this page

Mengatur dan memantau 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.

Mengatur dan memantau enkripsi default untuk bucket direktori

Bucket Amazon S3 mengaktifkan enkripsi bucket secara default, dan objek baru secara otomatis dienkripsi dengan menggunakan enkripsi 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 pemberian kebijakan akses, Anda dapat memilih untuk menggunakan enkripsi sisi server dengan AWS Key Management Service (AWS KMS) keys (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 penggantian enkripsi dalam bucket direktori, lihat Menentukan enkripsi sisi server dengan AWS KMS untuk unggahan objek baru.

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

  • Saat Anda menyetel enkripsi bucket default ke SSE-KMS, S3 Bucket Keys selalu diaktifkan untuk GET dan PUT operasi 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 informasi selengkapnya tentang cara S3 Bucket Keys mengurangi biaya AWS KMS permintaan Anda, lihatMengurangi biaya SSE-KMS dengan Amazon S3 Bucket Keys.

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

  • Dual-layer enkripsi sisi server 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 mengkonfigurasi enkripsi default, lihatMengonfigurasi enkripsi default.

Untuk informasi lebih lanjut tentang izin yang diperlukan untuk enkripsi default, lihat PutBucketEncryption dalam Referensi API Amazon Simple Storage Service.

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

Untuk mengonfigurasi enkripsi default di bucket Amazon S3
  1. Masuk ke Konsol Manajemen AWS 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 Server-side enkripsi, bucket direktori menggunakan Server-side enkripsi dengan kunci terkelola Amazon S3 (SSE-S3).

  6. Pilih Simpan perubahan.

Contoh-contoh ini menunjukkan cara mengkonfigurasi enkripsi default dengan menggunakan SSE-S3 atau menggunakan SSE-KMS dengan S3 Bucket Key.

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

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 S3 Bucket Key

Contoh ini mengonfigurasi enkripsi bucket default dengan SSE-KMS menggunakan S3 Bucket Key. 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, lihat PutBucketEncryption dalam Referensi API Amazon Simple Storage Service.

Saat menggunakan AWS SDK, Anda dapat meminta Amazon S3 untuk digunakan AWS KMS keys untuk enkripsi sisi server. Contoh AWS SDK untuk Java dan .NET berikut mengkonfigurasi konfigurasi enkripsi default untuk bucket direktori dengan SSE-KMS dan S3 Bucket Key. Untuk informasi tentang SDK lain, lihat Contoh kode dan pustaka di Pusat Peng AWS embang.

penting

Saat Anda menggunakan enkripsi sisi server di Amazon S3, Anda harus memilih kunci KMS enkripsi simetris. AWS KMS key 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 AWS SDK for Java 2.x, Anda dapat meminta Amazon S3 untuk menggunakan applyServerSideEncryptionByDefault metode ini untuk menentukan konfigurasi enkripsi default dari bucket direktori Anda untuk enkripsi data dengan SSE-KMS. AWS KMS key Anda membuat kunci KMS enkripsi simetris dan tentukan itu 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 yang dikelola pelanggan, lihat Mem AWS KMS program 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 AWS SDK untuk .NET, Anda dapat meminta Amazon S3 untuk menggunakan ServerSideEncryptionByDefault properti AWS KMS key dengan menggunakan untuk menentukan konfigurasi enkripsi default dari bucket direktori Anda untuk enkripsi data SSE-KMS. Anda membuat kunci yang dikelola pelanggan enkripsi simetris dan tentukan itu 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 yang dikelola pelanggan, lihat Mem AWS KMS program 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 AWS CloudTrail event. Nama peristiwa API berikut digunakan dalam CloudTrail log:

  • PutBucketEncryption

  • GetBucketEncryption

  • DeleteBucketEncryption

catatan
  • EventBridge tidak didukung dalam bucket direktori.

  • Dual-layer enkripsi sisi server 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.