

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS
<a name="specifying-kms-encryption"></a>

Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default, dan semua objek baru yang diunggah ke bucket S3 secara otomatis dienkripsi saat sedang tidak aktif. Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) adalah konfigurasi enkripsi default untuk setiap bucket di Amazon S3. Untuk menggunakan jenis enkripsi yang berbeda, Anda dapat menentukan jenis enkripsi sisi server yang akan digunakan dalam `PUT` permintaan S3, atau memperbarui konfigurasi enkripsi default di bucket tujuan. 

Jika Anda ingin menentukan jenis enkripsi yang berbeda dalam `PUT` permintaan Anda, Anda dapat menggunakan enkripsi sisi server dengan AWS Key Management Service () kunci (SSE-KMS AWS KMS), enkripsi sisi server dua lapis dengan kunci (DSSE-KMS), atau enkripsi sisi server dengan AWS KMS kunci yang disediakan pelanggan (SSE-C). Jika Anda ingin mengatur konfigurasi enkripsi default yang berbeda di dalam bucket tujuan, Anda dapat menggunakan SSE-KMS atau DSSE-KMS.

Untuk informasi selengkapnya tentang mengubah konfigurasi enkripsi default untuk bucket tujuan umum Anda, lihat[Mengonfigurasi enkripsi default](default-bucket-encryption.md). 

Saat Anda mengubah konfigurasi enkripsi default bucket ke SSE-KMS, jenis enkripsi objek Amazon S3 yang ada di bucket tidak akan diubah. Untuk mengubah jenis enkripsi objek yang sudah ada sebelumnya setelah memperbarui konfigurasi enkripsi default ke SSE-KMS, Anda dapat menggunakan Operasi Batch Amazon S3. Anda menyediakan Operasi Batch S3 dengan daftar objek, dan Operasi Batch memanggil operasi API masing-masing. Anda dapat menggunakan [Menyalin objek](batch-ops-copy-object.md) tindakan untuk menyalin objek yang ada, yang menuliskannya kembali ke bucket yang sama dengan objek terenkripsi SSE-KMS. Satu tugas Operasi Batch dapat melakukan operasi tertentu pada miliaran objek yang berisi data sebesar eksabita. Untuk informasi selengkapnya, lihat [Melakukan operasi objek secara massal dengan Operasi Batch](batch-ops.md) dan posting *Blog AWS Penyimpanan* [Cara mengenkripsi objek yang ada secara surut di Amazon S3 menggunakan S3 Inventory, Amazon Athena, dan Operasi Batch S3](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/). 

Anda dapat menentukan SSE-KMS dengan menggunakan konsol Amazon S3, operasi REST API, dan (). AWS SDKs AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat topik berikut. 

**catatan**  
Anda dapat menggunakan Multi-wilayah AWS KMS keys di Amazon S3. Namun, Amazon S3 saat ini memperlakukan kunci multi-Wilayah selayaknya kunci satu Wilayah, dan tidak menggunakan fitur multi-Wilayah dari kunci tersebut. Untuk informasi selengkapnya, lihat [Menggunakan kunci Multi-wilayah](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) di *Panduan AWS Key Management Service Pengembang*.

**catatan**  
Jika Anda ingin menggunakan kunci KMS yang dimiliki oleh akun lain, Anda harus memiliki izin untuk menggunakan kunci tersebut. Untuk informasi selengkapnya tentang izin lintas akun untuk kunci KMS, lihat [Membuat kunci KMS yang dapat digunakan oleh akun lain](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) di *Panduan Pengembang AWS Key Management Service *. 

## Menggunakan konsol S3
<a name="add-object-encryption-kms"></a>

Topik ini menjelaskan cara mengatur atau mengubah jenis enkripsi objek untuk menggunakan enkripsi sisi server dengan AWS Key Management Service (AWS KMS) kunci (SSE-KMS) dengan menggunakan konsol Amazon S3.

**catatan**  
Anda dapat mengubah enkripsi objek jika objek Anda kurang dari 5 GB. Jika objek Anda lebih besar dari 5 GB, Anda harus menggunakan [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)atau [AWS SDKs](CopyingObjectsMPUapi.md)untuk mengubah enkripsi objek.
Untuk daftar izin tambahan yang diperlukan untuk mengubah enkripsi objek, lihat[Izin yang diperlukan untuk operasi API Amazon S3](using-with-s3-policy-actions.md). Misalnya kebijakan yang memberikan izin ini, lihat[Contoh kebijakan berbasis identitas untuk Amazon S3](example-policies-s3.md).
Jika Anda mengubah enkripsi objek, sebuah objek baru akan dibuat untuk menggantikan objek yang lama. Jika Penentuan Versi S3 diaktifkan, versi baru objek akan dibuat, dan objek yang sudah ada menjadi versi yang lebih lama. Peran yang mengubah properti juga menjadi pemilik objek baru (atau versi objek). 

**Untuk menambahkan atau mengubah enkripsi untuk objek**

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, pilih **Bucket**, lalu pilih tab **Bucket tujuan umum**. Arahkan ke bucket Amazon S3 atau folder yang berisi objek yang ingin Anda ubah.

1. Pilih kotak centang untuk objek yang ingin Anda ubah.

1. Pada menu **Tindakan**, pilih **Edit enkripsi sisi server** dari daftar opsi yang muncul.

1. Gulir ke bagian **enkripsi sisi server**.

1. Di bawah **Pengaturan enkripsi**, pilih **Gunakan pengaturan bucket untuk enkripsi default**, atau **Ganti pengaturan bucket untuk enkripsi default**.
**penting**  
Jika Anda menggunakan opsi SSE-KMS untuk konfigurasi enkripsi default, Anda tunduk pada kuota permintaan per detik (RPS) AWS KMS. Untuk informasi selengkapnya tentang kuota AWS KMS dan cara meminta kenaikan kuota, lihat [Kuota](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) di *Panduan Pengembang AWS Key Management Service *. 

1. Jika Anda memilih **Timpa pengaturan bucket untuk enkripsi default**, konfigurasikan pengaturan enkripsi berikut.

   1. Di bawah **Jenis enkripsi**, pilih **Enkripsi sisi server dengan AWS Key Management Service kunci (SSE-KMS**).

   1. Di bagian bawah **AWS KMS kunci**, lakukan salah satu langkah berikut untuk memilih kunci KMS Anda:
      + Untuk memilih dari daftar kunci KMS yang tersedia, pilih **Pilih dari AWS KMS keys Anda**, dan pilih **Kunci KMS** Anda dari daftar kunci yang tersedia.

        Kunci Kunci yang dikelola AWS (`aws/s3`) dan kunci terkelola pelanggan Anda muncul dalam daftar ini. Untuk informasi selengkapnya tentang CMK, lihat [Kunci pelanggan dan AWS kunci](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) di *AWS Key Management Service Panduan Pengembang*.
      + Untuk memasukkan ARN kunci KMS, pilih **Masukkan AWS KMS key ARN**, lalu masukkan ARN kunci KMS Anda di bidang yang muncul. 
      + Untuk membuat kunci terkelola pelanggan baru di AWS KMS konsol, pilih **Buat kunci KMS**.

        Untuk informasi selengkapnya tentang membuat AWS KMS key, lihat [Membuat kunci](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) di *Panduan AWS Key Management Service Pengembang*.
**penting**  
Anda hanya dapat menggunakan tombol KMS yang tersedia Wilayah AWS sama dengan bucket. Konsol Amazon S3 hanya mencantumkan kunci 100 KMS pertama di Wilayah yang sama dengan bucket. Untuk menggunakan kunci KMS yang tidak terdaftar, Anda harus memasukkan ARN kunci KMS Anda. Jika Anda ingin menggunakan kunci KMS yang dimiliki oleh akun lain, Anda harus terlebih dahulu memiliki izin untuk menggunakan kunci tersebut, dan kemudian Anda harus memasukkan ARN kunci KMS.  
Amazon S3 hanya mendukung kunci KMS enkripsi simetris, dan tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Mengidentifikasi tombol KMS simetris dan asimetris](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) dalam *Panduan Pengembang AWS Key Management Service *.

1. Di bawah **Pengaturan salinan tambahan**, pilih apakah Anda ingin **Menyalin setelan sumber**, **Jangan tentukan pengaturan**, atau **Tentukan pengaturan**. **Pengaturan sumber salin** adalah opsi default. Jika Anda hanya ingin menyalin objek tanpa atribut pengaturan sumber, pilih **Jangan tentukan pengaturan**. Pilih **Tentukan pengaturan** untuk menentukan pengaturan untuk kelas penyimpanan, tag objek ACLs, metadata, enkripsi sisi server, dan checksum tambahan.

1. Pilih **Simpan perubahan**.

**catatan**  
Tindakan ini menerapkan enkripsi untuk semua objek yang ditentukan. Saat mengenkripsi folder, tunggu hingga operasi penyimpanannya selesai sebelum menambahkan objek baru ke folder tersebut.

## Penggunaan API REST
<a name="KMSUsingRESTAPI"></a>

Saat Anda membuat sebuah objek—yaitu, ketika Anda mengunggah objek baru atau menyalin objek yang sudah ada—Anda dapat menentukan penggunaan enkripsi di sisi server dengan AWS KMS keys (SSE-KMS) untuk mengenkripsi data Anda. Untuk melakukannya, tambahkan header `x-amz-server-side-encryption` ke permintaan. Atur nilai header ke algoritma enkripsi. `aws:kms`. Amazon S3 mengonfirmasi bahwa objek Anda disimpan menggunakan SSE-KMS dengan mengembalikan header respons `x-amz-server-side-encryption`. 

Jika Anda menentukan header `x-amz-server-side-encryption` dengan nilai `aws:kms`, Anda juga dapat menggunakan header permintaan berikut ini:
+ `x-amz-server-side-encryption-aws-kms-key-id`
+ `x-amz-server-side-encryption-context`
+ `x-amz-server-side-encryption-bucket-key-enabled`

**Topics**
+ [Operasi API REST Amazon S3 yang mendukung SSE-KMS](#sse-request-headers-kms)
+ [Konteks enkripsi (`x-amz-server-side-encryption-context`)](#s3-kms-encryption-context)
+ [AWS KMS ID kunci (`x-amz-server-side-encryption-aws-kms-key-id`)](#s3-kms-key-id-api)
+ [Tombol Bucket S3 () `x-amz-server-side-encryption-aws-bucket-key-enabled`](#bucket-key-api)

### Operasi API REST Amazon S3 yang mendukung SSE-KMS
<a name="sse-request-headers-kms"></a>

Operasi API REST berikut ini menerima header permintaan `x-amz-server-side-encryption`, `x-amz-server-side-encryption-aws-kms-key-id`, dan `x-amz-server-side-encryption-context`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)–Saat Anda mengunggah data dengan menggunakan operasi API `PUT`, Anda dapat menentukan header permintaan ini. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)–Saat Anda menyalin objek, Anda memiliki objek sumber dan objek target. Ketika Anda melewati header SSE-KMS dengan `CopyObject` operasi, mereka hanya diterapkan ke objek target. Saat Anda menyalin objek yang ada, terlepas dari apakah objek sumber dienkripsi atau tidak, objek tujuan tidak dienkripsi kecuali Anda secara eksplisit meminta enkripsi sisi server.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)— Saat Anda menggunakan `POST` operasi untuk mengunggah objek, alih-alih header permintaan, Anda memberikan informasi yang sama di bidang formulir.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)— Saat Anda mengunggah objek besar dengan menggunakan operasi API unggahan multibagian, Anda dapat menentukan header ini. Anda menentukan header ini dalam `CreateMultipartUpload` permintaan.

Header respons dari operasi API REST berikut mengembalikan header `x-amz-server-side-encryption` saat objek disimpan menggunakan enkripsi di sisi server.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [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/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)

**penting**  
Semua `GET` dan `PUT` permintaan untuk objek yang dilindungi oleh AWS KMS gagal jika Anda tidak membuat permintaan ini dengan menggunakan Secure Sockets Layer (SSL), Transport Layer Security (TLS), atau Signature Version 4.
Jika objek Anda menggunakan SSE-KMS, jangan mengirim header permintaan enkripsi untuk `GET` permintaan dan `HEAD` permintaan, atau Anda akan mendapatkan kesalahan HTTP 400. BadRequest

### Konteks enkripsi (`x-amz-server-side-encryption-context`)
<a name="s3-kms-encryption-context"></a>

Jika Anda menentukan `x-amz-server-side-encryption:aws:kms`, API Amazon S3 mendukung konteks enkripsi dengan header `x-amz-server-side-encryption-context`. Konteks enkripsi adalah seperangkat pasangan nilai kunci yang berisi informasi kontekstual tambahan terkait data.

Amazon S3 secara otomatis menggunakan objek atau bucket Amazon Resource Name (ARN) sebagai pasangan konteks enkripsi. Jika Anda menggunakan SSE-KMS tanpa mengaktifkan Kunci Bucket S3, Anda menggunakan objek ARN sebagai konteks enkripsi Anda; misalnya, `arn:aws:s3:::object_ARN`. Namun, jika Anda menggunakan SSE-KMS dan mengaktifkan S3 Bucket Key, Anda menggunakan objek ARN sebagai konteks enkripsi Anda; misalnya, `arn:aws:s3:::bucket_ARN`. 

Anda dapat secara opsional memberikan pasangan konteks enkripsi tambahan dengan menggunakan header `x-amz-server-side-encryption-context`. Namun, karena konteks enkripsi tidak dienkripsi, pastikan itu tidak menyertakan informasi sensitif. Amazon S3 menyimpan pasangan kunci tambahan ini bersama dengan konteks enkripsi default.

Untuk informasi tentang konteks enkripsi di Amazon S3, lihat [Konteks enkripsi](UsingKMSEncryption.md#encryption-context). Untuk informasi umum tentang konteks enkripsi, lihat [AWS Key Management Service Konsep-Konteks enkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) dalam *Panduan Pengembang AWS Key Management Service *. 

### AWS KMS ID kunci (`x-amz-server-side-encryption-aws-kms-key-id`)
<a name="s3-kms-key-id-api"></a>

Anda dapat menggunakan header `x-amz-server-side-encryption-aws-kms-key-id` untuk menentukan ID CMK, yang digunakan untuk melindungi data. Jika Anda menentukan header `x-amz-server-side-encryption:aws:kms` tetapi tidak memberikan header `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 menggunakan Kunci yang dikelola AWS (`aws/s3`) untuk melindungi data tersebut. Jika Anda ingin menggunakan CMK, Anda harus memberikan header `x-amz-server-side-encryption-aws-kms-key-id` kunci yang dikelola pelanggan.

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

### Tombol Bucket S3 () `x-amz-server-side-encryption-aws-bucket-key-enabled`
<a name="bucket-key-api"></a>

Anda dapat menggunakan header `x-amz-server-side-encryption-aws-bucket-key-enabled` permintaan untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 di tingkat objek. Kunci Bucket S3 mengurangi biaya AWS KMS permintaan Anda dengan mengurangi lalu lintas permintaan dari Amazon S3 ke. AWS KMS Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

Jika Anda menentukan header `x-amz-server-side-encryption:aws:kms` tapi tidak memberikan header `x-amz-server-side-encryption-aws-bucket-key-enabled`, objek Anda menggunakan pengaturan Kunci Bucket S3 pada bucket tujuan untuk mengenkripsi objek Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md).

## Menggunakan AWS CLI
<a name="KMSUsingCLI"></a>

Untuk menggunakan contoh AWS CLI perintah berikut, ganti `user input placeholders` dengan informasi Anda sendiri.

Saat Anda mengunggah objek baru atau menyalin objek yang ada, Anda dapat menentukan penggunaan enkripsi sisi server dengan AWS KMS kunci untuk mengenkripsi data Anda. Untuk melakukannya, tambahkan header `--server-side-encryption aws:kms` ke permintaan. Gunakan tombol `--ssekms-key-id example-key-id` untuk menambahkan [AWS KMS kunci terkelola pelanggan](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) yang Anda buat. Jika Anda menentukan`--server-side-encryption aws:kms`, tetapi tidak memberikan ID AWS KMS kunci, Amazon S3 akan menggunakan kunci AWS terkelola.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --ssekms-key-id example-key-id --body filepath
```

Anda juga dapat mengaktifkan atau menonaktifkan Tombol Bucket Amazon S3 pada operasi PUT atau COPY Anda dengan menambahkan `--bucket-key-enabled` atau `--no-bucket-key-enabled`. Amazon S3 Bucket Keys dapat mengurangi biaya AWS KMS permintaan Anda dengan mengurangi lalu lintas permintaan dari Amazon S3 ke. AWS KMS Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS menggunakan Kunci Bucket Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-key.html).

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

Anda dapat mengenkripsi objek yang tidak terenkripsi untuk menggunakan SSE-KMS dengan menyalin objek kembali ke tempatnya.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms --sse-kms-key-id example-key-id --body filepath
```

## Menggunakan AWS SDKs
<a name="kms-using-sdks"></a>

Saat menggunakan AWS SDKs, Anda dapat meminta Amazon S3 untuk digunakan AWS KMS keys untuk enkripsi sisi server. Contoh berikut menunjukkan bagaimana menggunakan SSE-KMS dengan AWS SDKs untuk Java dan .NET. Untuk informasi tentang lainnya SDKs, lihat [Contoh kode dan pustaka](https://aws.amazon.com/code) 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](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dalam *Panduan Pengembang AWS Key Management Service *.

### Operasi `CopyObject`
<a name="kms-copy-operation"></a>

Saat menyalin objek, Anda menambahkan properti permintaan yang sama (`ServerSideEncryptionMethod` dan `ServerSideEncryptionKeyManagementServiceKeyId`) untuk meminta Amazon S3 menggunakan AWS KMS key. Untuk informasi selengkapnya tentang menyalin objek, lihat [Menyalin, memindahkan, dan mengganti nama objek](copy-object.md). 

### Operasi `PUT`
<a name="kms-put-operation"></a>

------
#### [ Java ]

Saat mengunggah objek menggunakan AWS SDK untuk Java, Anda dapat meminta Amazon S3 untuk menggunakan AWS KMS key dengan menambahkan properti seperti `SSEAwsKeyManagementParams` yang ditunjukkan dalam permintaan berikut:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());
```

Dalam hal ini, Amazon S3 menggunakan Kunci yang dikelola AWS ()`aws/s3`. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md). Anda dapat secara opsional membuat kunci KMS enkripsi simetris dan menentukannya dalam permintaan, seperti yang ditunjukkan pada contoh berikut:

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));
```

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](upload-objects.md).
+ Untuk unggahan multibagian yang menggunakan operasi API unggahan multibagian tingkat tinggi atau tingkat rendah, lihat. [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md) 

------
#### [ .NET ]

Saat mengunggah objek menggunakan AWS SDK untuk .NET, Anda dapat meminta Amazon S3 untuk menggunakan AWS KMS key dengan menambahkan properti seperti `ServerSideEncryptionMethod` yang ditunjukkan dalam permintaan berikut:

```
PutObjectRequest putRequest = new PutObjectRequest
 {
     BucketName = amzn-s3-demo-bucket,
     Key = keyName,
     // other properties
     ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS
 };
```

Dalam hal ini, Amazon S3 menggunakan. Kunci yang dikelola AWS Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md). Anda dapat secara opsional membuat kunci terkelola pelanggan enkripsi simetris Anda sendiri dan menentukannya dalam permintaan, seperti yang ditunjukkan pada contoh berikut:

```
PutObjectRequest putRequest1 = new PutObjectRequest
{
  BucketName = amzn-s3-demo-bucket,
  Key = keyName,
  // other properties
  ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS,
  ServerSideEncryptionKeyManagementServiceKeyId = keyId
};
```

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](upload-objects.md).
+ Untuk unggahan multibagian yang menggunakan operasi API unggahan multibagian tingkat tinggi atau tingkat rendah, lihat. [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md) 

------

### Ditandatangani URLs
<a name="kms-presigned-urls"></a>

------
#### [ Java ]

Saat membuat URL presigned untuk objek yang dienkripsi dengan AWS KMS key, Anda harus secara eksplisit menentukan Signature Versi 4, seperti yang ditunjukkan pada contoh berikut:

```
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setSignerOverride("AWSS3V4SignerType");
AmazonS3Client s3client = new AmazonS3Client(
        new ProfileCredentialsProvider(), clientConfiguration);
...
```

Untuk contoh kode, lihat [Berbagi objek dengan presigned URLs](ShareObjectPreSignedURL.md). 

------
#### [ .NET ]

Saat membuat URL presigned untuk objek yang dienkripsi dengan AWS KMS key, Anda harus secara eksplisit menentukan Signature Versi 4, seperti yang ditunjukkan pada contoh berikut:

```
AWSConfigs.S3Config.UseSignatureVersion4 = true;
```

Untuk contoh kode, lihat [Berbagi objek dengan presigned URLs](ShareObjectPreSignedURL.md).

------