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 memiliki enkripsi bucket yang diaktifkan 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, seperti mengelola rotasi kunci dan hibah kebijakan akses, Anda dapat memilih untuk menggunakan enkripsi sisi server dengan AWS Key Management Service () keys ()AWS KMS. SSE-KMS

catatan

Untuk informasi selengkapnya tentang mengonfigurasi 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, SDK, Amazon S3 REST API AWS , 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 SSE-S3 terkelola Amazon S3 ().

  6. Pilih Simpan perubahan.

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

Untuk informasi selengkapnya tentang enkripsi default, lihat Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3. Untuk informasi selengkapnya tentang menggunakan enkripsi default AWS CLI untuk mengonfigurasi, 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 menyetel 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 AWS KMS keys digunakan untuk enkripsi sisi server. Contoh AWS SDK untuk Java dan .NET berikut mengonfigurasi 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 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. 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 untuk .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. 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.

  • Dual-layer enkripsi sisi server 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 selengkapnya tentang memantau enkripsi default dengan AWS CloudTrail, lihatMemantau enkripsi default dengan AWS CloudTrail dan Amazon EventBridge.