

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
<a name="s3-express-bucket-encryption"></a>

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**  
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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html) objek baru. AWS KMS 
Untuk mengenkripsi objek baru dalam bucket direktori 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, 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 SSE-KMS terenkripsi dari bucket tujuan umum ke bucket direktori, dari bucket direktori ke bucket tujuan umum, atau di antara bucket direktori, melalui, [operasi Copy dalam Operasi](directory-buckets-objects-Batch-Ops.md) Batch [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)atau pekerjaan. import](create-import-job.md) 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, lihat[Mengurangi biaya SSE-KMS dengan Amazon S3 Bucket Keys](bucket-key.md). 
Saat Anda menentukan [kunci terkelola AWS KMS pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) untuk enkripsi di bucket direktori Anda, hanya gunakan 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 mengonfigurasi enkripsi default, lihat[Mengonfigurasi enkripsi default](default-bucket-encryption.md).

Untuk informasi lebih lanjut tentang izin yang diperlukan untuk enkripsi default, lihat [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) 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

## Menggunakan konsol S3
<a name="s3-express-bucket-encryption-how-to-set-up-console"></a>

**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/](https://console.aws.amazon.com/s3/)

1. Di panel navigasi kiri, pilih **Bucket**.

1. Dari daftar **Bucket**, pilih nama bucket yang Anda inginkan. 

1. Pilih tab **Properti**.

1. Di bawah **pengaturan Server-side enkripsi**, bucket direktori menggunakan Server-side enkripsi dengan **kunci SSE-S3 terkelola Amazon S3** ().

1. Pilih **Simpan perubahan**.

## Menggunakan AWS CLI
<a name="s3-express-default-bucket-encryption-cli"></a>

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](bucket-encryption.md). Untuk informasi selengkapnya tentang menggunakan enkripsi default AWS CLI untuk mengonfigurasi, lihat enkripsi [put-bucket-.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-encryption.html)

**Example — 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"
            }
        }
    ]
}'
```

**Example — 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
            }
        ]
    }'
```

## Penggunaan API REST
<a name="s3-express-bucket-encryption-how-to-set-up-api"></a>

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 [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) dalam *Referensi API Amazon Simple Storage Service*.

## Menggunakan AWS SDK
<a name="s3-express-kms-put-bucket-encryption-using-sdks"></a>

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](https://aws.amazon.com/code) 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](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) 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](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) 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.
+ Untuk mengunggah objek dalam operasi tunggal, lihat [Mengunggah objek ke ember direktori](directory-buckets-objects-upload.md).
+ Untuk operasi API unggahan multibagian, lihat[Menggunakan unggahan multibagian dengan bucket direktori](s3-express-using-multipart-upload.md). 

------
#### [ .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](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) 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.
+ Untuk mengunggah objek dalam operasi tunggal, lihat [Mengunggah objek ke ember direktori](directory-buckets-objects-upload.md).
+ Untuk operasi API unggahan multibagian, lihat[Menggunakan unggahan multibagian dengan bucket direktori](s3-express-using-multipart-upload.md). 

------

## Memantau enkripsi default untuk bucket direktori dengan AWS CloudTrail
<a name="s3-express-bucket-encryption-tracking"></a>

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, lihat[Memantau enkripsi default dengan AWS CloudTrail dan Amazon EventBridge](bucket-encryption-tracking.md).