

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

# Keamanan di Amazon S3
<a name="security"></a>

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru. Untuk informasi lebih lanjut tentang perubahan ini, lihat[Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md).

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menjelaskan hal ini sebagai keamanan ** cloud dan keamanan *dalam* cloud:

**Keamanan cloud**  
AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Efektivitas keamanan kami diuji dan diverifikasi secara rutin oleh auditor pihak ketiga sebagai bagian dari [program kepatuhan AWS](https://aws.amazon.com/compliance/programs/). Untuk mempelajari tentang program kepatuhan yang berlaku untuk Amazon S3, lihat [AWS Layanan dalam Cakupan Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/).

**Keamanan cloud**  
Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor-faktor lain termasuk sensitivitas data, kebutuhan organisasi, serta undang-undang dan peraturan yang berlaku. Untuk Amazon S3, tanggung jawab Anda mencakup area berikut:
+ Mengelola data Anda, termasuk [kepemilikan objek](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) dan [enkripsi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).
+ Mengklasifikasikan aset Anda.
+ [Mengelola akses](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) ke data Anda menggunakan [peran IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html#roles) dan konfigurasi layanan lainnya untuk menerapkan izin yang sesuai.
+ Mengaktifkan kontrol detektif seperti atau Amazon GuardDuty untuk [AWS CloudTrail](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudtrail-logging.html)[Amazon](https://docs.aws.amazon.com/guardduty/latest/ug/s3_detection.html) S3.

Dokumentasi ini akan membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan Amazon S3. Topik berikut menunjukkan cara mengonfigurasi Amazon S3 untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga akan mempelajari cara menggunakan AWS layanan lain yang dapat membantu Anda memantau dan mengamankan sumber daya Amazon S3 Anda. 

**catatan**  
Untuk informasi selengkapnya tentang menggunakan kelas penyimpanan Amazon S3 Express One Zone dengan bucket direktori, lihat [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) dan [Bekerja dengan bucket direktori](directory-buckets-overview.md).

**Topics**
+ [Praktik Terbaik Keamanan untuk Amazon S3](security-best-practices.md)
+ [Perlindungan data dalam Amazon S3](DataDurability.md)
+ [Melindungi data dengan enkripsi](UsingEncryption.md)
+ [Privasi lalu lintas antarjaringan](inter-network-traffic-privacy.md)
+ [Validasi kepatuhan untuk Amazon S3](s3-compliance.md)
+ [Ketahanan dalam Amazon S3](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di Amazon S3](network-isolation.md)
+ [Analisis konfigurasi dan kerentanan di Amazon S3](vulnerability-analysis-and-management.md)
+ [Manajemen akses](security-access-management.md)
+ [Inventaris data Amazon Simple Storage Service](s3-data-inventory.md)

# Praktik Terbaik Keamanan untuk Amazon S3
<a name="security-best-practices"></a>

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru. Untuk informasi lebih lanjut tentang perubahan ini, lihat[Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md).

Amazon S3 menyediakan sejumlah fitur keamanan untuk dipertimbangkan ketika Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai rekomendasi yang bermanfaat, bukan sebagai resep. 

**Topics**
+ [Praktik terbaik keamanan Amazon S3](#security-best-practices-prevent)
+ [Praktik Terbaik Pemantauan dan Audit Amazon S3](#security-best-practices-detect)
+ [Memantau keamanan data dengan layanan AWS keamanan terkelola](#monitoring-data-security)

## Praktik terbaik keamanan Amazon S3
<a name="security-best-practices-prevent"></a>

Praktik terbaik berikut untuk Amazon S3 dapat membantu mencegah insiden keamanan.

**Nonaktifkan daftar kontrol akses (ACLs)**  
S3 Object Ownership adalah setelan tingkat ember Amazon S3 yang dapat Anda gunakan untuk mengontrol kepemilikan objek yang diunggah ke bucket Anda dan untuk menonaktifkan atau mengaktifkan. ACLs Secara default, Kepemilikan Objek disetel ke pengaturan yang diberlakukan pemilik bucket dan semuanya ACLs dinonaktifkan. Saat ACLs dinonaktifkan, pemilik bucket memiliki semua objek di bucket dan mengelola akses ke data secara eksklusif menggunakan kebijakan manajemen akses.   
Mayoritas kasus penggunaan modern di Amazon S3 tidak lagi memerlukan penggunaan [daftar kontrol akses () ACLs](acl-overview.md). Kami menyarankan Anda menonaktifkan ACLs, kecuali dalam keadaan di mana Anda harus mengontrol akses untuk setiap objek secara individual. Untuk menonaktifkan ACLs dan mengambil kepemilikan setiap objek di bucket Anda, terapkan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek S3. Saat Anda menonaktifkan ACLs, Anda dapat dengan mudah memelihara ember dengan objek yang diunggah oleh berbeda Akun AWS.   
Kapan ACLs dinonaktifkan kontrol akses untuk data Anda didasarkan pada kebijakan, seperti berikut ini:   
+ AWS Identity and Access Management (IAM) kebijakan pengguna
+ Kebijakan bucket S3
+ Kebijakan titik akhir cloud privat virtual (VPC)
+ AWS Organizations kebijakan kontrol layanan (SCPs)
+ AWS Organizations kebijakan kontrol sumber daya (RCPs)
  
Menonaktifkan ACLs menyederhanakan manajemen izin dan audit. ACLs dinonaktifkan untuk ember baru secara default. Anda juga dapat menonaktifkan ACLs untuk ember yang ada. Jika Anda memiliki bucket yang sudah memiliki objek di dalamnya, setelah Anda menonaktifkan ACLs, objek dan bucket ACLs tidak lagi menjadi bagian dari proses evaluasi akses. Sebaliknya, akses diberikan atau ditolak berdasarkan kebijakan.   
Sebelum Anda menonaktifkan ACLs, pastikan Anda melakukan hal berikut:   
+ Tinjau kebijakan bucket Anda untuk memastikan bahwa kebijakan tersebut mencakup semua cara yang ingin Anda berikan akses ke bucket di luar akun Anda.
+ Setel ulang ACL bucket Anda ke default (kontrol penuh ke pemilik bucket).
  
Setelah Anda menonaktifkan ACLs, perilaku berikut terjadi:   
+ Bucket Anda hanya menerima `PUT` permintaan yang tidak menentukan ACL atau `PUT` permintaan dengan kontrol penuh pemilik bucket. ACLs Ini ACLs termasuk ACL `bucket-owner-full-control` kalengan atau bentuk setara dari ACL ini yang diekspresikan dalam XHTML.
+ Aplikasi yang ada yang mendukung kontrol penuh pemilik bucket ACLs tidak akan berdampak. 
+ `PUT`permintaan yang berisi lainnya ACLs (misalnya, hibah khusus untuk tertentu Akun AWS) gagal dan mengembalikan kode status HTTP `400 (Bad Request)` dengan kode `AccessControlListNotSupported` kesalahan.
   
Untuk informasi selengkapnya, lihat [Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda](about-object-ownership.md).

**Pastikan bucket Amazon S3 Anda menggunakan kebijakan yang benar dan tidak dapat diakses publik**  
Kecuali jika Anda secara tegas meminta siapa pun di internet untuk dapat membaca atau menulis ke bucket S3 Anda, pastikan bucket S3 Anda tidak tersedia untuk umum. Berikut ini adalah beberapa langkah yang dapat Anda lakukan untuk memblokir akses publik:  
+ Gunakan Blokir Akses Publik S3. Dengan Blokir Akses Publik S3, Anda dapat dengan mudah menyiapkan kontrol terpusat untuk membatasi akses publik ke sumber daya Amazon S3 Anda. Kontrol terpusat ini ditegakkan terlepas dari bagaimana sumber daya dibuat. Untuk organisasi yang mengelola beberapa AWS akun, kini Anda dapat menggunakan penegakan hukum tingkat organisasi AWS Organizations untuk mengelola setelan Akses Publik Blok S3 secara terpusat di seluruh organisasi Anda dengan satu konfigurasi kebijakan.

  Untuk informasi selengkapnya, lihat [Melakukan blok akses publik ke penyimpanan Amazon S3 Anda](access-control-block-public-access.md).
+ Identifikasi kebijakan bucket Amazon S3 yang mengizinkan identitas wildcard seperti `"Principal": "*"` (yang secara efektif berarti “siapa pun”). Cari juga kebijakan yang memungkinkan tindakan wildcard `"*"` (yang secara efektif memungkinkan pengguna melakukan tindakan apa pun di bucket Amazon S3).
+ Demikian pula, cari daftar kontrol akses bucket Amazon S3 (ACLs) yang menyediakan baca, tulis, atau akses penuh ke “Semua Orang” atau “Setiap pengguna yang diautentikasi AWS .” 
+ Menggunakan operasi API `ListBuckets` untuk memindai semua bucket Amazon S3. Kemudian, gunakan `GetBucketAcl`, `GetBucketWebsite`, dan `GetBucketPolicy` untuk menentukan apakah setiap bucket memiliki kontrol akses yang sesuai dan konfigurasi yang sesuai.
+ Gunakan [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html#trusted-advisor) untuk memeriksa implementasi Amazon S3.
+ Pertimbangkan untuk menerapkan kontrol detektif yang sedang berlangsung dengan menggunakan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-read-prohibited.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-read-prohibited.html) dan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-write-prohibited.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-write-prohibited.html) Aturan AWS Config yang dikelola.
**Untuk organisasi dengan banyak AWS akun, pertimbangkan untuk menggunakan manajemen Blokir Akses Publik tingkat organisasi:**  
+ Manajemen kebijakan terpusat: Gunakan AWS Organizations untuk membuat kebijakan Akses Publik Blok S3 tunggal yang secara otomatis berlaku untuk semua akun anggota atau unit organisasi yang dipilih ()OUs.
+ Warisan otomatis: Saat Anda melampirkan kebijakan di tingkat root atau OU, akun anggota baru secara otomatis mewarisi pengaturan Blokir Akses Publik tanpa pengaturan akun individual.
+ Kepatuhan yang disederhanakan: Kebijakan tingkat organisasi menghilangkan kebutuhan untuk mempertahankan Kebijakan Kontrol Layanan yang kompleks (SCPs) untuk penegakan Blokir Akses Publik dan mengurangi overhead operasional untuk mengelola konfigurasi akun individu.
+ Kemampuan audit: Gunakan AWS CloudTrail untuk memantau lampiran kebijakan dan penegakan hukum di seluruh akun anggota untuk melacak kepatuhan.
Untuk informasi selengkapnya, lihat [Identity and Access Management untuk Amazon S3](security-iam.md). 

**Nonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) ke bucket Anda**  
Sebagian besar kasus penggunaan modern di Amazon S3 tidak lagi menggunakan SSE-C karena tidak memiliki fleksibilitas enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci KMS (SSE-KMS). AWS Persyaratan SSE-C untuk menyediakan kunci enkripsi setiap kali Anda berinteraksi dengan data terenkripsi SSE-C Anda membuatnya tidak praktis untuk membagikan kunci SSE-C Anda dengan pengguna, peran, atau AWS layanan lain yang membaca data dari bucket S3 Anda agar dapat beroperasi pada data Anda.  
Untuk membatasi jenis enkripsi sisi server yang dapat Anda gunakan di bucket tujuan umum, Anda dapat memilih untuk memblokir permintaan penulisan SSE-C dengan memperbarui konfigurasi enkripsi default untuk bucket Anda. Konfigurasi tingkat ember ini memblokir permintaan untuk mengunggah objek yang menentukan SSE-C. Ketika SSE-C diblokir untuk bucket, setiap,, `PutObject` `CopyObject``PostObject`, atau Multipart Upload atau permintaan replikasi yang menentukan enkripsi SSE-C akan ditolak dengan kesalahan. `HTTP 403 AccessDenied`   
Untuk mempelajari lebih lanjut tentang memblokir SSE-C, lihat. [Memblokir atau membuka blokir SSE-C untuk bucket tujuan umum](blocking-unblocking-s3-c-encryption-gpb.md)

**Buat bucket di namespace regional akun Anda**  
Secara default, Anda membuat bucket tujuan umum global di namespace global bersama. Setelah membuat bucket tujuan umum di namespace global bersama, nama bucket tersebut tidak tersedia bagi orang lain untuk membuat di dalam partisi. Saat Anda menghapus bucket tujuan umum global, nama bucket akan tersedia kembali di namespace global untuk dibuat ulang siapa saja.  
Meskipun bucket tujuan umum Amazon S3 ada di namespace global bersama, Anda dapat membuat bucket secara opsional di namespace regional akun Anda. Namespace regional akun adalah subdivisi cadangan dari namespace bucket global di mana hanya akun Anda yang dapat membuat bucket tujuan umum. Kami menyarankan Anda membuat bucket di namespace regional akun Anda karena bucket ini unik untuk akun Anda dan tidak akan pernah dapat dibuat ulang oleh akun lain. Untuk informasi selengkapnya, lihat [Ruang nama untuk ember tujuan umum](gpbucketnamespaces.md).  
Kami menyarankan agar Anda tidak menghapus bucket tujuan umum global Anda di namespace global bersama. Semua AWS Akun sekarang memiliki kuota bucket default sebesar 10.000 bucket, sehingga mengurangi kebutuhan untuk menghapus bucket kosong dari akun Anda. Jika Anda menghapus bucket di namespace global bersama, ketahuilah bahwa AWS akun lain di partisi yang sama dapat menggunakan nama bucket yang sama untuk bucket baru dan karenanya berpotensi menerima permintaan yang ditujukan untuk bucket yang dihapus. Jika Anda ingin mencegah hal ini, atau jika Anda ingin terus menggunakan nama bucket yang sama, jangan hapus bucket. Kami menyarankan agar Anda mengosongkan bucket dan menyimpannya. Alih-alih menghapus bucket, blokir permintaan bucket apa pun sesuai kebutuhan. Untuk ember yang tidak lagi digunakan secara aktif, kami sarankan untuk mengosongkan ember dari semua objek untuk meminimalkan biaya sambil mempertahankan ember itu sendiri. Untuk informasi selengkapnya, lihat [Menghapus bucket tujuan umum](delete-bucket.md).

**Terapkan akses hak akses paling rendah**  
Saat memberikan izin, Anda memutuskan siapa yang mendapatkan izin yang menjadi sumber daya Amazon S3. Anda mengaktifkan tindakan tertentu yang ingin Anda izinkan pada sumber daya tersebut. Oleh karena itu, kami menyarankan Anda hanya memberikan izin yang diperlukan untuk melaksanakan tugas. Menerapkan akses hak akses paling rendah adalah hal mendasar dalam mengurangi risiko keamanan dan dampak yang dapat diakibatkan oleh kesalahan atau niat jahat.   
Alat bantu berikut tersedia untuk menerapkan akses hak akses paling rendah:  
+ [Tindakan kebijakan untuk Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) dan [Batasan Izin untuk Entitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)
+ [Bagaimana Amazon S3 bekerja dengan IAM](security_iam_service-with-iam.md)
+ [Gambaran umum daftar kontrol akses (ACL)](acl-overview.md)
Untuk panduan tentang apa yang harus dipertimbangkan ketika memilih satu atau beberapa mekanisme sebelumnya, lihat [Identity and Access Management untuk Amazon S3](security-iam.md).

**Gunakan peran IAM untuk aplikasi dan Layanan AWS yang memerlukan akses Amazon S3**  
Agar aplikasi yang berjalan di Amazon EC2 atau lainnya Layanan AWS dapat mengakses sumber daya Amazon S3, mereka harus menyertakan kredensi yang AWS valid dalam permintaan API mereka. AWS Sebaiknya jangan menyimpan AWS kredensyal secara langsung di aplikasi atau instans Amazon EC2. Ini adalah kredensial jangka panjang yang tidak dirotasi secara otomatis dan dapat menimbulkan dampak bisnis yang signifikan jika dibobol.  
Sebaliknya, gunakan peran IAM untuk mengelola kredensial sementara untuk aplikasi atau layanan yang perlu mengakses Amazon S3. Saat Anda menggunakan peran, Anda tidak perlu mendistribusikan kredensi jangka panjang (seperti nama pengguna dan kata sandi atau kunci akses) ke instans Amazon EC2 Layanan AWS atau, seperti. AWS Lambda Peran ini menyediakan izin sementara yang dapat digunakan aplikasi saat mereka melakukan panggilan ke AWS sumber daya lain.  
Untuk informasi selengkapnya, lihat topik berikut di *Panduan Pengguna IAM*:  
+ [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Skenario Umum untuk Peran: Pengguna, Aplikasi, dan Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

  

**Pertimbangkan untuk mengenkripsi data diam**  
Anda memiliki opsi berikut untuk melindungi data diam di Amazon S3:  
+ **Enkripsi sisi server** — Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default, dan semua objek baru yang diunggah ke bucket S3 secara otomatis dienkripsi saat istirahat. 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 di sisi server yang akan digunakan dalam permintaan `PUT` S3, atau Anda dapat mengatur konfigurasi enkripsi default di bucket tujuan. 

  Amazon S3 juga menyediakan opsi enkripsi sisi server ini:
  + Enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS) 
  + Enkripsi sisi server dua lapis dengan kunci () (DSSE-KMS AWS Key Management Service )AWS KMS
  + Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)

  Untuk informasi selengkapnya, lihat [Melindungi data dengan enkripsi di sisi klien](serv-side-encryption.md).
+ **Enkripsi di sisi klien**–Enkripsikan data sisi klien dan unggah data yang dienkripsi ke Amazon S3. Dalam hal ini, Anda mengelola proses enkripsi, kunci enkripsi, dan alat terkait. Seperti enkripsi di sisi server, enkripsi di sisi klien dapat membantu mengurangi risiko dengan mengenkripsi data dengan kunci yang disimpan dalam mekanisme yang berbeda dari mekanisme yang menyimpan data itu sendiri. 

  Amazon S3 menyediakan beberapa opsi enkripsi di sisi klien. Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi di sisi klien](UsingClientSideEncryption.md).

**Menerapkan enkripsi data bergerak**  
Anda dapat menggunakan HTTPS (TLS) untuk membantu mencegah penyerang potensial menguping atau memanipulasi lalu lintas jaringan dengan menggunakan atau serangan serupa. person-in-the-middle Sebaiknya izinkan koneksi terenkripsi melalui HTTPS (TLS) dengan menggunakan kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean) dalam kebijakan bucket Amazon S3 Anda. Untuk informasi selengkapnya, lihat contoh kebijakan bucket S3 [Mengelola akses berdasarkan permintaan HTTP atau HTTPS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-HTTP-HTTPS). Selain menolak permintaan HTTP, kami menyarankan Anda mengatur CloudWatch alarm Amazon pada peringatan `tlsDetails.tlsVersion NOT EXISTS` itu jika upaya akses HTTP dilakukan pada konten Anda. Untuk informasi selengkapnya tentang cara mengonfigurasi CloudWatch alarm Amazon, lihat [Membuat CloudWatch alarm untuk CloudTrail peristiwa: contoh](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html) dan [CloudTrail merekam konten](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) di *AWS CloudTrail Panduan Pengguna*.  
Kami menyarankan agar aplikasi Anda tidak menyematkan sertifikat Amazon S3 TLS karena AWS tidak mendukung penyematan sertifikat tepercaya publik. S3 secara otomatis memperbarui sertifikat dan perpanjangan dapat terjadi kapan saja sebelum sertifikat kedaluwarsa. Memperbarui sertifikat menghasilkan key pair public-private baru. Jika Anda telah menyematkan sertifikat S3 yang baru saja diperbarui dengan kunci publik baru, Anda tidak akan dapat terhubung ke S3 hingga aplikasi Anda menggunakan sertifikat baru. 
Lalu, pertimbangkan untuk menerapkan kontrol detektif yang sedang berlangsung dengan menggunakan aturan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html) AWS Config terkelola. 

**Pertimbangkan untuk menggunakan Kunci Objek S3**  
Dengan Kunci Objek S3, Anda dapat menyimpan objek dengan menggunakan model “Tulis Sekali Baca Banyak” (WORM). Kunci Objek S3 dapat membantu mencegah penghapusan data yang tidak disengaja atau tidak tepat. Misalnya, Anda dapat menggunakan S3 Object Lock untuk membantu melindungi AWS CloudTrail log Anda.  
Untuk informasi selengkapnya, lihat [Mengunci objek dengan Object Lock](object-lock.md).

**Aktifkan Penentuan Versi S3**  
Penentuan Versi S3 adalah cara menyimpan beberapa varian objek dalam bucket yang sama. Anda dapat menggunakan Penentuan Versi untuk menyimpan, mengambil, dan memulihkan setiap versi dari setiap objek yang disimpan dalam bucket Anda. Dengan Penentuan Versi, Anda dapat dengan mudah memulihkan dari tindakan pengguna yang tidak diinginkan, serta kegagalan aplikasi.   
Lalu, pertimbangkan untuk menerapkan kontrol detektif yang sedang berlangsung dengan menggunakan aturan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-versioning-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-versioning-enabled.html) AWS Config terkelola.  
Untuk informasi selengkapnya, lihat [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md). 

**Pertimbangkan untuk menggunakan Replikasi Lintas Wilayah S3**  
Meskipun Amazon S3 menyimpan data Anda di berbagai Zona Ketersediaan yang berbeda secara geografis secara default, persyaratan kepatuhan mungkin mengatur bahwa Anda menyimpan data dengan jarak lebih jauh. Dengan S3 Cross-Region Replication (CRR), Anda dapat mereplikasi data antara jarak jauh Wilayah AWS untuk membantu memenuhi persyaratan ini. CRR memungkinkan penyalinan objek secara otomatis dan asinkron di seluruh ember dalam berbagai jenis. Wilayah AWS Untuk informasi selengkapnya, lihat [Mereplikasi objek di dalam dan di seluruh Wilayah](replication.md).  
CRR mewajibkan bucket S3 sumber dan tujuan agar Penentuan Versi diaktifkan.
Lalu, pertimbangkan untuk menerapkan kontrol detektif yang sedang berlangsung dengan menggunakan aturan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-replication-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-replication-enabled.html) AWS Config terkelola.

**Pertimbangkan untuk menggunakan titik akhir VPC untuk akses Amazon S3**  
Titik akhir cloud privat virtual (VPC) untuk Amazon S3 adalah entitas logis dalam sebuah VPC yang mengizinkan konektivitas hanya ke Amazon S3. Titik akhir VPC dapat membantu mencegah lalu lintas melintasi internet terbuka.  
Titik akhir VPC untuk Amazon S3 menyediakan banyak cara untuk mengontrol akses ke data Amazon S3 Anda:  
+ Anda dapat mengontrol permintaan, pengguna, atau grup yang diizinkan melalui titik akhir VPC tertentu dengan menggunakan kebijakan bucket S3.
+ Anda dapat mengontrol titik akhir VPCs atau VPC mana yang memiliki akses ke bucket S3 Anda dengan menggunakan kebijakan bucket S3.
+ Anda dapat membantu mencegah eksfiltrasi data dengan menggunakan VPC yang tidak memiliki gateway internet.
Untuk informasi selengkapnya, lihat [Megendalikan akses dari titik akhir VPC dengan kebijakan bucket](example-bucket-policies-vpc-endpoint.md). 

** Menggunakan layanan AWS keamanan terkelola untuk memantau keamanan data**  
Beberapa layanan AWS keamanan terkelola dapat membantu Anda mengidentifikasi, menilai, dan memantau risiko keamanan dan kepatuhan untuk data Amazon S3 Anda. Layanan ini juga dapat membantu Anda melindungi data Anda dari risiko tersebut. Layanan ini mencakup kemampuan deteksi, pemantauan, dan perlindungan otomatis yang dirancang untuk menskalakan dari sumber daya Amazon S3 untuk sumber daya tunggal Akun AWS untuk organisasi yang mencakup ribuan akun.  
Untuk informasi selengkapnya, lihat [Memantau keamanan data dengan layanan AWS keamanan terkelola](#monitoring-data-security).

## Praktik Terbaik Pemantauan dan Audit Amazon S3
<a name="security-best-practices-detect"></a>

Praktik terbaik berikut untuk Amazon S3 dapat membantu mendeteksi potensi kelemahan dan insiden keamanan.

**Identifikasi dan audit semua bucket Amazon S3 Anda**  
Identifikasi aset IT Anda adalah aspek penting dari tata kelola dan keamanan. Anda perlu memiliki visibilitas semua sumber daya Amazon S3 Anda untuk menilai postur keamanan dan mengambil tindakan di area kelemahan potensial. Untuk mengaudit sumber daya Anda, kami sarankan melakukan hal berikut ini:  
+ Gunakan Editor Tag untuk mengidentifikasi dan menandai sumber daya yang sensitif terhadap keamanan atau audit, kemudian gunakan tag tersebut saat Anda perlu mencari sumber daya ini. Untuk informasi selengkapnya, lihat [Mencari Sumber Daya untuk Ditandai](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) di *Panduan Pengguna AWS Sumber Daya Penandaan*. 
+ Gunakan Inventaris S3 untuk mengaudit dan melaporkan replikasi dan status enkripsi objek Anda untuk kebutuhan bisnis, kepatuhan, dan regulasi. Untuk informasi selengkapnya, lihat [Membuat katalog dan menganalisis data Anda dengan S3 Inventory](storage-inventory.md).
+ Buat grup sumber daya untuk sumber daya Amazon S3 Anda. Untuk informasi selengkapnya, lihat [Apa yang dimaksud dengan grup sumber daya?](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html) dalam *AWS Resource Groups Panduan Pengguna*.

**Melaksanakan pemantauan dengan menggunakan alat AWS pemantauan**  
Pemantauan adalah bagian penting dalam menjaga keandalan, keamanan, ketersediaan, dan kinerja Amazon S3 dan solusi Anda AWS . AWS menyediakan beberapa alat dan layanan untuk membantu Anda memantau Amazon S3 dan yang lain. Layanan AWS Misalnya, Anda dapat memantau CloudWatch metrik Amazon untuk Amazon S3, khususnya,, `PutRequests` dan `GetRequests` metrik. `4xxErrors` `DeleteRequests` Untuk informasi selengkapnya, lihat [Memantau metrik dengan Amazon CloudWatch](cloudwatch-monitoring.md) dan [Pencatatan log dan pemantauan di Amazon S3](monitoring-overview.md).  
Untuk contoh kedua, lihat [Contoh: Aktivitas Bucket Amazon S3](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-s3-bucket-activity). Contoh ini menjelaskan cara membuat CloudWatch alarm yang dipicu saat panggilan API Amazon S3 dibuat `PUT` atau `DELETE` kebijakan bucket, siklus hidup bucket, atau konfigurasi replikasi bucket, atau ke ACL bucket. `PUT`

**Aktifkan log akses server Amazon S3**  
Pencatatan akses server memberikan catatan detail permintaan yang dibuat ke bucket. Log akses server dapat membantu Anda dalam keamanan dan audit akses, membantu Anda mempelajari basis pelanggan Anda, dan memahami tagihan Amazon S3. Untuk petunjuk tentang mengaktifkan log akses server, lihat [Pencatatan permintaan dengan pencatatan akses server](ServerLogs.md).  
Juga pertimbangkan untuk menerapkan kontrol detektif yang sedang berlangsung dengan menggunakan aturan [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-logging-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-logging-enabled.html) AWS Config terkelola. 

**Gunakan AWS CloudTrail**  
AWS CloudTrail menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau Layanan AWS di Amazon S3. Anda dapat menggunakan informasi yang dikumpulkan oleh CloudTrail untuk menentukan hal-hal berikut:   
+ Permintaan yang diajukan ke Amazon S3
+ Alamat IP dari mana permintaan itu dibuat
+ Siapa yang membuat permintaan
+ Kapan permintaan dibuat
+ Detail tambahan tentang permintaan
  
Misalnya, Anda dapat mengidentifikasi CloudTrail entri untuk `PUT` tindakan yang memengaruhi akses data, khususnya`PutBucketAcl`, `PutObjectAcl``PutBucketPolicy`, dan`PutBucketWebsite`.   
Saat Anda mengatur Akun AWS, CloudTrail diaktifkan secara default. Anda dapat melihat peristiwa terbaru di CloudTrail konsol. Untuk membuat catatan aktivitas dan peristiwa yang sedang berlangsung untuk bucket Amazon S3, Anda dapat membuat jejak di konsol CloudTrail . Untuk informasi selengkapnya, lihat [Mencatat peristiwa data](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) dalam *AWS CloudTrail Panduan Pengguna*.  
Saat membuat jejak, Anda dapat mengonfigurasi CloudTrail untuk mencatat peristiwa data. Peristiwa data adalah catatan operasi sumber daya yang dilakukan pada atau di dalam sumber daya. Di Amazon S3, peristiwa data merekam aktivitas API tingkat objek untuk masing-masing bucket. CloudTrail mendukung subset operasi API tingkat objek Amazon S3, seperti`GetObject`,, dan. `DeleteObject` `PutObject` Untuk informasi selengkapnya tentang cara CloudTrail bekerja dengan Amazon S3, lihat. [Mencatat panggilan API Amazon S3 menggunakan AWS CloudTrail](cloudtrail-logging.md) Di konsol Amazon S3, Anda juga dapat mengonfigurasi bucket S3 Anda ke [Mengaktifkan pencatatan CloudTrail peristiwa untuk bucket dan objek S3](enable-cloudtrail-logging-for-s3.md).  
AWS Config menyediakan aturan terkelola (`cloudtrail-s3-dataevents-enabled`) yang dapat Anda gunakan untuk mengonfirmasi bahwa setidaknya satu CloudTrail jejak mencatat peristiwa data untuk bucket S3 Anda. Untuk informasi lebih lanjut, lihat [https://docs.aws.amazon.com//config/latest/developerguide/cloudtrail-s3-dataevents-enabled.html](https://docs.aws.amazon.com//config/latest/developerguide/cloudtrail-s3-dataevents-enabled.html) dalam *Panduan Pengembang AWS Config *.

**Aktifkan AWS Config**  
Beberapa praktik terbaik yang tercantum dalam topik ini menyarankan untuk membuat AWS Config aturan. AWS Config membantu Anda menilai, mengaudit, dan mengevaluasi konfigurasi AWS sumber daya Anda. AWS Config memantau konfigurasi sumber daya sehingga Anda dapat mengevaluasi konfigurasi yang direkam terhadap konfigurasi aman yang diinginkan. Dengan AWS Config, Anda dapat melakukan hal berikut:   
+ Tinjau perubahan konfigurasi dan hubungan antar sumber daya AWS 
+ Selidiki riwayat konfigurasi sumber daya terperinci
+ Tentukan kepatuhan Anda secara keseluruhan terhadap konfigurasi yang ditentukan dalam pedoman internal Anda
  
Menggunakan AWS Config dapat membantu Anda menyederhanakan audit kepatuhan, analisis keamanan, manajemen perubahan, dan pemecahan masalah operasional. Untuk informasi selengkapnya, lihat [Menyiapkan AWS Config dengan Konsol](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html) di *Panduan AWS Config Pengembang*. Saat menentukan jenis sumber daya yang akan dicatat, pastikan Anda menyertakan sumber daya Amazon S3.  
AWS Config aturan terkelola hanya mendukung bucket tujuan umum saat mengevaluasi sumber daya Amazon S3. AWS Config tidak merekam perubahan konfigurasi untuk bucket direktori. Untuk informasi selengkapnya, lihat [Aturan AWS Config Terkelola](https://docs.aws.amazon.com//config/latest/developerguide/evaluate-config_use-managed-rules.html) dan [Daftar Aturan AWS Config Terkelola](https://docs.aws.amazon.com//config/latest/developerguide/managed-rules-by-aws-config.html) di *Panduan AWS Config Pengembang*.
*Untuk contoh cara menggunakan AWS Config, lihat [Cara Menggunakan AWS Config untuk Memantau dan Menanggapi Bucket Amazon S3 yang Mengizinkan Akses Publik di Blog](https://aws.amazon.com/blogs/security/how-to-use-aws-config-to-monitor-for-and-respond-to-amazon-s3-buckets-allowing-public-access/) Keamanan.AWS * 

**Menggunakan Lensa Penyimpanan S3**  
Lensa Penyimpanan S3 adalah fitur analisis penyimpanan cloud yang dapat Anda gunakan untuk mendapatkan visibilitas seluruh organisasi ke dalam penggunaan dan aktivitas penyimpanan objek. Lensa Penyimpanan S3 juga menganalisis metrik untuk memberikan rekomendasi kontekstual yang dapat Anda gunakan untuk mengoptimalkan biaya penyimpanan dan menerapkan praktik terbaik untuk melindungi data Anda.   
Dengan Lensa Penyimpanan S3, Anda dapat menggunakan metrik untuk menghasilkan wawasan ringkasan, seperti mencari tahu berapa banyak penyimpanan yang Anda miliki di seluruh organisasi atau bucket dan prefiks mana yang paling cepat berkembang. Anda juga dapat menggunakan metrik Lensa Penyimpanan S3 untuk mengidentifikasi peluang optimasi biaya, menerapkan praktik terbaik untuk perlindungan data dan keamanan, serta meningkatkan kinerja beban kerja aplikasi.   
Misalnya, Anda dapat mengidentifikasi bucket yang tidak memiliki aturan Siklus Hidup S3 untuk membatalkan unggahan multibagian yang tidak lengkap yang berusia lebih dari 7 hari. Anda juga dapat mengidentifikasi bucket yang tidak mengikuti praktik terbaik perlindungan data, seperti menggunakan Replikasi S3 atau Penentuan Versi S3. Untuk informasi selengkapnya, lihat [Memahami Lensa Penyimpanan Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html).

**Memantau laporan keamanan AWS **  
Kami menyarankan Anda secara teratur memeriksa nasihat keamanan yang diposting dalam Trusted Advisor untuk Akun AWS Anda. Secara khusus, cari peringatan tentang bucket Amazon S3 dengan “buka izin akses.” Anda dapat melakukan ini secara terprogram dengan menggunakan [https://docs.aws.amazon.com/cli/latest/reference/support/describe-trusted-advisor-checks.html](https://docs.aws.amazon.com/cli/latest/reference/support/describe-trusted-advisor-checks.html).  
Selanjutnya, secara aktif memantau alamat email utama yang terdaftar untuk masing-masing Anda Akun AWS. AWS menggunakan alamat email ini untuk menghubungi Anda tentang masalah keamanan yang muncul yang mungkin memengaruhi Anda.  
AWS masalah operasional dengan dampak luas diposting di [Dasbor AWS Health - Layanan kesehatan](https://status.aws.amazon.com/). Masalah operasional juga diposting ke akun individu melalui Dasbor AWS Health. Untuk informasi lebih lanjut, lihat [dokumentasi AWS Health](https://docs.aws.amazon.com/health/).

## Memantau keamanan data dengan layanan AWS keamanan terkelola
<a name="monitoring-data-security"></a>

Beberapa layanan AWS keamanan terkelola dapat membantu Anda mengidentifikasi, menilai, dan memantau risiko keamanan dan kepatuhan untuk data Amazon S3 Anda. Mereka juga dapat membantu Anda melindungi data Anda dari risiko tersebut. Layanan ini mencakup kemampuan deteksi, pemantauan, dan perlindungan otomatis yang dirancang untuk menskalakan dari sumber daya Amazon S3 untuk sumber daya tunggal Akun AWS hingga sumber daya untuk organisasi yang mencakup ribuan. Akun AWS

AWS Layanan deteksi dan respons dapat membantu Anda mengidentifikasi potensi kesalahan konfigurasi keamanan, ancaman, atau perilaku tak terduga, sehingga Anda dapat dengan cepat merespons aktivitas yang berpotensi tidak sah atau berbahaya di lingkungan Anda. AWS Layanan perlindungan data dapat membantu Anda memantau dan melindungi data, akun, dan beban kerja Anda dari akses yang tidak sah. Mereka juga dapat membantu Anda menemukan data sensitif, seperti informasi pengenal pribadi (PII), di properti data Amazon S3 Anda.

Untuk membantu Anda mengidentifikasi dan mengevaluasi risiko keamanan dan kepatuhan data, layanan keamanan terkelola AWS menghasilkan temuan untuk memberi tahu Anda tentang potensi peristiwa keamanan atau masalah dengan data Amazon S3 Anda. Temuan ini memberikan rincian relevan yang dapat Anda gunakan untuk menyelidiki, menilai, dan menindaklanjuti risiko ini sesuai dengan alur kerja dan kebijakan respons insiden Anda. Anda dapat mengakses data temuan secara langsung dengan menggunakan setiap layanan. Anda juga dapat mengirim data ke aplikasi, layanan, dan sistem lain, seperti insiden keamanan dan sistem manajemen peristiwa (SIEM).

Untuk memantau keamanan data Amazon S3 Anda, pertimbangkan untuk menggunakan layanan AWS keamanan terkelola ini.

**Amazon GuardDuty**  
Amazon GuardDuty adalah layanan pendeteksi ancaman yang terus memantau beban kerja Anda Akun AWS dan beban kerja untuk aktivitas berbahaya dan memberikan temuan keamanan terperinci untuk visibilitas dan remediasi.  
Dengan fitur perlindungan S3 di GuardDuty, Anda dapat mengonfigurasi GuardDuty untuk menganalisis AWS CloudTrail manajemen dan peristiwa data untuk sumber daya Amazon S3 Anda. GuardDuty kemudian memantau peristiwa tersebut untuk aktivitas berbahaya dan mencurigakan. Untuk menginformasikan analisis dan mengidentifikasi potensi risiko keamanan, GuardDuty gunakan umpan intelijen ancaman dan pembelajaran mesin.  
GuardDuty dapat memantau berbagai jenis aktivitas untuk sumber daya Amazon S3 Anda. Misalnya, peristiwa CloudTrail manajemen untuk Amazon S3 mencakup operasi tingkat ember, seperti,, dan. `ListBuckets` `DeleteBucket` `PutBucketReplication` CloudTrail peristiwa data untuk Amazon S3 mencakup operasi tingkat objek, seperti`GetObject`,, dan. `ListObjects` `PutObject` Jika GuardDuty mendeteksi aktivitas anomali atau berpotensi berbahaya, itu menghasilkan temuan untuk memberi tahu Anda.  
Untuk informasi selengkapnya, lihat [Perlindungan Amazon S3 GuardDuty di Amazon](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html) di * GuardDuty Panduan Pengguna Amazon*.

**Amazon Detective**  
Amazon Detective menyederhanakan proses investigasi dan membantu Anda melakukan investigasi keamanan yang lebih cepat dan efektif. Detective menyediakan agregasi data, ringkasan, dan konteks yang dapat membantu Anda menganalisis dan menilai sifat dan tingkat kemungkinan masalah keamanan.  
Detective secara otomatis mengekstrak peristiwa berbasis waktu, seperti panggilan API dari dan AWS CloudTrail Amazon VPC Flow Logs untuk sumber daya Anda. AWS Ini juga menelan temuan yang dihasilkan oleh Amazon GuardDuty. Detective kemudian menggunakan machine learning, analisis statistik, dan teori grafik untuk menghasilkan visualisasi yang membantu Anda melakukan investigasi keamanan yang efektif dengan lebih cepat.  
Visualisasi ini memberikan pandangan interaktif yang terpadu tentang perilaku sumber daya dan interaksi di antara mereka dari waktu ke waktu. Anda dapat menjelajahi grafik perilaku ini untuk memeriksa tindakan yang berpotensi berbahaya, seperti upaya login yang gagal atau panggilan API yang mencurigakan. Anda juga dapat melihat bagaimana tindakan ini memengaruhi sumber daya, seperti bucket dan S3 Object.  
Untuk informasi selengkapnya, lihat [Panduan Administrasi Amazon Detective](https://docs.aws.amazon.com/detective/latest/adminguide/what-is-detective.html).

**IAM Access Analyzer**  
AWS Identity and Access Management Access Analyzer (IAM Access Analyzer) dapat membantu Anda mengidentifikasi sumber daya yang dibagikan dengan entitas eksternal. Anda juga dapat menggunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM terhadap tata bahasa kebijakan dan praktik terbaik, serta menghasilkan kebijakan IAM berdasarkan aktivitas akses di log Anda. AWS CloudTrail   
IAM Access Analyzer menggunakan penalaran berbasis logika untuk menganalisis kebijakan sumber daya di AWS lingkungan Anda, seperti kebijakan bucket. Dengan IAM Access Analyzer untuk S3, Anda akan diberi tahu saat bucket S3 dikonfigurasi untuk memungkinkan akses ke siapa pun di internet atau lainnya Akun AWS, termasuk akun di luar organisasi Anda. Misalnya, Penganalisis Akses IAM untuk S3 dapat melaporkan bahwa suatu bucket telah membaca atau menulis akses yang disediakan melalui daftar kontrol akses (ACL) bucket, kebijakan bucket, kebijakan titik akses Multi-Wilayah atau kebijakan titik akses. Untuk setiap bucket publik atau bucket bersama, Anda akan menerima temuan yang menunjukkan sumber dan tingkat akses publik atau bersama. Dengan temuan ini, Anda dapat segera mengambil tindakan korektif yang tepat untuk memulihkan akses bucket ke apa yang Anda inginkan.  
Untuk informasi selengkapnya, lihat [Meninjau akses bucket menggunakan IAM Access Analyzer untuk S3](access-analyzer.md).

**Amazon Macie**  
Amazon Macie adalah layanan keamanan yang menemukan data sensitif dengan menggunakan machine learning dan pencocokan pola. Macie memberikan visibilitas ke dalam risiko keamanan data, dan memungkinkan perlindungan otomatis terhadap risiko tersebut. Dengan Macie, Anda dapat mengotomatisasi penemuan dan pelaporan data sensitif di properti data Amazon S3 untuk mendapatkan pemahaman yang lebih baik tentang data yang disimpan organisasi Anda di S3.  
Untuk mendeteksi data sensitif dengan Macie, Anda dapat menggunakan kriteria dan teknik bawaan yang dirancang untuk mendeteksi daftar jenis data sensitif yang besar dan berkembang untuk banyak negara dan wilayah. Jenis data sensitif ini mencakup beberapa jenis informasi pengenal pribadi (PII), data keuangan, dan data kredensial. Anda juga dapat menggunakan kriteria kustom yang Anda tetapkan, ekspresi reguler yang menentukan pola teks yang cocok dan, opsional, urutan karakter dan aturan kedekatan yang menyempurnakan hasil.  
Jika Macie mendeteksi data sensitif dalam S3 Object, Macie akan membuat temuan keamanan untuk memberi tahu Anda. Temuan ini memberikan informasi tentang objek yang terpengaruh, jenis dan jumlah kemunculan data sensitif yang ditemukan Macie, dan detail tambahan untuk membantu Anda menyelidiki bucket dan S3 Object yang terpengaruh. Untuk informasi selengkapnya, lihat [Panduan Pengguna Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html).

**AWS Security Hub CSPM**  
AWS Security Hub CSPM adalah layanan manajemen postur keamanan yang melakukan pemeriksaan praktik terbaik keamanan, mengumpulkan peringatan dan temuan dari berbagai sumber ke dalam satu format, dan memungkinkan remediasi otomatis.  
Security Hub CSPM mengumpulkan dan menyediakan data temuan keamanan dari solusi AWS Partner Network keamanan terintegrasi dan, Layanan AWS termasuk Amazon Detective, Amazon, IAM Access Analyzer GuardDuty, dan Amazon Macie. Ini juga menghasilkan temuannya sendiri dengan menjalankan pemeriksaan keamanan otomatis yang berkelanjutan berdasarkan praktik AWS terbaik dan standar industri yang didukung.  
Security Hub CSPM kemudian menghubungkan dan mengkonsolidasikan temuan di seluruh penyedia untuk membantu Anda memprioritaskan dan memproses temuan yang paling signifikan. Ini juga menyediakan dukungan untuk tindakan kustom, yang dapat Anda gunakan untuk menginvokasi respons atau tindakan remediasi untuk kelas temuan tertentu.  
Dengan Security Hub CSPM, Anda dapat menilai status keamanan dan kepatuhan sumber daya Amazon S3 Anda, dan Anda dapat melakukannya sebagai bagian dari analisis yang lebih luas tentang postur keamanan organisasi Anda secara Wilayah AWS individu dan di beberapa Wilayah. Ini termasuk menganalisis tren keamanan dan mengidentifikasi masalah keamanan prioritas tertinggi. Anda juga dapat mengumpulkan temuan dari beberapa Wilayah AWS, dan memantau serta memproses data temuan agregat dari satu Wilayah.  
Untuk informasi selengkapnya, lihat [Kontrol Amazon Simple Storage Service](https://docs.aws.amazon.com/securityhub/latest/userguide/s3-controls.html) di dalam *Panduan Pengguna AWS Security Hub CSPM *.

# Perlindungan data dalam Amazon S3
<a name="DataDurability"></a>

Amazon S3 menyediakan infrastruktur penyimpanan yang sangat tahan lama yang dirancang untuk penyimpanan data penting dan primer. S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, dan S3 Glacier Deep Archive menyimpan objek secara redundan di beberapa perangkat di minimal tiga Zona Ketersediaan dalam satu Wilayah AWS. Zona Ketersediaan adalah satu atau lebih pusat data diskret dengan daya redundan, jaringan, dan konektivitas dalam Wilayah AWS. Zona Ketersediaan secara fisik dipisahkan oleh jarak yang berarti, beberapa kilometer, dari Zona Ketersediaan lainnya, meskipun semuanya berada dalam jarak 100 km (60 mil) satu sama lain. Kelas penyimpanan S3 One Zone-IA menyimpan data secara redundan di beberapa perangkat dalam satu Zona Ketersediaan. Layanan ini dirancang untuk menangani kegagalan perangkat secara bersamaan dengan mendeteksi dan memperbaiki redundansi yang hilang secara cepat, dan layanan ini juga secara rutin memverifikasi integritas data Anda menggunakan checksum.

Penyimpanan Amazon S3 standard menawarkan fitur berikut: 
+ Didukung dengan [Perjanjian Tingkat Layanan Amazon S3.](https://aws.amazon.com/s3/sla/)
+ Dirancang untuk memberikan daya tahan 99,999999999% dan ketersediaan objek 99,99% pada tahun tertentu.
+ S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval, dan S3 Glacier Deep Archive semuanya dirancang untuk mempertahankan data jika terjadi peristiwa kehilangan Zona Ketersediaan Amazon S3 secara keseluruhan.

Amazon S3 selanjutnya melindungi data Anda menggunakan Penentuan Versi. Anda dapat menggunakan Penentuan Versi untuk melestarikan, mengambil, dan memulihkan setiap versi dari setiap objek yang disimpan di dalam bucket Amazon S3 Anda. Dengan Penentuan Versi, Anda dapat dengan mudah memulihkan dari tindakan pengguna yang tidak diinginkan, serta kegagalan aplikasi. Secara default, permintaan mengambil versi terbaru yang ditulis. Anda dapat mengambil versi lama objek dengan menentukan versi objek dalam permintaan. 

Selain S3 Penentuan Versi, Anda juga dapat menggunakan Kunci Objek Amazon S3 dan Replikasi S3 untuk melindungi data Anda. Untuk informasi selengkapnya, lihat [Perlindungan data di Amazon S3](data-protection.md).

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensyal dan mengatur akun pengguna individu dengan AWS Identity and Access Management, sehingga setiap pengguna hanya diberikan izin yang diperlukan untuk memenuhi tugas pekerjaan mereka.

Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-2 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Untuk informasi selengkapnya tentang titik akhir FIPS yang tersedia, lihat [Federal Information Processing Standard (FIPS) 140-2](https://aws.amazon.com/compliance/fips/).

Praktik terbaik keamanan berikut juga membahas perlindungan data di Amazon S3:
+ [Implement server-side encryption](security-best-practices.md#server-side)
+ [Enforce encryption of data in transit](security-best-practices.md#transit)
+ [Consider using Macie with Amazon S3](security-best-practices.md#macie)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)
+ [Monitor Amazon Web Services security advisories](security-best-practices.md#advisories)

# Melindungi data dengan enkripsi
<a name="UsingEncryption"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Perlindungan data mengacu pada perlindungan data bergerak (saat melakukan perjalanan ke dan dari Amazon S3) dan saat diam (saat data disimpan di dalam disk di pusat data Amazon S3). Anda dapat melindungi data dalam perjalanan dengan menggunakan Secure Socket Layer/Transport Layer Security (SSL/TLS) termasuk pertukaran kunci pasca-kuantum hibrida atau enkripsi sisi klien. Untuk melindungi data diam di Amazon S3, Anda memiliki opsi berikut:
+ **Enkripsi sisi server — Amazon S3 mengenkripsi** objek Anda sebelum menyimpannya di disk di pusat AWS data dan kemudian mendekripsi objek saat Anda mengunduhnya.

  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/). 

  Untuk informasi selengkapnya tentang setiap opsi untuk enkripsi sisi server, lihat. [Melindungi data dengan enkripsi di sisi klien](serv-side-encryption.md)

  Untuk mengonfigurasi enkripsi di sisi server, lihat:
  + [Menentukan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](specifying-s3-encryption.md)
  + [Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS](specifying-kms-encryption.md)
  + [Menentukan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS](specifying-dsse-encryption.md)
  + [Menentukan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)](specifying-s3-c-encryption.md)

  
+ **Enkripsi di sisi klien**–Anda mengenkripsi data sisi klien dan mengunggah data yang dienkripsi ke Amazon S3. Dalam hal ini, Anda mengelola proses enkripsi, kunci enkripsi, dan alat terkait.

  Untuk mengonfigurasi enkripsi di sisi klien, lihat [Melindungi data menggunakan enkripsi di sisi klien](UsingClientSideEncryption.md).

Untuk melihat persentase byte penyimpanan yang dienkripsi, Anda dapat menggunakan metrik Lensa Penyimpanan Amazon S3. Lensa Penyimpanan S3 adalah fitur analisis penyimpanan cloud yang dapat Anda gunakan untuk mendapatkan visibilitas seluruh organisasi ke dalam penggunaan dan aktivitas penyimpanan objek. Untuk informasi selengkapnya, lihat [ Menilai aktivitas penyimpanan dan penggunaan Anda dengan Lensa Penyimpanan S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens?icmpid=docs_s3_user_guide_UsingEncryption.html). Untuk daftar lengkap metrik, lihat [ Glosarium metrik Lensa Penyimpanan S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_UsingEncryption).

Untuk informasi selengkapnya tentang enkripsi sisi server, enkripsi sisi klien, dan enkripsi dalam perjalanan, tinjau topik berikut.

**Topics**
+ [Melindungi data dengan enkripsi di sisi klien](serv-side-encryption.md)
+ [Melindungi data menggunakan enkripsi di sisi klien](UsingClientSideEncryption.md)
+ [Melindungi data dalam perjalanan dengan enkripsi](UsingEncryptionInTransit.md)

# Melindungi data dengan enkripsi di sisi klien
<a name="serv-side-encryption"></a>

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru. Untuk informasi lebih lanjut tentang perubahan ini, lihat[Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md).

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Enkripsi di sisi server adalah enkripsi data di tempat tujuan oleh aplikasi atau layanan yang menerimanya. Amazon S3 mengenkripsi data Anda pada tingkat objek saat menulisnya ke disk di pusat AWS data dan mendekripsi untuk Anda saat Anda mengaksesnya. Selama Anda mengautentikasi permintaan dan telah memiliki izin akses, tidak ada perbedaan dalam cara mengakses objek terenkripsi atau tidak terenkripsi. Misalnya, jika Anda berbagi objek menggunakan URL yang ditandatangani sebelumnya, URL tersebut bekerja dengan cara yang sama untuk objek terenkripsi maupun yang tidak terenkripsi. Selain itu, saat Anda mencantumkan objek di bucket, operasi daftar API menampilkan daftar semua objek, terlepas dari apakah objek tersebut dienkripsi atau tidak.

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/). 

**catatan**  
Anda tidak dapat menerapkan berbagai jenis enkripsi di sisi server ke objek yang sama secara bersamaan.

Jika Anda perlu mengenkripsi objek yang ada, gunakan Operasi Batch S3 dan Inventaris S3. Untuk informasi selengkapnya, lihat [ Mengenkripsi objek dengan Operasi Batch Amazon S3](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) dan [Melakukan operasi objek secara massal dengan Operasi Batch](batch-ops.md).

Saat menyimpan data di Amazon S3, Anda memiliki empat opsi yang saling eksklusif untuk enkripsi sisi server, tergantung pada bagaimana Anda memilih untuk mengelola kunci enkripsi dan jumlah lapisan enkripsi yang ingin Anda terapkan.

**Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)**  
Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default. Opsi default untuk enkripsi di sisi server adalah dengan kunci terkelola Amazon S3 (SSE-S3). Setiap objek dienkripsi dengan kunci unik. Sebagai pelindung tambahan, SSE-S3 mengenkripsi kunci itu sendiri dengan kunci root yang secara rutin diputar. SSE-S3 menggunakan salah satu penyandian blok terkuat yang ada, Advanced Encryption Standard 256-bit (AES-256), untuk mengenkripsi data Anda. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

**Enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS)**  
Enkripsi sisi server dengan AWS KMS keys (SSE-KMS) disediakan melalui integrasi layanan dengan Amazon S3. AWS KMS Dengan AWS KMS, Anda memiliki kontrol lebih besar atas kunci Anda. Misalnya, Anda dapat melihat kunci terpisah, mengedit kebijakan kontrol, dan mengikuti kunci di AWS CloudTrail. Selain itu, Anda dapat membuat dan mengelola CMK atau menggunakan Kunci yang dikelola AWS yang unik bagi Anda, layanan Anda, dan Wilayah Anda. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md).

**Enkripsi sisi server dua lapis dengan kunci () (DSSE-KMS AWS Key Management Service )AWS KMS**  
Enkripsi sisi server dual-layer dengan AWS KMS keys (DSSE-KMS) mirip dengan SSE-KMS, tetapi DSSE-KMS menerapkan dua lapisan independen enkripsi AES-256 alih-alih satu lapisan: pertama menggunakan kunci enkripsi data, kemudian menggunakan kunci enkripsi terkelola Amazon S3 yang terpisah. AWS KMS Karena kedua lapisan enkripsi diterapkan ke objek di sisi server, Anda dapat menggunakan berbagai alat Layanan AWS dan untuk menganalisis data di S3 sambil menggunakan metode enkripsi yang dapat memenuhi persyaratan kepatuhan untuk enkripsi multilayer. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS](UsingDSSEncryption.md).

**Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)**  
Dengan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C), Anda mengelola kunci enkripsi, dan Amazon S3 mengelola enkripsi saat menulis ke disk dan dekripsi saat Anda mengakses objek Anda. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)](ServerSideEncryptionCustomerKeys.md).

**catatan**  
Saat menggunakan titik akses untuk sistem FSx file Amazon menggunakan titik akses S3, Anda memiliki satu opsi untuk enkripsi sisi server.  
Semua sistem FSx file Amazon memiliki enkripsi yang dikonfigurasi secara default dan dienkripsi saat istirahat dengan kunci yang dikelola menggunakan. AWS Key Management Service Data secara otomatis dienkripsi dan didekripsi oleh pada sistem file karena data sedang ditulis dan dibaca dari sistem file. Proses ini ditangani secara transparan oleh Amazon. FSx

# Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3
<a name="bucket-encryption"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default, dan objek secara otomatis dienkripsi dengan menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3). Pengaturan enkripsi ini berlaku untuk semua objek di dalam bucket Amazon S3 Anda.

Jika Anda memerlukan kontrol lebih besar atas kunci Anda, seperti mengelola rotasi kunci dan hibah kebijakan akses, Anda dapat memilih untuk menggunakan enkripsi sisi server dengan () kunci AWS Key Management Service (SSE-KMS AWS KMS), atau enkripsi sisi server dua lapis dengan kunci (DSSE-KMS). AWS KMS Untuk informasi selengkapnya tentang mengedit kunci KMS, lihat [Mengedit kunci](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html) dalam *Panduan Pengembang AWS Key Management Service *. 

**catatan**  
Kami telah mengubah bucket untuk mengenkripsi unggahan objek baru secara otomatis. Jika sebelumnya Anda membuat bucket tanpa enkripsi default, Amazon S3 akan mengaktifkan enkripsi secara default untuk bucket menggunakan SSE-S3. Tidak akan ada perubahan pada konfigurasi enkripsi default untuk bucket yang sudah ada yang sudah memiliki konfigurasi SSE-S3 atau SSE-KMS. Jika Anda ingin mengenkripsi objek Anda dengan SSE-KMS, Anda harus mengubah jenis enkripsi di pengaturan bucket Anda. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md). 

Saat mengonfigurasi bucket untuk menggunakan enkripsi default dengan SSE-KMS, Anda juga dapat mengaktifkan Kunci Bucket S3 untuk mengurangi lalu lintas permintaan dari Amazon S3 ke AWS KMS dan mengurangi biaya enkripsi. Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

Untuk mengidentifikasi bucket yang mengaktifkan SSE-KMS untuk enkripsi default, Anda dapat menggunakan metrik Lensa Penyimpanan Amazon S3. Lensa Penyimpanan S3 adalah fitur analisis penyimpanan cloud yang dapat Anda gunakan untuk mendapatkan visibilitas seluruh organisasi ke dalam penggunaan dan aktivitas penyimpanan objek. Untuk informasi selengkapnya, lihat [Menggunakan Lensa Penyimpanan S3 untuk melindungi data Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-data-protection.html?icmpid=docs_s3_user_guide_bucket-encryption.html).

Saat Anda menggunakan enkripsi di sisi server, Amazon S3 mengenkripsi objek sebelum menyimpannya ke disk, dan mendekripsinya saat Anda mengunduh objek. Untuk informasi lebih lanjut tentang cara untuk melindungi data menggunakan enkripsi di sisi server dan manajemen kunci enkripsi, lihat [Melindungi data dengan enkripsi di sisi klien](serv-side-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 perilaku enkripsi default Amazon S3 untuk bucket S3 dengan menggunakan konsol Amazon S3, API REST Amazon S3, dan Antarmuka Baris Perintah (). AWS SDKs AWS AWS CLI

**Mengenkripsi objek yang ada**  
Untuk mengenkripsi objek Amazon S3 yang tidak terenkripsi, Anda dapat menggunakan Operasi Batch Amazon S3. Anda harus menyediakan Operasi Batch S3 dengan daftar objek untuk dioperasikan, dan Operasi Batch akan memanggil masing-masing API untuk melakukan operasi tertentu. Anda juga dapat menggunakan [Operasi Salin Operasi Batch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) untuk menyalin objek tidak terenkripsi yang ada, dan menuliskannya kembali ke bucket yang sama sebagai objek terenkripsi. 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 postingan *AWS Blog Penyimpanan* [Mengenkripsi objek dengan Operasi Batch Amazon S3](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

Anda juga dapat mengenkripsi objek yang ada dengan menggunakan operasi `CopyObject` API atau `copy-object` AWS CLI perintah. Untuk informasi selengkapnya, lihat postingan *AWS Blog Penyimpanan* [Mengenkripsi objek Amazon S3 yang sudah ada dengan AWS CLI](https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/).

**catatan**  
Bucket Amazon S3 dengan enkripsi bucket default yang diatur ke SSE-KMS tidak dapat digunakan sebagai bucket tujuan [Pencatatan permintaan dengan pencatatan akses server](ServerLogs.md). Hanya enkripsi default SSE-S3 yang didukung untuk bucket tujuan log akses server.

## Menggunakan enkripsi SSE-KMS untuk operasi lintas akun
<a name="bucket-encryption-update-bucket-policy"></a>

Saat menggunakan enkripsi untuk operasi lintas akun, perhatikan hal berikut:
+ Jika Nama Sumber Daya AWS KMS key Amazon (ARN) atau alias tidak disediakan pada waktu permintaan atau melalui konfigurasi enkripsi default bucket, Kunci yang dikelola AWS (`aws/s3`) akan digunakan.
+ Jika Anda mengunggah atau mengakses objek S3 dengan menggunakan prinsipal AWS Identity and Access Management (IAM) yang sama Akun AWS dengan kunci KMS Anda, Anda dapat menggunakan (). Kunci yang dikelola AWS `aws/s3` 
+ Jika Anda ingin memberikan akses lintas akun ke objek S3 Anda, gunakan CMK. Anda dapat mengonfigurasi kebijakan CMK untuk mengizinkan akses dari akun lain.
+ Jika Anda menentukan kunci KMS yang dikelola pelanggan, kami sarankan untuk menggunakan ARN kunci KMS yang memenuhi syarat sepenuhnya. Jika Anda menggunakan alias kunci KMS sebagai gantinya, AWS KMS selesaikan kunci dalam akun pemohon. Perilaku ini dapat menghasilkan data yang dienkripsi dengan kunci KMS milik pemohon, dan bukan pemilik bucket.
+ Anda harus menentukan kunci yang kepada Anda (pemohon) telah diberikan izin `Encrypt`. Untuk informasi selengkapnya, lihat [Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS untuk operasi kriptografi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) di *Panduan Pengembang AWS Key Management Service *.

Untuk informasi selengkapnya tentang kapan menggunakan kunci terkelola pelanggan dan kunci KMS AWS terkelola, lihat [Haruskah saya menggunakan Kunci yang dikelola AWS atau kunci yang dikelola pelanggan untuk mengenkripsi objek saya di Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)

## Menggunakan enkripsi default menggunakan replikasi
<a name="bucket-encryption-replication"></a>

Saat Anda mengaktifkan enkripsi default untuk bucket tujuan replikasi, perilaku enkripsi berikut berlaku:
+ Jika objek dalam bucket sumber tidak dienkripsi, objek replika dalam bucket tujuan akan dienkripsi menggunakan pengaturan enkripsi default dari bucket tujuan. Akibatnya, tag entitas (ETags) dari objek sumber berbeda ETags dari objek replika. Jika Anda memiliki aplikasi yang menggunakan ETags, Anda harus memperbarui aplikasi tersebut untuk memperhitungkan perbedaan ini.
+ Jika objek dalam bucket sumber dienkripsi dengan menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3), enkripsi sisi server dengan kunci () (SSE-KMS), atau enkripsi sisi server dua lapis dengan AWS Key Management Service kunci (DSSE-KMS), objek replika di bucket tujuan menggunakan jenis enkripsi yang sama dengan AWS KMS objek sumber.AWS KMS Pengaturan enkripsi default bucket tujuan tidak digunakan.

Untuk informasi lebih lanjut tentang penggunaan enkripsi default dengan SSE-KMS, lihat [Mereplikasi objek terenkripsi](replication-config-for-kms-objects.md).

## Menggunakan Kunci Bucket Amazon S3 dengan enkripsi default
<a name="bucket-key-default-encryption"></a>

Saat mengonfigurasi bucket untuk menggunakan enkripsi default dengan SSE-KMS, Anda juga dapat mengaktifkan Kunci Bucket S3. S3 Bucket Keys mengurangi jumlah transaksi dari Amazon S3 AWS KMS untuk mengurangi biaya SSE-KMS. 

[Saat mengonfigurasi bucket untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru, AWS KMS buat kunci tingkat ember yang digunakan untuk membuat kunci data unik untuk objek di bucket.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) Kunci Bucket S3 ini digunakan untuk jangka waktu terbatas dalam Amazon S3, mengurangi kebutuhan Amazon S3 untuk membuat permintaan AWS KMS untuk menyelesaikan operasi enkripsi. 

Untuk informasi lebih lanjut tentang menggunakan Kunci Bucket S3, lihat [Menggunakan Kunci Bucket Amazon S3](bucket-key.md).

# Mengonfigurasi enkripsi default
<a name="default-bucket-encryption"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

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 AWS Key Management Service () kunci (SSE-KMS AWS KMS), atau enkripsi sisi server dua lapis dengan kunci (DSSE-KMS). AWS KMS Untuk informasi lebih lanjut tentang SSE-KMS, lihat [Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS](specifying-kms-encryption.md). Untuk informasi lebih lanjut tentang DSSE-KMS, lihat [Menggunakan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS](UsingDSSEncryption.md). 

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

Saat Anda menyetel enkripsi bucket default ke SSE-KMS, Anda juga dapat mengonfigurasi Kunci Bucket S3 untuk mengurangi biaya permintaan. AWS KMS Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

**catatan**  
Jika Anda menggunakan [PutBucketEncryption](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketEncryption.html)untuk menyetel enkripsi bucket default ke SSE-KMS, Anda harus memverifikasi bahwa ID kunci KMS Anda sudah benar. Amazon S3 tidak memvalidasi ID kunci KMS yang disediakan dalam permintaan. PutBucketEncryption 

Tidak ada biaya tambahan untuk menggunakan enkripsi default untuk bucket S3. Permintaan untuk mengonfigurasi perilaku enkripsi default dikenakan biaya permintaan standar Amazon S3. Untuk informasi tentang harga, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/). [Untuk SSE-KMS dan DSSE-KMS, AWS KMS biaya berlaku dan tercantum pada harga.AWS KMS](https://aws.amazon.com/kms/pricing/) 

Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C) tidak didukung untuk enkripsi default.

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

**Perubahan yang perlu diingat sebelum mengaktifkan enkripsi default**  
Setelah Anda mengaktifkan enkripsi default untuk bucket, perilaku enkripsi berikut ini akan berlaku:
+ Tidak ada perubahan pada enkripsi objek yang ada dalam bucket sebelum enkripsi default-nya diaktifkan. 
+ Saat Anda mengunggah objek setelah mengaktifkan enkripsi default:
  + Jika header permintaan `PUT` tidak mencakup informasi enkripsi, Amazon S3 akan menggunakan pengaturan enkripsi default bucket untuk mengenkripsi objek. 
  + Jika header permintaan `PUT` mencakup informasi enkripsi, Amazon S3 menggunakan informasi enkripsi dari permintaan `PUT` untuk mengenkripsi objek sebelum menyimpannya di Amazon S3.
+ 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 *. 

**catatan**  
Objek yang diunggah sebelum enkripsi default diaktifkan tidak akan dienkripsi. Untuk informasi tentang mengenkripsi objek yang ada, lihat [Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3](bucket-encryption.md).

## Menggunakan konsol S3
<a name="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 bagian bawah **Enkripsi default**, pilih **Edit**.

1. Untuk mengonfigurasi enkripsi default, di bawah **Jenis enkripsi**, pilih salah satu dari berikut ini: 
   + **Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)**
   + **Enkripsi sisi server dengan AWS Key Management Service kunci (SSE-KMS)**
   + **Enkripsi sisi server dua lapis dengan kunci (DSSE-KMS) AWS Key Management Service **
**penting**  
Jika Anda menggunakan opsi SSE-KMS atau DSSE-KMS untuk konfigurasi enkripsi default, Anda tunduk pada kuota permintaan per detik (RPS) AWS KMS. *Untuk informasi selengkapnya tentang AWS KMS kuota dan cara meminta kenaikan kuota, lihat [Kuota](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) di Panduan Pengembang AWS Key Management Service .* 

   Bucket dan objek baru dienkripsi secara default dengan SSE-S3, kecuali Anda menentukan jenis enkripsi default lain untuk bucket Anda. Untuk informasi selengkapnya tentang enkripsi default, lihat [Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3](bucket-encryption.md).

   Untuk informasi selengkapnya tentang penggunaan enkripsi di sisi server Amazon S3 guna mengenkripsi data Anda, lihat [Menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

1. Jika Anda memilih **enkripsi sisi server dengan AWS Key Management Service kunci (SSE-KMS) atau enkripsi sisi **server Dual-layer dengan kunci (DSSE-KMS**)**, lakukan hal berikut: AWS Key Management Service 

   1. Di bawah **AWS KMS kunci**, tentukan kunci KMS Anda dengan salah satu cara berikut ini:
      + Untuk memilih dari daftar kunci KMS yang tersedia, pilih **Pilih dari Anda AWS KMS keys**, 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 kunci yang dikelola [pelanggan, lihat Kunci dan AWS kunci](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) pelanggan di *Panduan AWS Key Management Service Pengembang*.
      + Untuk memasukkan ARN kunci KMS, pilih **Masukkan AWS KMS key ARN**, dan 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 diaktifkan Wilayah AWS sama dengan bucket. Saat memilih **Pilih dari kunci KMS Anda**, konsol S3 hanya mencantumkan 100 kunci KMS per Wilayah. Jika Anda memiliki lebih dari 100 tombol KMS di Wilayah yang sama, Anda hanya dapat melihat 100 kunci KMS pertama di konsol S3. Untuk menggunakan kunci KMS yang tidak terdaftar di konsol, pilih **Masukkan ARN AWS KMS key **, dan masukkan ARN kunci KMS.  
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 *.

      Untuk informasi selengkapnya tentang penggunaan SSE-KMS dengan Amazon S3, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md). Untuk informasi selengkapnya tentang DSSE-KMS, lihat [Menggunakan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS](UsingDSSEncryption.md).

   1. Saat Anda mengonfigurasikan bucket untuk menggunakan enkripsi default dengan SSE-KMS, Anda juga dapat mengaktifkan Kunci Bucket S3. S3 Bucket Keys menurunkan biaya enkripsi 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).

      Untuk menggunakan Kunci Bucket S3, di bagian bawah **Kunci Bucket**, pilih **Aktifkan**.
**catatan**  
Kunci Bucket S3 tidak didukung untuk DSSE-KMS.

1. Pilih **Simpan perubahan**.

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

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 sisi server default untuk bucket Amazon S3](bucket-encryption.md). Untuk informasi selengkapnya tentang menggunakan enkripsi default AWS CLI untuk mengonfigurasi, lihat [put-bucket-encryption](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.  

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            }
        }
    ]
}'
```

**Example – Enkripsi default dengan SSE-KMS menggunakan Kunci Bucket S3**  
Contoh ini mengonfigurasi enkripsi bucket default dengan SSE-KMS menggunakan Kunci Bucket S3.   

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

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

Gunakan operasi `PutBucketEncryption` API REST untuk mengaktifkan enkripsi default, dan untuk menyetel jenis enkripsi di sisi server yang akan menggunakan—SSE-S3, SSE-KMS, atau DSSE-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*.

# Memantau enkripsi default dengan AWS CloudTrail dan Amazon EventBridge
<a name="bucket-encryption-tracking"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Anda dapat melacak permintaan konfigurasi enkripsi default untuk bucket Amazon S3 menggunakan peristiwa AWS CloudTrail . Nama peristiwa API berikut digunakan dalam CloudTrail log:
+ `PutBucketEncryption`
+ `GetBucketEncryption`
+ `DeleteBucketEncryption`

Anda juga dapat membuat EventBridge aturan untuk mencocokkan CloudTrail peristiwa untuk panggilan API ini. Untuk informasi selengkapnya tentang CloudTrail acara, lihat[Mengaktifkan pencatatan untuk objek dalam bucket menggunakan konsol tersebut](enable-cloudtrail-logging-for-s3.md#enable-cloudtrail-events). Untuk informasi selengkapnya tentang EventBridge acara, lihat [Acara dari Layanan AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html).

Anda dapat menggunakan CloudTrail log untuk tindakan Amazon S3 tingkat objek untuk `PUT` melacak `POST` dan meminta ke Amazon S3. Anda dapat menggunakan tindakan ini untuk memverifikasi apakah enkripsi default digunakan untuk mengenkripsi objek saat permintaan `PUT` yang masuk tidak memiliki header enkripsi.

Saat Amazon S3 mengenkripsi objek menggunakan pengaturan enkripsi default, log mencakup salah satu bidang berikut sebagai pasangan nama-nilai: `"SSEApplied":"Default_SSE_S3"`, `"SSEApplied":"Default_SSE_KMS"`, atau `"SSEApplied":"Default_DSSE_KMS"`.

Saat Amazon S3 mengenkripsi objek menggunakan header enkripsi `PUT`, log mencakup salah satu bidang berikut sebagai pasangan nama-nilai: `"SSEApplied":"SSE_S3"`, `"SSEApplied":"SSE_KMS"`, `"SSEApplied":"DSSE_KMS"`, atau `"SSEApplied":"SSE_C"`. 

Untuk pengunggahan multibagian, informasi ini disertakan dalam permintaan operasi `InitiateMultipartUpload` API Anda. Untuk informasi lebih lanjut tentang menggunakan CloudTrail dan CloudWatch, lihat[Pencatatan log dan pemantauan di Amazon S3](monitoring-overview.md).

# FAQ enkripsi default
<a name="default-encryption-faq"></a>

Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. SSE-S3, yang menggunakan Standar Enkripsi Lanjutan 256-bit (AES-256), secara otomatis diterapkan ke semua bucket baru dan ke bucket S3 yang ada yang belum memiliki enkripsi default yang dikonfigurasi. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di AWS CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons Amazon S3 API tambahan di () dan file. AWS Command Line Interface AWS CLI AWS SDKs

Bagian berikut menjawab pertanyaan tentang pembaruan ini. 

**Apakah Amazon S3 mengubah pengaturan enkripsi default untuk bucket saya yang sudah ada yang sudah memiliki enkripsi default yang dikonfigurasi?**  
Tidak. Tidak ada perubahan pada konfigurasi enkripsi default untuk bucket yang sudah ada yang sudah memiliki enkripsi SSE-S3 atau sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS) yang dikonfigurasi. Untuk informasi lebih lanjut tentang cara mengatur perilaku enkripsi default untuk bucket, lihat [Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3](bucket-encryption.md). Untuk informasi selengkapnya tentang pengaturan enkripsi SSE-S3 dan SSE-KMS, lihat [Melindungi data dengan enkripsi di sisi klien](serv-side-encryption.md).

**Apakah enkripsi default diaktifkan pada bucket saya yang sudah ada yang enkripsi defaultnya tidak dikonfigurasi?**  
Ya. Amazon S3 sekarang mengonfigurasi enkripsi default pada semua bucket tidak terenkripsi yang sudah ada untuk menerapkan enkripsi di sisi server dengan kunci terkelola S3 (SSE-S3) sebagai tingkat dasar enkripsi untuk objek baru yang diunggah ke bucket ini. Objek yang sudah ada dalam bucket tidak terenkripsi tidak akan dienkripsi secara otomatis.

**Bagaimana saya bisa melihat status enkripsi default dari unggahan objek baru?**  
Saat ini, Anda dapat melihat status enkripsi default dari unggahan objek baru di AWS CloudTrail log, Inventaris S3, dan Lensa Penyimpanan S3, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di () dan. AWS Command Line Interface AWS CLI AWS SDKs
+ Untuk melihat CloudTrail acara Anda, lihat [Melihat CloudTrail peristiwa di CloudTrail konsol](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html) di *Panduan AWS CloudTrail Pengguna*. CloudTrail log menyediakan pelacakan API untuk `PUT` dan `POST` permintaan ke Amazon S3. Saat enkripsi default digunakan untuk mengenkripsi objek di bucket Anda, CloudTrail log untuk `PUT` dan permintaan `POST` API akan menyertakan bidang berikut sebagai pasangan nama-nilai:. `"SSEApplied":"Default_SSE_S3"` 
+ Untuk melihat status enkripsi otomatis dari unggahan objek baru di Inventaris S3, konfigurasikan laporan Inventaris S3 untuk menyertakan bidang metadata **Enkripsi**, lalu lihat status enkripsi untuk setiap objek baru dalam laporan. Untuk informasi selengkapnya, lihat [Mengatur Inventaris Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-inventory.html#storage-inventory-setting-up).
+ Untuk melihat status enkripsi otomatis untuk unggahan objek baru di Lensa Penyimpanan S3, konfigurasikan dasbor Lensa Penyimpanan S3 dan lihat metrik **Byte terenkripsi** dan **Jumlah objek terenkripsi** dalam kategori **Perlindungan data** pada dasbor. Untuk informasi selengkapnya, lihat [Menggunakan konsol S3](storage_lens_creating_dashboard.md#storage_lens_console_creating) dan [Melihat metrik Lensa Penyimpanan S3 di dasbor](storage_lens_view_metrics_dashboard.md).
+ Untuk melihat status enkripsi tingkat bucket otomatis di konsol Amazon S3, periksa **Enkripsi default** bucket Amazon S3 Anda di konsol Amazon S3. Untuk informasi selengkapnya, lihat [Mengonfigurasi enkripsi default](default-bucket-encryption.md).
+ Untuk melihat status enkripsi otomatis sebagai header respons Amazon S3 API tambahan di AWS Command Line Interface (AWS CLI) dan AWS SDKs, periksa header respons `x-amz-server-side-encryption` saat Anda menggunakan tindakan objek APIs, seperti [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)dan. [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 

**Apa yang harus saya lakukan untuk memanfaatkan perubahan ini?**  
Anda tidak perlu melakukan perubahan apa pun pada aplikasi Anda yang ada. Karena enkripsi default diaktifkan untuk semua bucket Anda, semua objek baru yang diunggah ke Amazon S3 secara otomatis dienkripsi.

**Bisakah saya menonaktifkan enkripsi untuk objek baru yang ditulis ke bucket saya?**  
Tidak. SSE-S3 adalah enkripsi tingkat dasar baru yang diterapkan pada semua objek baru yang diunggah ke bucket Anda. Anda tidak dapat lagi menonaktifkan enkripsi untuk unggahan objek baru.

**Apakah biaya saya akan terpengaruh?**  
Tidak. Enkripsi default dengan SSE-S3 tersedia tanpa biaya tambahan. Anda akan ditagih untuk penyimpanan, permintaan, dan fitur S3 lainnya, seperti biasa. Untuk informasi harga, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**Akankah Amazon S3 mengenkripsi objek saya yang tidak terenkripsi?**  
Tidak. Mulai 5 Januari 2023, Amazon S3 hanya secara otomatis mengenkripsi unggahan objek baru. Untuk mengenkripsi objek yang ada, Anda dapat menggunakan operasi batch S3 untuk membuat salinan terenkripsi objek Anda. Salinan terenkripsi ini akan mempertahankan data dan nama objek yang ada dan akan dienkripsi dengan menggunakan kunci enkripsi yang Anda tentukan. Untuk detail selengkapnya, lihat [Mengenkripsi objek dengan Operasi Batch Amazon S3](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) dalam *AWS Blog Penyimpanan*.

**Saya tidak mengaktifkan enkripsi untuk bucket saya sebelum rilis ini. Apakah saya perlu mengubah cara saya mengakses objek?**  
Tidak. Enkripsi default dengan SSE-S3 secara otomatis mengenkripsi data Anda seperti yang tertulis ke Amazon S3 dan mendekripsinya untuk Anda saat Anda mengaksesnya. Tidak ada perubahan dalam cara Anda mengakses objek yang dienkripsi secara otomatis.

**Apakah saya perlu mengubah cara saya mengakses objek terenkripsi di sisi klien?**  
Tidak. Semua objek terenkripsi di sisi klien yang dienkripsi sebelum diunggah ke Amazon S3 tiba sebagai objek teks sandi terenkripsi dalam Amazon S3. Objek ini sekarang akan memiliki lapisan enkripsi SSE-S3. Beban kerja Anda yang menggunakan objek yang terenkripsi di sisi klien tidak akan memerlukan perubahan apa pun pada layanan klien atau pengaturan otorisasi Anda.

**catatan**  
HashiCorp Pengguna Terraform yang tidak menggunakan versi AWS Penyedia yang diperbarui mungkin melihat penyimpangan yang tidak terduga setelah membuat bucket S3 baru tanpa konfigurasi enkripsi yang ditentukan pelanggan. Untuk menghindari penyimpangan ini, perbarui versi AWS Penyedia Terraform Anda ke salah satu versi berikut: 4.x rilis apa pun,, 3.76.1 atau. 2.70.4

# Memperbarui enkripsi sisi server untuk data yang ada
<a name="update-sse-encryption"></a>

Semua bucket Amazon S3 memiliki enkripsi yang dikonfigurasi secara default, dan objek secara otomatis dienkripsi dengan menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3). Pengaturan enkripsi default ini berlaku untuk semua objek baru di bucket Amazon S3 Anda.

Dengan menggunakan operasi `UpdateObjectEncryption` API, Anda dapat memperbarui jenis enkripsi sisi server dari objek terenkripsi yang ada secara atomik dalam bucket tujuan umum dari enkripsi sisi server dengan enkripsi terkelola Amazon S3 (SSE-S3) ke enkripsi sisi server dengan () kunci enkripsi (SSE-KMS). AWS Key Management Service AWS KMS Operasi `UpdateObjectEncryption` API menggunakan enkripsi [amplop untuk mengenkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#enveloping) ulang kunci data yang digunakan untuk mengenkripsi dan mendekripsi objek Anda dengan jenis enkripsi sisi server yang baru Anda tentukan. 

Amazon S3 melakukan pembaruan jenis enkripsi ini tanpa pergerakan data apa pun. Dengan kata lain, saat Anda menggunakan `UpdateObjectEncryption` operasi, data Anda tidak disalin, objek yang diarsipkan di S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive tidak dipulihkan, dan objek di kelas penyimpanan S3 Intelligent-Tiering tidak dipindahkan antar tingkatan. Selain itu, `UpdateObjectEncryption` operasi mempertahankan semua properti metadata objek, termasuk kelas penyimpanan, tanggal pembuatan, tanggal modifikasi terakhir ETag, dan properti checksum.

`UpdateObjectEncryption`Operasi ini didukung untuk semua kelas penyimpanan S3 yang didukung oleh bucket tujuan umum. Anda dapat menggunakan `UpdateObjectEncryption` operasi untuk melakukan hal berikut: 
+ Ubah objek terenkripsi dari enkripsi sisi server dengan enkripsi terkelola Amazon S3 (SSE-S3) ke enkripsi sisi server dengan () kunci enkripsi (SSE-KMS). AWS Key Management Service AWS KMS
+ Perbarui objek terenkripsi SSE-KMS tingkat objek untuk menggunakan Kunci Bucket S3, yang mengurangi lalu lintas permintaan dari Amazon S3 ke. AWS KMS AWS KMS Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).
+ Ubah kunci KMS yang dikelola pelanggan yang digunakan untuk mengenkripsi data Anda sehingga Anda dapat mematuhi standar rotasi kunci kustom.

**catatan**  
Objek sumber yang tidak dienkripsi, atau dienkripsi dengan enkripsi sisi server dua lapis dengan AWS KMS keys (DSSE-KMS) atau kunci enkripsi yang disediakan pelanggan (SSE-C) tidak didukung oleh operasi ini.

`UpdateObjectEncryption`Operasi biasanya selesai dalam milidetik terlepas dari ukuran objek atau kelas penyimpanan, termasuk S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive. Operasi ini tidak dihitung sebagai akses untuk S3 Intelligent-Tiering, sehingga objek di tingkat Akses Jarang atau tingkat Akses Instan Arsip tidak akan secara otomatis kembali ke tingkat Akses Sering jika Anda mengubah jenis enkripsi sisi server objek Anda. 

`UpdateObjectEncryption`adalah operasi API tingkat objek (bidang data) yang dicatat ke log AWS CloudTrail akses server Amazon S3 dan peristiwa data. Untuk informasi selengkapnya, lihat [Opsi pencatatan untuk Amazon S3](logging-with-S3.md). 

 `UpdateObjectEncryption`Operasi ini dihargai sama dengan`PUT`,, `COPY``POST`, dan `LIST` permintaan (per 1.000 permintaan) dan selalu dikenakan biaya sebagai permintaan kelas penyimpanan Standar S3 terlepas dari kelas penyimpanan objek yang mendasarinya. Untuk informasi selengkapnya, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

## Pembatasan dan pertimbangan
<a name="update-sse-encryption-restrictions"></a>

Saat menggunakan `UpdateObjectEncryption` operasi, pembatasan dan pertimbangan berikut berlaku:
+ `UpdateObjectEncryption`Operasi tidak mendukung objek yang tidak dienkripsi atau objek yang dienkripsi dengan enkripsi sisi server dua lapis dengan (DSSE-KMS) atau kunci enkripsi yang disediakan pelanggan AWS KMS keys (SSE-C). Selain itu, Anda tidak dapat menentukan SSE-S3 sebagai permintaan jenis enkripsi baru yang diminta. `UpdateObjectEncryption`
+ Anda dapat menggunakan `UpdateObjectEncryption` operasi untuk memperbarui objek dalam bucket yang mengaktifkan Versi S3. Untuk memperbarui jenis enkripsi versi tertentu, Anda harus menentukan ID versi dalam `UpdateObjectEncryption` permintaan Anda. Jika Anda tidak menentukan ID versi, `UpdateObjectEncryption` permintaan akan bertindak pada versi objek saat ini. Untuk informasi selengkapnya tentang Penentuan Versi S3, lihat [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md).
+ `UpdateObjectEncryption`Operasi gagal pada objek apa pun yang memiliki mode retensi Kunci Objek S3 atau penahanan hukum yang diterapkan padanya. Jika objek memiliki periode retensi modus tata kelola atau penahanan hukum, Anda harus terlebih dahulu menghapus status Kunci Objek pada objek sebelum Anda mengeluarkan permintaan Anda. `UpdateObjectEncryption` Anda tidak dapat menggunakan `UpdateObjectEncryption` operasi dengan objek yang memiliki periode retensi mode kepatuhan Object Lock yang diterapkan padanya. Untuk informasi lebih lanjut tentang S3 Object Lock, lihat [Mengunci objek dengan Object Lock](object-lock.md).
+ `UpdateObjectEncryption`permintaan pada bucket sumber dengan replikasi langsung diaktifkan tidak akan memulai peristiwa replika di bucket tujuan. Jika Anda ingin mengubah jenis enkripsi objek di bucket sumber dan tujuan, Anda harus memulai `UpdateObjectEncryption` permintaan terpisah pada objek di bucket sumber dan tujuan.
+ Secara default, semua `UpdateObjectEncryption` permintaan yang menentukan kunci KMS yang dikelola pelanggan dibatasi untuk kunci KMS yang dimiliki oleh pemilik bucket. Akun AWS Jika Anda menggunakan AWS Organizations, Anda dapat meminta kemampuan untuk menggunakan yang AWS KMS keys dimiliki oleh akun anggota lain dalam organisasi Anda dengan menghubungi AWS Dukungan.
+ Jika Anda menggunakan Replikasi Batch S3 untuk mereplikasi kumpulan data lintas wilayah dan objek Anda sebelumnya memiliki jenis enkripsi sisi server yang diperbarui dari SSE-S3 ke SSE-KMS, Anda mungkin memerlukan izin tambahan. Di bucket wilayah sumber, Anda harus memiliki `kms:decrypt` izin. Kemudian, Anda akan memerlukan `kms:encrypt` izin `kms:decrypt` dan untuk bucket di wilayah tujuan. 
+ Anda harus memberikan ARN kunci KMS lengkap dalam `UpdateObjectEncryption` permintaan Anda. Anda tidak dapat menggunakan nama alias atau alias ARN. Anda dapat menentukan ARN Kunci KMS lengkap di AWS KMS Console atau menggunakan AWS KMS API. `DescribeKey`

## Izin yang diperlukan
<a name="update-sse-encryption-permissions"></a>

Untuk melakukan `UpdateObjectEncryption` operasi, Anda harus memiliki izin berikut: 
+ `s3:PutObject`
+ `s3:UpdateObjectEncryption`
+ `kms:Encrypt`
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:ReEncrypt*`

Jika Anda menggunakan AWS Organizations, untuk menggunakan operasi ini dengan kunci KMS yang dikelola pelanggan dari orang lain Akun AWS dalam organisasi Anda, Anda harus memiliki izin. `organizations:DescribeAccount` Anda juga harus meminta kemampuan untuk menggunakan yang AWS KMS keys dimiliki oleh akun anggota lain dalam organisasi Anda dengan menghubungi AWS Dukungan.

Untuk melakukan `UpdateObjectEncryption` operasi, tambahkan kebijakan AWS Identity and Access Management (IAM) berikut ke peran IAM Anda. Untuk menggunakan kebijakan ini, ganti `amzn-s3-demo-bucket` dengan nama bucket tujuan umum Anda, dan ganti yang lain `user input placeholders` dengan informasi Anda sendiri.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "AllowUpdateObjectEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:UpdateObjectEncryption",
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:ReEncrypt*",
                "organizations:DescribeAccount"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
            ]
        }
    ]
}
```

## Memperbarui enkripsi dalam jumlah besar
<a name="update-sse-encryption-bulk"></a>

Untuk memperbarui jenis enkripsi sisi server lebih dari satu objek Amazon S3 dengan satu permintaan, Anda dapat menggunakan Operasi Batch S3. Anda dapat menyediakan Operasi Batch S3 dengan daftar objek yang akan dioperasikan, atau Anda dapat mengarahkan Operasi Batch untuk menghasilkan metadata objek berdasarkan daftar objek, termasuk awalan, kelas penyimpanan, tanggal pembuatan, jenis enkripsi, ARN kunci KMS, atau status Kunci Bucket S3. Operasi Batch S3 akan memanggil masing-masing operasi API untuk melakukan operasi tertentu. Satu pekerjaan Operasi Batch dapat melakukan operasi tertentu pada miliaran objek dalam bucket yang berisi petabyte data. Untuk informasi selengkapnya tentang Operasi Batch, lihat[Melakukan operasi objek secara massal dengan Operasi Batch](batch-ops.md). 

Operasi Batch S3 memiliki fitur melacak progres, mengirimkan notifikasi, dan menyimpan laporan penyelesaian terperinci dari semua tindakan, menyediakan pengalaman yang dikelola sepenuhnya, dapat diaudit, dan nirserver. Anda dapat menggunakan Operasi Batch S3 melalui konsol Amazon S3 AWS Command Line Interface ,AWS CLI( AWS SDKs), atau Amazon S3 REST API. Untuk informasi selengkapnya, lihat [Perbarui enkripsi objek](batch-ops-update-encryption.md).

## Memperbarui enkripsi untuk objek
<a name="update-sse-encryption-single-object"></a>

Anda dapat memperbarui jenis enkripsi sisi server untuk objek melalui AWS Command Line Interface (AWS CLI) AWS SDKs, atau Amazon S3 REST API. 

### Memperbarui enkripsi untuk suatu objek
<a name="update-sse-encryption-single-object-procedure"></a>

#### Menggunakan AWS CLI
<a name="update-sse-encryption-single-object-cli"></a>

Untuk menjalankan perintah berikut, Anda harus AWS CLI menginstal dan mengkonfigurasi. Jika Anda belum menginstal, lihat [Menginstal atau memperbarui ke versi terbaru dari AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) *Panduan AWS Command Line Interface Pengguna*. AWS CLI 

Atau, Anda dapat menjalankan AWS CLI perintah dari konsol dengan menggunakan AWS CloudShell. AWS CloudShell adalah shell pra-otentikasi berbasis browser yang dapat Anda luncurkan langsung dari file. Konsol Manajemen AWS Untuk informasi lebih lanjut, lihat [Apa itu CloudShell?](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) dan [Memulai dengan AWS CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/getting-started.html) di *Panduan AWS CloudShell Pengguna*.

**Untuk memperbarui enkripsi untuk objek dengan menggunakan AWS CLI**

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

1. Gunakan perintah berikut untuk memperbarui enkripsi untuk satu objek (`index.html`) di bucket tujuan umum Anda (misalnya,`amzn-s3-demo-bucket`) untuk menggunakan SSE-KMS dengan Kunci Bucket S3:

   ```
   aws s3api update-object-encryption \
   --bucket amzn-s3-demo-bucket \
   --key index.html \
   --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'
   ```
**catatan**  
Anda harus menentukan Nama Sumber Daya AWS KMS key Amazon (ARN) lengkap. ID kunci KMS dan alias kunci KMS tidak didukung.

1. Jalankan `head-object` perintah untuk melihat jenis enkripsi yang diperbarui dari objek Anda:

   ```
   aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html
   ```

#### Penggunaan API REST
<a name="update-sse-encryption-single-object-rest-api"></a>

Anda dapat mengirim permintaan REST untuk memperbarui enkripsi objek. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html).

#### Menggunakan AWS SDKs
<a name="update-sse-encryption-single-object-sdk"></a>

Anda dapat menggunakan AWS SDKs untuk memperbarui enkripsi untuk suatu objek. Untuk informasi selengkapnya, lihat [daftar yang didukung SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html#API_UpdateObjectEncryption_SeeAlso).

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

**Example**  
 AWS SDK for Java 2.x Contoh berikut memperbarui jenis enkripsi ke SSE-KMS untuk objek dalam bucket tujuan umum.  

```
    public void updateObjectEncryption(String bucketName,
                                       String objectKey,
                                       String versionId,
                                       String kmsKeyArn,
                                       boolean bucketKeyEnabled) {
        // Create the target object encryption type.
        ObjectEncryption objectEncryption = ObjectEncryption.builder()
                .ssekms(SSEKMSEncryption.builder()
                        .kmsKeyArn(kmsKeyArn)
                        .bucketKeyEnabled(bucketKeyEnabled)
                        .build())
                .build();

        // Create the UpdateObjectEncryption request.
        UpdateObjectEncryptionRequest request = UpdateObjectEncryptionRequest.builder()
                .bucket(bucketName)
                .key(objectKey)
                .versionId(versionId)
                .objectEncryption(objectEncryption)
                .build();

        // Update the object encryption.
        try {
            getS3Client().updateObjectEncryption(request);
            logger.info("Object encryption updated to SSE-KMS for {} in bucket {}", objectKey, bucketName);
        } catch (S3Exception e) {
            logger.error("Failed to update to object encryption: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
                    e.awsErrorDetails().errorCode());
            throw e;
        }
    }
```

------
#### [ Python ]

**Example**  
 AWS SDK untuk Python (Boto3) Contoh berikut menunjukkan cara memperbarui jenis enkripsi ke SSE-KMS untuk objek dalam bucket tujuan umum.   

```
response = client.update_object_encryption(
    Bucket='string',
    Key='string',
    VersionId='string',
    ObjectEncryption={
        'SSEKMS': {
                'KMSKeyArn': 'string',
                'BucketKeyEnabled': True|False
        }
    }
)
```

------

# Menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)
<a name="UsingServerSideEncryption"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Semua unggahan objek baru ke bucket Amazon S3 dienkripsi secara default dengan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3).

Enkripsi sisi-server melindungi data diam. Amazon S3 mengenkripsi setiap objek dengan kunci unik. Sebagai perlindungan tambahan, ia mengenkripsi kunci itu sendiri dengan kunci yang diputar secara berkala. Enkripsi sisi server Amazon S3 menggunakan Galois/Counter Mode Standar Enkripsi Lanjutan (AES-GCM) 256-bit untuk mengenkripsi semua objek yang diunggah.

Tidak ada biaya tambahan untuk menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3). Namun, permintaan untuk mengonfigurasi fitur enkripsi default dikenakan biaya permintaan Amazon S3 standar. Untuk informasi tentang harga, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

Jika Anda mengharuskan unggahan data dienkripsi hanya menggunakan kunci terkelola Amazon S3, Anda dapat menggunakan kebijakan bucket berikut. Misalnya, kebijakan bucket berikut menolak izin untuk mengunggah objek kecuali jika permintaan mencakup header `x-amz-server-side-encryption` untuk meminta enkripsi di sisi server:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "PutObjectPolicy",
  "Statement": [
    {
      "Sid": "DenyObjectsThatAreNotSSES3",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      }
    }
   ]
}
```

------

**catatan**  
Enkripsi di sisi server hanya mengenkripsi data objek, bukan metadata objek. 

## Dukungan API untuk enkripsi di sisi server
<a name="APISupportforServer-SideEncryption"></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/). 

Untuk mengkonfigurasi enkripsi sisi server dengan menggunakan REST pembuatan objek APIs, Anda harus memberikan header permintaan. `x-amz-server-side-encryption` Untuk informasi tentang REST APIs, lihat[Penggunaan API REST](specifying-s3-encryption.md#SSEUsingRESTAPI).

Amazon S3 berikut APIs mendukung header ini:
+ **Operasi PUT**–Tentukan header permintaan saat mengunggah data menggunakan API `PUT`. Untuk informasi lebih lanjut, lihat [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html).
+ **Mulai Unggahan Multibagian**–Menentukan header dalam permintaan awal saat mengunggah objek besar menggunakan operasi API multibagian. Untuk informasi lebih lanjut, lihat [Mulai Unggahan Multibagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html).
+ **Operasi COPY**–Saat Anda menyalin objek, Anda memiliki objek sumber dan objek target. Untuk informasi lebih lanjut, lihat [PUT Objek-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).

**catatan**  
Saat menggunakan operasi `POST` untuk mengunggah objek, alih-alih memberikan header permintaan, Anda memberikan informasi yang sama di kolom formulir. Untuk informasi lebih lanjut, lihat [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html). 

 AWS SDKs Juga menyediakan pembungkus APIs yang dapat Anda gunakan untuk meminta enkripsi sisi server. Anda juga dapat menggunakan Konsol Manajemen AWS untuk mengunggah objek dan meminta enkripsi sisi server.

Untuk informasi lebih umum, lihat [AWS KMS konsep](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) dalam *AWS Key Management Service Panduan Pengembang*.

**Topics**
+ [Dukungan API untuk enkripsi di sisi server](#APISupportforServer-SideEncryption)
+ [Menentukan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](specifying-s3-encryption.md)

# Menentukan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)
<a name="specifying-s3-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-S3 dengan menggunakan konsol S3, REST APIs,, dan (). AWS SDKs AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3](bucket-encryption.md).

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

Topik ini menjelaskan cara mengatur atau mengubah jenis enkripsi objek dengan menggunakan Konsol Manajemen AWS. Saat menyalin objek dengan menggunakan konsol, Amazon S3 menyalin objek seperti apa adanya. Itu berarti bahwa jika objek sumber dienkripsi, objek target juga dienkripsi. Anda dapat menggunakan konsol untuk menambahkan atau mengubah enkripsi untuk suatu objek. 

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

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

   1. Di bawah **Jenis enkripsi**, pilih **Enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3)**. SSE-S3 menggunakan salah satu penyandian blok terkuat—Advanced Encryption Standard 256-bit (AES-256) untuk mengenkripsi setiap objek. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

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="SSEUsingRESTAPI"></a>

Saat pembuatan objek—yaitu, saat Anda mengunggah objek baru atau membuat salinan objek yang sudah ada—Anda dapat menentukan apakah Anda ingin Amazon S3 mengenkripsi data Anda dengan kunci yang dikelola Amazon S3 (SSE-S3) dengan menambahkan header ke permintaan `x-amz-server-side-encryption`. Mengatur nilai header ke algoritma enkripsi `AES256`, yang didukung Amazon S3. Amazon S3 mengonfirmasi bahwa objek Anda disimpan dengan SSE-S3 dengan mengembalikan header respons `x-amz-server-side-encryption`. 

Operasi API unggahan REST berikut ini menerima header permintaan `x-amz-server-side-encryption`.
+ [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Objek-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Mulai Unggahan Multibagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)

Saat mengunggah objek besar menggunakan operasi API unggahan multibagian, Anda dapat menentukan enkripsi di sisi server dengan menambahkan `x-amz-server-side-encryption` header ke permintaan Mulai Pengunggahan Multibagian. Saat Anda menyalin objek yang ada, terlepas dari apakah objek sumbernya dienkripsi atau tidak, objek tujuan tidak dienkripsi kecuali jika Anda secara eksplisit meminta enkripsi di sisi server.

Header respons dari operasi API REST berikut mengembalikan `x-amz-server-side-encryption` header saat objek disimpan menggunakan SSE-S3. 
+ [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Objek-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Mulai Unggahan Multibagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [Unggah Bagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html)
+ [Unggah Bagian-Salin](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)
+ [Selesaikan Unggahan Multibagian](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadComplete.html)
+ [Dapatkan Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)
+ [Head Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)

**catatan**  
Jangan mengirim header permintaan enkripsi untuk `GET` permintaan dan `HEAD` minta jika objek Anda menggunakan SSE-S3, atau Anda akan mendapatkan kesalahan kode status HTTP 400 (Permintaan Buruk).

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

Saat menggunakan AWS SDKs, Anda dapat meminta Amazon S3 untuk menggunakan enkripsi sisi server dengan kunci enkripsi terkelola Amazon S3 (SSE-S3). Bagian ini memberikan contoh penggunaan AWS SDKs dalam berbagai bahasa. Untuk informasi tentang lainnya SDKs, buka [Kode Sampel dan Perpustakaan](https://aws.amazon.com/code). 

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

Ketika Anda menggunakan AWS SDK untuk Java untuk meng-upload objek, Anda dapat menggunakan SSE-S3 untuk mengenkripsi itu. Untuk meminta enkripsi di sisi server, gunakan properti `ObjectMetadata` dari `PutObjectRequest` untuk menetapkan header permintaan `x-amz-server-side-encryption`. Saat Anda memanggil `putObject()` metode dari `AmazonS3Client`, Amazon S3 mengenkripsi dan menyimpan data.

Anda juga dapat meminta enkripsi SSE-S3 saat mengunggah objek menggunakan operasi API pengunggahan multibagian: 
+ Saat menggunakan operasi API pengunggahan multibagian tingkat tinggi, Anda menggunakan metode `TransferManager` untuk menerapkan enkripsi di sisi server ke objek saat Anda mengunggahnya. Anda dapat menggunakan metode pengunggahan apa saja yang menggunakan `ObjectMetadata` sebagai parameter. Untuk informasi selengkapnya, lihat [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md).
+ Saat menggunakan operasi API pengunggahan multibagian tingkat rendah, Anda menentukan enkripsi di sisi server saat Anda memulai pengunggahan multibagian. Anda menambahkan properti `ObjectMetadata` dengan memanggil metode `InitiateMultipartUploadRequest.setObjectMetadata()`. Untuk informasi selengkapnya, lihat [Menggunakan AWS SDKs (API tingkat rendah)](mpu-upload-object.md#mpu-upload-low-level).

Anda tidak dapat langsung mengubah status enkripsi suatu objek (mengenkripsi objek yang tidak dienkripsi atau mendekripsi objek yang dienkripsi). Untuk mengubah status enkripsi objek, Anda membuat salinan objek, dengan menentukan status enkripsi yang diinginkan untuk salinan, lalu hapus objek asli. Amazon S3 mengenkripsi objek yang disalin hanya jika Anda secara eksplisit meminta enkripsi di sisi server. Untuk meminta enkripsi objek yang disalin melalui API Java, gunakan properti `ObjectMetadata` untuk menentukan enkripsi di sisi server dalam `CopyObjectRequest`.

**Example Contoh**  
Contoh berikut menunjukkan cara menetapkan enkripsi di sisi server menggunakan AWS SDK untuk Java. Itu menunjukkan cara melakukan tugas berikut:  
+ Unggah objek baru menggunakan SSE-S3.
+ Ubah status enkripsi objek (dalam contoh ini, mengenkripsi objek yang tidak dienkripsi sebelumnya) dengan membuat salinan objek.
+ Periksa status enkripsi objek.
Untuk informasi lebih lanjut tentang enkripsi di sisi server, lihat [Penggunaan API REST](#SSEUsingRESTAPI). Untuk petunjuk cara membuat dan menguji sampel yang berfungsi, lihat [Memulai](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) di Panduan AWS SDK untuk Java Pengembang.  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.internal.SSEResultBase;
import com.amazonaws.services.s3.model.*;

import java.io.ByteArrayInputStream;

public class SpecifyServerSideEncryption {

    public static void main(String[] args) {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyNameToEncrypt = "*** Key name for an object to upload and encrypt ***";
        String keyNameToCopyAndEncrypt = "*** Key name for an unencrypted object to be encrypted by copying ***";
        String copiedObjectKeyName = "*** Key name for the encrypted copy of the unencrypted object ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();

            // Upload an object and encrypt it with SSE.
            uploadObjectWithSSEEncryption(s3Client, bucketName, keyNameToEncrypt);

            // Upload a new unencrypted object, then change its encryption state
            // to encrypted by making a copy.
            changeSSEEncryptionStatusByCopying(s3Client,
                    bucketName,
                    keyNameToCopyAndEncrypt,
                    copiedObjectKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObjectWithSSEEncryption(AmazonS3 s3Client, String bucketName, String keyName) {
        String objectContent = "Test object encrypted with SSE";
        byte[] objectBytes = objectContent.getBytes();

        // Specify server-side encryption.
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(objectBytes.length);
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        PutObjectRequest putRequest = new PutObjectRequest(bucketName,
                keyName,
                new ByteArrayInputStream(objectBytes),
                objectMetadata);

        // Upload the object and check its encryption status.
        PutObjectResult putResult = s3Client.putObject(putRequest);
        System.out.println("Object \"" + keyName + "\" uploaded with SSE.");
        printEncryptionStatus(putResult);
    }

    private static void changeSSEEncryptionStatusByCopying(AmazonS3 s3Client,
            String bucketName,
            String sourceKey,
            String destKey) {
        // Upload a new, unencrypted object.
        PutObjectResult putResult = s3Client.putObject(bucketName, sourceKey, "Object example to encrypt by copying");
        System.out.println("Unencrypted object \"" + sourceKey + "\" uploaded.");
        printEncryptionStatus(putResult);

        // Make a copy of the object and use server-side encryption when storing the
        // copy.
        CopyObjectRequest request = new CopyObjectRequest(bucketName,
                sourceKey,
                bucketName,
                destKey);
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        request.setNewObjectMetadata(objectMetadata);

        // Perform the copy operation and display the copy's encryption status.
        CopyObjectResult response = s3Client.copyObject(request);
        System.out.println("Object \"" + destKey + "\" uploaded with SSE.");
        printEncryptionStatus(response);

        // Delete the original, unencrypted object, leaving only the encrypted copy in
        // Amazon S3.
        s3Client.deleteObject(bucketName, sourceKey);
        System.out.println("Unencrypted object \"" + sourceKey + "\" deleted.");
    }

    private static void printEncryptionStatus(SSEResultBase response) {
        String encryptionStatus = response.getSSEAlgorithm();
        if (encryptionStatus == null) {
            encryptionStatus = "Not encrypted with SSE";
        }
        System.out.println("Object encryption status is: " + encryptionStatus);
    }
}
```

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

Saat mengunggah sebuah objek, Anda dapat mengarahkan Amazon S3 untuk mengenkripsinya. Untuk mengubah status enkripsi objek yang sudah ada, Anda membuat salinan objek dan menghapus objek sumber. Secara default, operasi penyalinan mengenkripsi target hanya jika Anda secara eksplisit meminta enkripsi di sisi server objek target. Untuk menentukan SSE-S3 di `CopyObjectRequest`, tambahkan yang berikut ini:

```
 ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
```

Untuk sampel kerja tentang cara menyalin objek, lihat [Menggunakan AWS SDKs](copy-object.md#CopyingObjectsUsingSDKs). 

Contoh berikut mengunggah objek. Dalam permintaan, contoh tersebut mengarahkan Amazon S3 untuk mengenkripsi objek. Contoh tersebut kemudian mengambil metadata objek dan memverifikasi metode enkripsi yang digunakan. Untuk informasi tentang menyiapkan dan menjalankan contoh kode, lihat [Memulai SDK for .NET di AWSAWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET *Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SpecifyServerSideEncryptionTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** key name for object created ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            WritingAnObjectAsync().Wait();
        }

        static async Task WritingAnObjectAsync()
        {
            try
            {
                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    ContentBody = "sample text",
                    ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
                };

                var putResponse = await client.PutObjectAsync(putRequest);

                // Determine the encryption state of an object.
                GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };
                GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(metadataRequest);
                ServerSideEncryptionMethod objectEncryption = response.ServerSideEncryptionMethod;

                Console.WriteLine("Encryption method used: {0}", objectEncryption.ToString());
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

Topik ini menunjukkan cara menggunakan kelas dari versi 3 AWS SDK untuk PHP untuk menambahkan SSE-S3 ke objek yang Anda unggah ke Amazon S3. Untuk informasi selengkapnya tentang AWS SDK for Ruby API, [AWS buka SDK for Ruby](https://docs.aws.amazon.com/sdkforruby/api/index.html) - Versi 2.

Untuk mengunggah objek ke Amazon S3, gunakan metode [Aws\$1S3\$1S3Client::putObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject). Untuk menambahkan `x-amz-server-side-encryption` header permintaan ke permintaan pengunggahan, tentukan parameter `ServerSideEncryption` dengan nilai `AES256`, seperti yang ditunjukkan dalam contoh kode berikut. Untuk informasi lebih lanjut tentang permintaan enkripsi di sisi server, lihat [Penggunaan API REST](#SSEUsingRESTAPI).

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

// $filepath should be an absolute path to a file on disk.
$filepath = '*** Your File Path ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Upload a file with server-side encryption.
$result = $s3->putObject([
    'Bucket'               => $bucket,
    'Key'                  => $keyname,
    'SourceFile'           => $filepath,
    'ServerSideEncryption' => 'AES256',
]);
```

Sebagai respons, Amazon S3 mengembalikan header `x-amz-server-side-encryption` dengan nilai algoritma enkripsi yang digunakan untuk mengenkripsi data objek Anda. 

Saat mengunggah objek besar dengan menggunakan operasi API unggahan multibagian, Anda dapat menentukan SSE-S3 untuk objek yang Anda unggah, sebagai berikut ini: 
+ Saat Anda menggunakan operasi API unggahan multibagian tingkat rendah, tentukan enkripsi sisi server saat Anda memanggil metode [Aws\$1 S3\$1 S3Client](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload):: (). createMultipartUpload Untuk menambahkan header permintaan `x-amz-server-side-encryption` untuk permintaan Anda, tentukan parameter `array` kunci `ServerSideEncryption` dengan nilai `AES256`. Untuk informasi selengkapnya tentang operasi API unggahan multibagian tingkat rendah, lihat [Menggunakan AWS SDKs (API tingkat rendah)](mpu-upload-object.md#mpu-upload-low-level).
+ Saat Anda menggunakan operasi API unggahan multibagian tingkat tinggi, tentukan enkripsi sisi server dengan menggunakan `ServerSideEncryption` parameter operasi API. [CreateMultipartUpload](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload) Untuk contoh penggunaan metode `setOption()` dengan operasi API unggahan multibagian tingkat tinggi, lihat [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md).

Untuk menentukan status enkripsi objek yang ada, ambil metadata objek dengan memanggil metode [Aws\$1S3\$1S3Client::headObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#headobject) seperti yang ditunjukkan dalam contoh kode PHP berikut.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Check which server-side encryption algorithm is used.
$result = $s3->headObject([
    'Bucket' => $bucket,
    'Key'    => $keyname,
]);
echo $result['ServerSideEncryption'];
```

Untuk mengubah status enkripsi objek yang sudah ada, buat salinan objek menggunakan metode [Aws\$1S3\$1S3Client::copyObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#copyobject) dan menghapus objek sumber. Secara default, `copyObject()` tidak mengenkripsi target kecuali jika Anda secara eksplisit meminta enkripsi di sisi server objek tujuan menggunakan parameter `ServerSideEncryption` dengan nilai `AES256`. Contoh kode PHP berikut membuat salinan objek dan menambahkan enkripsi server-side ke objek yang tersalin.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';

$targetBucket = '*** Your Target Bucket Name ***';
$targetKeyname = '*** Your Target Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Copy an object and add server-side encryption.
$s3->copyObject([
    'Bucket'               => $targetBucket,
    'Key'                  => $targetKeyname,
    'CopySource'           => "$sourceBucket/$sourceKeyname",
    'ServerSideEncryption' => 'AES256',
]);
```

Untuk informasi selengkapnya, lihat topik berikut:
+ [AWS SDK untuk PHP untuk Amazon S3 Aws\$1 S3\$1 S3Kelas Klien](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html) 
+ [Dokumentasi AWS SDK untuk PHP](https://aws.amazon.com/documentation/sdk-for-php/)

------
#### [ Ruby ]

Saat menggunakan AWS SDK untuk Ruby untuk mengunggah objek, Anda dapat menentukan bahwa objek disimpan terenkripsi saat istirahat dengan SSE-S3. Saat Anda membaca kembali, objek tersebut akan didekripsi secara otomatis.

Contoh AWS SDK untuk Ruby Versi 3 berikut menunjukkan cara menentukan bahwa file yang diunggah ke Amazon S3 dienkripsi saat istirahat.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectPutSseWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  def put_object_encrypted(object_content, encryption)
    @object.put(body: object_content, server_side_encryption: encryption)
    true
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't put your content to #{object.key}. Here's why: #{e.message}"
    false
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-encrypted-content"
  object_content = "This is my super-secret content."
  encryption = "AES256"

  wrapper = ObjectPutSseWrapper.new(Aws::S3::Object.new(bucket_name, object_content))
  return unless wrapper.put_object_encrypted(object_content, encryption)

  puts "Put your content into #{bucket_name}:#{object_key} and encrypted it with #{encryption}."
end

run_demo if $PROGRAM_NAME == __FILE__
```

Contoh kode berikut menunjukkan cara menentukan status enkripsi objek yang ada.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectGetEncryptionWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  # Gets the object into memory.
  #
  # @return [Aws::S3::Types::GetObjectOutput, nil] The retrieved object data if successful; otherwise nil.
  def object
    @object.get
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't get object #{@object.key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-object.txt"

  wrapper = ObjectGetEncryptionWrapper.new(Aws::S3::Object.new(bucket_name, object_key))
  obj_data = wrapper.get_object
  return unless obj_data

  encryption = obj_data.server_side_encryption.nil? ? 'no' : obj_data.server_side_encryption
  puts "Object #{object_key} uses #{encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

Jika enkripsi di sisi server tidak digunakan untuk objek yang disimpan di Amazon S3, metode tersebut akan menghasilkan `null`.

Untuk mengubah status enkripsi objek yang ada, buat salinan objek tersebut dan hapus objek sumber. Secara default, metode penyalinan tidak mengenkripsi target kecuali Anda secara eksplisit meminta enkripsi di sisi server. Anda dapat meminta enkripsi objek target dengan menentukan nilai `server_side_encryption` dalam argumen hash opsi, seperti yang ditunjukkan dalam contoh kode Ruby berikut. Contoh kode mendemonstrasikan cara menyalin sebuah objek dan mengenkripsi salinan dengan SSE-S3. 

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectCopyEncryptWrapper
  attr_reader :source_object

  # @param source_object [Aws::S3::Object] An existing Amazon S3 object. This is used as the source object for
  #                                        copy actions.
  def initialize(source_object)
    @source_object = source_object
  end

  # Copy the source object to the specified target bucket, rename it with the target key, and encrypt it.
  #
  # @param target_bucket [Aws::S3::Bucket] An existing Amazon S3 bucket where the object is copied.
  # @param target_object_key [String] The key to give the copy of the object.
  # @return [Aws::S3::Object, nil] The copied object when successful; otherwise, nil.
  def copy_object(target_bucket, target_object_key, encryption)
    @source_object.copy_to(bucket: target_bucket.name, key: target_object_key, server_side_encryption: encryption)
    target_bucket.object(target_object_key)
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't copy #{@source_object.key} to #{target_object_key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  source_bucket_name = "amzn-s3-demo-bucket1"
  source_key = "my-source-file.txt"
  target_bucket_name = "amzn-s3-demo-bucket2"
  target_key = "my-target-file.txt"
  target_encryption = "AES256"

  source_bucket = Aws::S3::Bucket.new(source_bucket_name)
  wrapper = ObjectCopyEncryptWrapper.new(source_bucket.object(source_key))
  target_bucket = Aws::S3::Bucket.new(target_bucket_name)
  target_object = wrapper.copy_object(target_bucket, target_key, target_encryption)
  return unless target_object

  puts "Copied #{source_key} from #{source_bucket_name} to #{target_object.bucket_name}:#{target_object.key} and "\
       "encrypted the target with #{target_object.server_side_encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

------

## Menggunakan AWS CLI
<a name="sse-s3-aws-cli"></a>

Untuk menentukan SSE-S3 saat Anda mengunggah objek dengan menggunakan AWS CLI, gunakan contoh berikut.

```
aws s3api put-object --bucket amzn-s3-demo-bucket1 --key object-key-name --server-side-encryption AES256  --body file path
```

Untuk informasi selengkapnya, lihat [put-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html) dalam *Referensi AWS CLI *. [Untuk menentukan SSE-S3 saat Anda menyalin objek dengan menggunakan AWS CLI, lihat copy-object.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html)

## Menggunakan CloudFormation
<a name="ss3-s3-cfn"></a>

*Untuk contoh pengaturan enkripsi menggunakan CloudFormation, lihat [Membuat bucket dengan enkripsi default](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_with_default_encryption) dan contoh [Membuat bucket dengan menggunakan enkripsi AWS KMS sisi server dengan S3 Bucket Key](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_using_AWS_KMS_server-side_encryption_with_an_S3_Bucket_Key) dalam `AWS::S3::Bucket ServerSideEncryptionRule` topik di Panduan Pengguna.AWS CloudFormation * 

# Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)
<a name="UsingKMSEncryption"></a>

**penting**  
Amazon S3 sudah menerapkan enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi bagi setiap bucket di Amazon S3. Mulai 5 Januari 2023, semua unggahan objek baru ke Amazon S3 secara otomatis akan dienkripsi tanpa biaya tambahan dan tidak akan berdampak pada kinerja. Status enkripsi otomatis untuk konfigurasi enkripsi default bucket S3 dan untuk unggahan objek baru tersedia di CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan. AWS CLI AWS SDKs Untuk informasi selengkapnya, lihat [FAQ enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Enkripsi di sisi server adalah enkripsi data di tempat tujuan oleh aplikasi atau layanan yang menerimanya.

Amazon S3 secara otomatis mengaktifkan enkripsi di sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3) untuk unggah objek baru.

Kecuali Anda menentukan sebaliknya, bucket menggunakan SSE-S3 secara default untuk mengenkripsi objek. Namun, Anda dapat memilih untuk mengonfigurasi bucket untuk menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS) sebagai gantinya. Untuk informasi selengkapnya, lihat [Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS](specifying-kms-encryption.md).

AWS KMS adalah layanan yang menggabungkan perangkat keras dan perangkat lunak yang aman dan sangat tersedia untuk menyediakan sistem manajemen kunci yang diskalakan untuk cloud. Amazon S3 menggunakan enkripsi sisi server dengan AWS KMS (SSE-KMS) untuk mengenkripsi data objek S3 Anda. Juga, ketika SSE-KMS diminta untuk objek, checksum S3 (sebagai bagian dari metadata objek) disimpan dalam bentuk terenkripsi. Untuk informasi selengkapnya tentang checksum, silakan lihat [Memeriksa integritas objek di Amazon S3](checking-object-integrity.md).

Jika Anda menggunakan kunci KMS, Anda dapat menggunakan AWS KMS melalui [Konsol Manajemen AWS](https://console.aws.amazon.com/kms)atau [AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) untuk melakukan hal berikut: 
+ Membuat, melihat, mengedit, memantau, mengaktifkan atau menonaktifkan, memutar, dan menjadwalkan penghapusan kunci KMS secara terpusat.
+ Menentukan kebijakan yang mengendalikan bagaimana dan oleh siapa kunci KMS digunakan.
+ Audit penggunaan kunci KMS untuk penggunaan yang benar. Audit didukung oleh [AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) tetapi tidak oleh [AWS KMS Konsol;](https://console.aws.amazon.com/kms).



Kontrol keamanan AWS KMS dapat membantu Anda memenuhi persyaratan kepatuhan terkait enkripsi. Anda dapat menggunakan kunci KMS ini untuk melindungi data Anda di bucket Amazon S3. Saat Anda menggunakan enkripsi SSE-KMS dengan bucket S3, AWS KMS keys harus berada di Wilayah yang sama dengan bucket.

Ada biaya tambahan untuk penggunaan AWS KMS keys. Untuk informasi lebih umum, lihat konsep [AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) dalam *AWS Key Management Service Panduan Pengguna* dan [AWS KMS harga](https://aws.amazon.com/kms/pricing).

Untuk petunjuk tentang mengizinkan pengguna IAM mengakses bucket terenkripsi KMS, lihat Bucket [Amazon S3 saya memiliki enkripsi default menggunakan kunci khusus. AWS KMS Bagaimana cara mengizinkan pengguna mengunduh dan mengunggah ke bucket?](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) di pusat AWS re:Post pengetahuan.

**Izin**  
Agar berhasil membuat `PutObject` permintaan untuk mengenkripsi objek dengan AWS KMS kunci ke Amazon S3, Anda `kms:GenerateDataKey` memerlukan izin pada kunci tersebut. Untuk mengunduh objek yang dienkripsi dengan AWS KMS key, Anda memerlukan `kms:Decrypt` izin untuk kunci tersebut. Untuk [melakukan unggahan multibagian](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) untuk mengenkripsi objek dengan AWS KMS key, Anda harus memiliki `kms:GenerateDataKey` dan `kms:Decrypt` izin untuk kunci tersebut.

**penting**  
Tinjau dengan cermat izin yang diberikan dalam kebijakan kunci KMS Anda. Selalu batasi izin kebijakan kunci KMS yang dikelola pelanggan hanya untuk kepala sekolah dan AWS layanan IAM yang harus mengakses tindakan kunci yang relevan. AWS KMS Untuk informasi selengkapnya, lihat [Kebijakan utama di AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html).

**Topics**
+ [AWS KMS keys](#aws-managed-customer-managed-keys)
+ [Kunci Bucket Amazon S3](#sse-kms-bucket-keys)
+ [Membutuhkan enkripsi di sisi server](#require-sse-kms)
+ [Konteks enkripsi](#encryption-context)
+ [Mengirim permintaan untuk objek AWS KMS terenkripsi](#aws-signature-version-4-sse-kms)
+ [Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS](specifying-kms-encryption.md)
+ [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md)

## AWS KMS keys
<a name="aws-managed-customer-managed-keys"></a>

Bila Anda menggunakan enkripsi sisi server dengan AWS KMS (SSE-KMS), Anda dapat menggunakan kunci [AWS terkelola default, atau Anda dapat menentukan kunci terkelola](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) [pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) yang telah Anda buat. AWS KMS mendukung *enkripsi amplop*. S3 menggunakan AWS KMS fitur untuk *enkripsi amplop* untuk lebih melindungi data Anda. Enkripsi amplop adalah praktik mengenkripsi data teks biasa Anda dengan kunci data, dan kemudian mengenkripsi kunci data itu dengan kunci KMS. Untuk informasi selengkapnya tentang enkripsi amplop, lihat [ Enkripsi amplop](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#enveloping) di *Panduan Developer AWS Key Management Service *.

Jika Anda tidak menentukan kunci terkelola pelanggan, Amazon S3 secara otomatis membuat saat pertama kali Anda Akun AWS menambahkan objek yang dienkripsi dengan SSE-KMS ke bucket. Kunci yang dikelola AWS Secara default, Amazon S3 menggunakan kunci KMS ini untuk SSE-KMS. 

**catatan**  
Objek yang dienkripsi menggunakan SSE-KMS dengan [Kunci yang dikelola AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) tidak dapat dibagikan lintas akun. Jika Anda perlu membagikan data lintas akun SSE-KMS, Anda harus menggunakan kunci yang dikelola [pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) dari. AWS KMS

Jika Anda ingin menggunakan CMK untuk SSE-KMS, Anda dapat membuat CMK simetris sebelum Anda mengonfigurasi SSE-KMS. Kemudian, ketika Anda mengonfigurasi SSE-KMS untuk bucket Anda, Anda dapat menentukan CMK saat ini. Untuk informasi selengkapnya tentang kunci enkripsi simetris, lihat [Kunci KMS enkripsi simetris](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dalam *Panduan Pengembang AWS Key Management Service *.

Membuat CMK memberikan Anda lebih banyak fleksibilitas dan kendali atas pelanggan. Misalnya, Anda dapat membuat, memutar, dan menonaktifkan CMK. Anda juga dapat menentukan kontrol akses dan mengaudit CMK yang Anda gunakan untuk melindungi data Anda. Untuk informasi selengkapnya tentang kunci yang AWS dikelola dan dikelola [pelanggan, lihat Kunci dan AWS kunci](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) pelanggan di *Panduan AWS Key Management Service Pengembang*.

**catatan**  
Saat Anda menggunakan enkripsi di sisi server dengan CMK yang disimpan di penyimpanan kunci eksternal, tidak seperti kunci KMS standar, Anda bertanggung jawab untuk memastikan ketersediaan dan ketahanan material kunci Anda. Untuk informasi selengkapnya tentang penyimpanan kunci eksternal dan cara mereka mengubah model tanggung jawab bersama, lihat [Penyimpanan kunci eksternal](https://docs.aws.amazon.com//kms/latest/developerguide/keystore-external.html) di *Panduan AWS Key Management Service Pengembang*.

### Menggunakan enkripsi SSE-KMS untuk operasi lintas akun
<a name="sse-kms-cross-account-operations"></a>

Saat menggunakan enkripsi untuk operasi lintas akun, perhatikan hal berikut:
+ Jika Nama Sumber Daya AWS KMS key Amazon (ARN) atau alias tidak disediakan pada waktu permintaan atau melalui konfigurasi enkripsi default bucket, Kunci yang dikelola AWS (`aws/s3`) dari akun pengunggahan digunakan untuk enkripsi dan diperlukan untuk dekripsi.
+ Kunci yang dikelola AWS (`aws/s3`) dapat digunakan sebagai kunci KMS Anda untuk operasi lintas akun saat prinsip pengunggahan dan akses AWS Identity and Access Management (IAM) berasal dari yang sama. Akun AWS
+ Jika Anda ingin memberikan akses lintas akun ke objek S3 Anda, gunakan CMK. Anda dapat mengonfigurasi kebijakan CMK untuk mengizinkan akses dari akun lain.
+ Jika Anda menentukan kunci KMS yang dikelola pelanggan, kami sarankan untuk menggunakan ARN kunci KMS yang memenuhi syarat sepenuhnya. Jika Anda menggunakan alias kunci KMS sebagai gantinya, AWS KMS selesaikan kunci dalam akun pemohon. Perilaku ini dapat menghasilkan data yang dienkripsi dengan kunci KMS milik pemohon, dan bukan pemilik bucket.
+ Anda harus menentukan kunci yang kepada Anda (pemohon) telah diberikan izin `Encrypt`. Untuk informasi selengkapnya, lihat [Mengizinkan pengguna di akun lain untuk menggunakan kunci KMS untuk operasi kriptografi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) di *Panduan Pengembang AWS Key Management Service *.

Untuk informasi selengkapnya tentang kapan menggunakan kunci terkelola pelanggan dan kunci KMS AWS terkelola, lihat [Haruskah saya menggunakan Kunci yang dikelola AWS atau kunci yang dikelola pelanggan untuk mengenkripsi objek saya di Amazon S3?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)

### Alur kerja enkripsi SSE-KMS
<a name="sse-kms-encryption-workflow"></a>

Jika Anda memilih untuk mengenkripsi data menggunakan Kunci yang dikelola AWS atau kunci yang dikelola pelanggan, AWS KMS dan Amazon S3 melakukan tindakan enkripsi amplop berikut:

1. Amazon S3 meminta [ kunci data](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#data-keys) plaintext dan salinan kunci yang dienkripsi di bawah kunci KMS yang ditentukan.

1. AWS KMS menghasilkan kunci data, mengenkripsinya di bawah kunci KMS, dan mengirimkan kunci data teks biasa dan kunci data terenkripsi ke Amazon S3.

1. Amazon S3 mengenkripsi data menggunkaan kunci data dan menghapus kunci plaintext dari memori sesegera mungkin setelah digunakan.

1. Amazon S3 menyimpan kunci data terenkripsi sebagai metadata dengan data terenkripsi.

Saat Anda meminta agar data Anda didekripsi, Amazon S3 AWS KMS dan lakukan tindakan berikut:

1. Amazon S3 mengirimkan kunci data terenkripsi ke AWS KMS dalam permintaan. `Decrypt`

1. AWS KMS mendekripsi kunci data terenkripsi dengan menggunakan kunci KMS yang sama dan mengembalikan kunci data teks biasa ke Amazon S3.

1. Amazon S3 mendekripsi data terenkripsi, menggunakan kunci data teks biasa, dan menghapus kunci data teks biasa dari memori sesegera mungkin.

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

### Mengaudit enkripsi SSE-KMS
<a name="sse-kms-encryption-audit"></a>

Untuk mengidentifikasi permintaan yang menentukan SSE-KMS, Anda dapat menggunakan metrik **Semua permintaan SSE-KMS** dan **% semua permintaan SSE-KMS** dalam metrik Lensa Penyimpanan Amazon S3. Lensa Penyimpanan S3 adalah fitur analisis penyimpanan cloud yang dapat Anda gunakan untuk mendapatkan visibilitas seluruh organisasi ke dalam penggunaan dan aktivitas penyimpanan objek. [Anda juga dapat menggunakan jumlah bucket berkemampuan SSE-KMS dan bucket berkemampuan% SSE-KMS untuk memahami jumlah bucket yang (SSE-KMS) untuk enkripsi bucket default.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) Untuk informasi selengkapnya, lihat [ Menilai aktivitas penyimpanan dan penggunaan Anda dengan Lensa Penyimpanan S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html). Untuk daftar lengkap metrik, lihat [ Glosarium metrik Lensa Penyimpanan S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html).

Untuk mengaudit penggunaan AWS KMS kunci Anda untuk data terenkripsi SSE-KMS Anda, Anda dapat menggunakan log. AWS CloudTrail Anda bisa mendapatkan wawasan tentang [operasi kriptografi](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) Anda, seperti [https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html)dan [https://docs.aws.amazon.com/kms/latest/developerguide/ct-decrypt.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-decrypt.html). CloudTrail mendukung banyak [nilai atribut](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) untuk memfilter pencarian Anda, termasuk nama acara, nama pengguna, dan sumber acara. 

## Kunci Bucket Amazon S3
<a name="sse-kms-bucket-keys"></a>

Saat mengonfigurasi enkripsi sisi server menggunakan AWS KMS (SSE-KMS), Anda dapat mengonfigurasi bucket untuk menggunakan S3 Bucket Keys untuk SSE-KMS. Menggunakan kunci tingkat ember untuk SSE-KMS dapat mengurangi biaya AWS KMS permintaan Anda hingga 99 persen dengan mengurangi lalu lintas permintaan dari Amazon S3 ke. AWS KMS

Ketika Anda mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru, AWS KMS menghasilkan kunci tingkat bucket yang digunakan untuk membuat [kunci data](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) untuk objek dalam bucket. Kunci Bucket S3 ini digunakan untuk jangka waktu terbatas dalam Amazon S3, semakin mengurangi kebutuhan Amazon S3 untuk membuat permintaan AWS KMS untuk menyelesaikan operasi enkripsi. Untuk informasi lebih lanjut tentang menggunakan Kunci Bucket S3, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

## Membutuhkan enkripsi di sisi server
<a name="require-sse-kms"></a>

Untuk mewajibkan enkripsi di sisi server terhadap semua objek dalam bucket Amazon S3 tertentu, Anda dapat menggunakan kebijakan bucket. Misalnya, kebijakan bucket berikut menolak izin objek unggah (`s3:PutObject`) untuk semua orang jika permintaan tidak menyertakan header `x-amz-server-side-encryption-aws-kms-key-id` yang meminta enkripsi di sisi server dengan SSE-KMS.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id":"PutObjectPolicy",
   "Statement":[{
         "Sid":"DenyObjectsThatAreNotSSEKMS",
         "Effect":"Deny",
         "Principal":"*",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*",
         "Condition":{
            "Null":{
               "s3:x-amz-server-side-encryption-aws-kms-key-id":"true"
            }
         }
      }
   ]
}
```

------

Untuk mengharuskan seseorang AWS KMS key digunakan untuk mengenkripsi objek dalam ember, Anda dapat menggunakan kunci `s3:x-amz-server-side-encryption-aws-kms-key-id` kondisi. Untuk menentukan kunci KMS, Anda harus menggunakan kunci Amazon Resource Name (ARN) yang ada dalam `arn:aws:kms:region:acct-id:key/key-id` format. AWS Identity and Access Management tidak memvalidasi jika string untuk `s3:x-amz-server-side-encryption-aws-kms-key-id` ada. 

**catatan**  
Saat mengunggah objek, Anda dapat menentukan kunci KMS dengan menggunakan `x-amz-server-side-encryption-aws-kms-key-id` header atau mengandalkan [konfigurasi enkripsi bucket default](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html) Anda. Jika PutObject permintaan Anda menentukan `aws:kms` di `x-amz-server-side-encryption` header, tetapi tidak menentukan `x-amz-server-side-encryption-aws-kms-key-id` header, maka Amazon S3 mengasumsikan bahwa Anda ingin menggunakan. Kunci yang dikelola AWS Terlepas dari itu, ID AWS KMS kunci yang digunakan Amazon S3 untuk enkripsi objek harus cocok dengan ID AWS KMS kunci dalam kebijakan, jika tidak Amazon S3 menolak permintaan tersebut.

*Untuk daftar lengkap kunci kondisi khusus Amazon S3, lihat Kunci kondisi [untuk Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) di Referensi Otorisasi Layanan.*

## Konteks enkripsi
<a name="encryption-context"></a>

*Konteks enkripsi* adalah seperangkat pasangan nilai kunci yang berisi informasi kontekstual tambahan terkait data. Konteks enkripsi tidak dienkripsi. Ketika konteks enkripsi ditentukan untuk operasi enkripsi, Amazon S3 harus menentukan konteks enkripsi yang sama untuk operasi dekripsi. Jika tidak, dekripsi gagal. AWS KMS menggunakan konteks enkripsi sebagai [data otentikasi tambahan](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/concepts.html#digital-sigs) (AAD) untuk mendukung enkripsi yang [diautentikasi](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations#digital-sigs). Untuk informasi umum tentang konteks enkripsi, lihat [Konteks enkripsi](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) dalam *Panduan Pengembang AWS Key Management Service *. 

Secara default, Amazon S3 menggunakan objek atau bucket Amazon Resource Name (ARN) sebagai pasangan konteks enkripsi: 
+ **Jika Anda menggunakan SSE-KMS tanpa mengaktifkan Kunci Bucket S3**, objek ARN digunakan sebagai konteks enkripsi.

  ```
  arn:aws:s3:::object_ARN
  ```
+ **Jika Anda menggunakan SSE-KMS dan mengaktifkan Kunci Bucket S3**, ARN bucket akan digunakan sebagai konteks enkripsi. Untuk informasi selengkapnya tentang Kunci Bucket S3, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

  ```
  arn:aws:s3:::bucket_ARN
  ```

Anda secara opsional dapat memberikan pasangan konteks enkripsi tambahan dengan menggunakan `x-amz-server-side-encryption-context` header dalam permintaan [s3: PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_RequestSyntax). Namun, karena konteks enkripsi tidak dienkripsi, pastikan bahwa itu tidak menyertakan informasi yang sensitif. Amazon S3 menyimpan pasangan kunci tambahan ini bersama dengan konteks enkripsi default. Saat memproses permintaan `PUT` Anda, Amazon S3 menambahkan konteks enkripsi default ke `aws:s3:arn` yang Anda berikan. 

Anda dapat menggunakan konteks enkripsi untuk mengidentifikasi dan mengategorikan operasi kriptografi Anda. Anda juga dapat menggunakan nilai ARN konteks enkripsi default untuk melacak permintaan yang relevan AWS CloudTrail dengan melihat Amazon S3 ARN mana yang digunakan dengan kunci enkripsi mana.

Di `requestParameters` bidang file CloudTrail log, konteks enkripsi terlihat mirip dengan yang berikut. 

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1/file_name"
}
```

Saat Anda menggunakan SSE-KMS dengan fitur S3 Bucket Keys opsional, nilai konteks enkripsi adalah ARN bucket.

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1"
}
```

## Mengirim permintaan untuk objek AWS KMS terenkripsi
<a name="aws-signature-version-4-sse-kms"></a>

**penting**  
Semua `GET` dan `PUT` permintaan untuk objek AWS KMS terenkripsi harus dibuat menggunakan Secure Sockets Layer (SSL) atau Transport Layer Security (TLS). Permintaan juga harus ditandatangani menggunakan kredensil yang valid, seperti AWS Signature Version 4 (atau AWS Signature Version 2).

AWS Signature Version 4 adalah proses menambahkan informasi otentikasi ke AWS permintaan yang dikirim oleh HTTP. Untuk keamanan, sebagian besar permintaan AWS harus ditandatangani dengan kunci akses, yang terdiri dari ID kunci akses dan kunci akses rahasia. Kedua kunci ini umumnya disebut sebagai kredensial keamanan Anda. Untuk informasi selengkapnya, lihat [Permintaan Autentikasi (Tanda Tangan AWS Versi 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) dan [Proses penandatanganan Tanda Tangan Versi 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).

**penting**  
Jika objek Anda menggunakan SSE-KMS, jangan mengirim header permintaan enkripsi untuk permintaan `GET` dan permintaan `HEAD`. Jika tidak, Anda akan mendapatkan kesalahan HTTP 400 Bad Request.

**Topics**
+ [AWS KMS keys](#aws-managed-customer-managed-keys)
+ [Kunci Bucket Amazon S3](#sse-kms-bucket-keys)
+ [Membutuhkan enkripsi di sisi server](#require-sse-kms)
+ [Konteks enkripsi](#encryption-context)
+ [Mengirim permintaan untuk objek AWS KMS terenkripsi](#aws-signature-version-4-sse-kms)
+ [Menentukan enkripsi sisi server dengan (SSE-KMS) AWS KMS](specifying-kms-encryption.md)
+ [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md)

# 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).

------

# Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3
<a name="bucket-key"></a>

Amazon S3 Bucket Keys mengurangi biaya enkripsi sisi server Amazon S3 AWS Key Management Service dengan AWS KMS kunci () (SSE-KMS). Menggunakan kunci tingkat ember untuk SSE-KMS dapat mengurangi biaya AWS KMS permintaan hingga 99 persen dengan mengurangi lalu lintas permintaan dari Amazon S3 ke. AWS KMS Dengan beberapa klik di Konsol Manajemen AWS, dan tanpa perubahan apa pun pada aplikasi klien Anda, Anda dapat mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 untuk enkripsi SSE-KMS pada objek baru.

**catatan**  
Kunci Bucket S3 tidak didukung untuk enkripsi sisi server dua lapis dengan kunci AWS Key Management Service () (AWS KMS DSSE-KMS).

## Kunci Bucket S3 untuk SSE-KMS
<a name="bucket-key-overview"></a>

Beban kerja yang mengakses jutaan atau miliaran objek yang dienkripsi dengan SSE-KMS dapat menghasilkan volume permintaan yang besar. AWS KMS[Saat Anda menggunakan SSE-KMS untuk melindungi data Anda tanpa Kunci Bucket S3, Amazon S3 menggunakan kunci data individual untuk setiap AWS KMS objek.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) Dalam hal ini, Amazon S3 melakukan panggilan ke AWS KMS setiap kali permintaan dibuat terhadap objek yang dienkripsi KMS. Untuk informasi tentang cara kerja SSE-KMS, lihat [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md). 

Saat Anda mengonfigurasi bucket untuk menggunakan Kunci Bucket S3 untuk SSE-KMS, buat kunci tingkat AWS ember berumur pendek dari, lalu simpan sementara di S3. AWS KMS Kunci tingkat bucket ini akan membuat kunci data untuk objek baru selama siklus hidupnya. Kunci Bucket S3 digunakan untuk jangka waktu terbatas dalam Amazon S3, mengurangi kebutuhan S3 untuk membuat permintaan AWS KMS untuk menyelesaikan operasi enkripsi. Ini mengurangi lalu lintas dari S3 menjadi AWS KMS, memungkinkan Anda mengakses objek yang AWS KMS dienkripsi di Amazon S3 dengan biaya yang lebih murah dari biaya sebelumnya.

Kunci tingkat ember unik diambil setidaknya sekali per pemohon untuk memastikan bahwa akses pemohon ke kunci ditangkap dalam suatu peristiwa. AWS KMS CloudTrail Amazon S3 memperlakukan penelepon sebagai pemohon yang berbeda ketika mereka menggunakan peran atau akun yang berbeda, atau peran yang sama dengan kebijakan pelingkupan yang berbeda. AWS KMS penghematan permintaan mencerminkan jumlah pemohon, pola permintaan, dan usia relatif dari objek yang diminta. Misalnya, jumlah pemohon yang lebih sedikit, meminta beberapa objek dalam jendela waktu terbatas, dan dienkripsi dengan kunci tingkat ember yang sama, menghasilkan penghematan yang lebih besar.

**catatan**  
Menggunakan S3 Bucket Keys memungkinkan Anda menghemat biaya AWS KMS permintaan dengan mengurangi permintaan AWS KMS untuk`Encrypt`,`GenerateDataKey`, dan `Decrypt` operasi melalui penggunaan kunci tingkat ember. Secara desain, permintaan berikutnya yang memanfaatkan kunci tingkat ember ini tidak menghasilkan permintaan AWS KMS API atau memvalidasi akses terhadap kebijakan kunci. AWS KMS 

Bila Anda mengonfigurasi Kunci Bucket S3, objek yang sudah ada di bucket tidak menggunakan kunci Bucket S3. Untuk mengonfigurasi Kunci Bucket S3 untuk objek yang sudah ada, Anda dapat menggunakan operasi `CopyObject`. Untuk informasi selengkapnya, lihat [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md).

Amazon S3 hanya akan berbagi Kunci Bucket S3 untuk objek dienkripsi oleh AWS KMS key yang sama. Kunci Bucket S3 kompatibel dengan kunci KMS yang dibuat oleh AWS KMS, [bahan kunci impor, dan bahan](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) [kunci yang didukung oleh toko kunci khusus](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).

![\[Diagram yang menunjukkan AWS KMS menghasilkan kunci bucket yang membuat kunci data untuk objek dalam ember.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/S3-Bucket-Keys.png)


## Mengonfigurasi Kunci Bucket S3
<a name="configure-bucket-key"></a>

Anda dapat mengonfigurasi bucket untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru melalui konsol Amazon S3,, AWS SDKs atau REST API. AWS CLI Dengan Kunci Bucket S3 diaktifkan di bucket Anda, objek yang diunggah dengan kunci SSE-KMS tertentu yang berbeda akan menggunakan Kunci Bucket S3 miliknya sendiri. Terlepas dari pengaturan Kunci Bucket S3 Anda, Anda dapat menyertakan header `x-amz-server-side-encryption-bucket-key-enabled` dengan nilai `true` atau `false` atau dalam permintaan Anda, untuk mengganti pengaturan bucket.

Sebelum mengonfigurasi bucket untuk menggunakan Kunci Bucket S3, tinjau [Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3](#bucket-key-changes). 

### Mengonfigurasi Kunci Bucket S3 menggunakan konsol Amazon S3
<a name="configure-bucket-key-console"></a>

Ketika Anda membuat bucket baru, Anda dapat mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru. Anda juga dapat mengonfigurasi bucket yang ada untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru dengan memperbarui properti bucket Anda. 

Untuk informasi selengkapnya, lihat [Mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 dengan SSE-KMS untuk objek baru](configuring-bucket-key.md).

### REST API, AWS CLI, dan dukungan AWS SDK untuk S3 Bucket Keys
<a name="configure-bucket-key-programmatic"></a>

Anda dapat menggunakan REST API, AWS CLI, atau AWS SDK untuk mengonfigurasi bucket agar menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru. Anda juga dapat mengaktifkan Kunci Bucket S3 pada tingkat objek.

Untuk informasi selengkapnya, lihat berikut ini: 
+ [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md)
+ [Mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 dengan SSE-KMS untuk objek baru](configuring-bucket-key.md)

Operasi API berikut mendukung Kunci Bucket S3 untuk SSE-KMS:
+ [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
  + `ServerSideEncryptionRule` menerima parameter `BucketKeyEnabled` untuk mengaktifkan dan menonaktifkan Kunci Bucket S3.
+ [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
  + `ServerSideEncryptionRule` mengembalikan pengaturan untuk `BucketKeyEnabled`.
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html), [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html), dan [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
  + Anda dapat menggunakan header permintaan `x-amz-server-side-encryption-bucket-key-enabled` untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 pada tingkat objek.
+ [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html), [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html), dan [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
  + Respons header `x-amz-server-side-encryption-bucket-key-enabled` menunjukkan jika Kunci Bucket S3 diaktifkan atau dinonaktifkan untuk sebuah objek.

### Bekerja dengan CloudFormation
<a name="configure-bucket-key-cfn"></a>

Di CloudFormation, `AWS::S3::Bucket` sumber daya menyertakan properti enkripsi yang disebut `BucketKeyEnabled` yang dapat Anda gunakan untuk mengaktifkan atau menonaktifkan Kunci Bucket S3. 

Untuk informasi selengkapnya, lihat [Menggunakan CloudFormation](configuring-bucket-key.md#enable-bucket-key-cloudformation).

## Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3
<a name="bucket-key-changes"></a>

Sebelum mengaktifkan Kunci Bucket S3, perhatikan perubahan terkait berikut ini:

### IAM atau kebijakan AWS KMS utama
<a name="bucket-key-policies"></a>

Jika kebijakan atau kebijakan AWS KMS utama AWS Identity and Access Management (IAM) yang ada menggunakan objek Amazon Resource Name (ARN) sebagai konteks enkripsi untuk mempersempit atau membatasi akses ke kunci KMS, kebijakan ini tidak akan berfungsi dengan Kunci Bucket S3. Kunci Bucket S3 menggunakan bucket ARN sebagai konteks enkripsi. Sebelum mengaktifkan Kunci Bucket S3, perbarui kebijakan IAM atau kebijakan AWS KMS utama untuk menggunakan ARN bucket sebagai konteks enkripsi.

Untuk informasi selengkapnya tentang konteks enkripsi dan Kunci Bucket S3, lihat [Konteks enkripsi](UsingKMSEncryption.md#encryption-context).

### CloudTrail acara untuk AWS KMS
<a name="bucket-key-cloudtrail"></a>

Setelah Anda mengaktifkan Kunci Bucket S3, AWS KMS CloudTrail peristiwa Anda mencatat ARN bucket Anda alih-alih ARN objek Anda. Selain itu, Anda melihat lebih sedikit CloudTrail peristiwa KMS untuk objek SSE-KMS di log Anda. Karena materi utama dibatasi waktu di Amazon S3, lebih sedikit permintaan yang dibuat. AWS KMS

## Menggunakan kunci Bucket S3 dengan replikasi
<a name="bucket-key-replication"></a>

Anda dapat menggunakan Kunci Bucket S3 dengan Replikasi Wilayah yang Sama (SRR) dan Replikasi Lintas-Wilayah (CRR).

Ketika Amazon S3 mereplikasi objek terenkripsi, umumnya mempertahankan pengaturan enkripsi objek replika di bucket tujuan. Namun, jika objek sumber tidak dienkripsi dan bucket tujuan Anda menggunakan enkripsi default atau Kunci Bucket S3, Amazon S3 mengenkripsi objek dengan konfigurasi bucket tujuan. 

Contoh berikut menggambarkan bagaimana Kunci Bucket S3 bekerja dengan replikasi. Untuk informasi selengkapnya, lihat [Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Example Contoh 1–Sumber objek menggunakan Kunci Bucket S3, bucket tujuan menggunakan enkripsi default**  
Jika objek sumber Anda menggunakan Kunci Bucket S3 namun bucket tujuan Anda menggunakan enkripsi default dengan SSE-KMS, objek replika akan mempertahankan pengaturan enkripsi Kunci Bucket S3 di bucket tujuan. Bucket tujuan masih menggunakan enkripsi default dengan SSE-KMS.   


**Example Contoh 2–Objek sumber tidak dienkripsi, bucket tujuan menggunakan Kunci Bucket S3 dengan SSE-KMS**  
Jika objek sumber Anda tidak dienkripsi dan bucket tujuan menggunakan Kunci Bucket S3 dengan SSE-KMS, objek replika dienkripsi menggunakan Kunci Bucket S3 dengan SSE-KMS di bucket tujuan. Ini menghasilkan objek sumber `ETag` yang berbeda dari objek replika `ETag`. Anda harus memperbarui aplikasi yang menggunakan `ETag` untuk mengakomodasi perbedaan ini.

## Bekerja dengan Kunci Bucket S3
<a name="using-bucket-key"></a>

Untuk informasi lebih lanjut tentang mengaktifkan dan bekerja dengan Kunci Bucket S3, lihat bagian berikut:
+ [Mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 dengan SSE-KMS untuk objek baru](configuring-bucket-key.md)
+ [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md)
+ [Melihat pengaturan untuk Kunci Bucket S3](viewing-bucket-key-settings.md)

# Mengonfigurasi bucket Anda untuk menggunakan Kunci Bucket S3 dengan SSE-KMS untuk objek baru
<a name="configuring-bucket-key"></a>

Saat mengonfigurasi enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS), Anda dapat mengonfigurasi bucket untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru. S3 Bucket Keys mengurangi lalu lintas permintaan dari Amazon S3 AWS KMS ke dan mengurangi biaya SSE-KMS. Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md).

Anda dapat mengonfigurasi bucket untuk menggunakan Kunci Bucket S3 untuk SSE-KMS pada objek baru menggunakan konsol Amazon S3, REST API, (), atau. AWS SDKs AWS Command Line Interface AWS CLI CloudFormation Jika Anda ingin mengaktifkan atau nonaktifkan Kunci Bucket S3 untuk objek yang ada, Anda dapat menggunakan sebuah `CopyObject` operasi. Untuk informasi selengkapnya, lihat [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md) dan [Menggunakan Operasi Batch untuk mengaktifkan Kunci Bucket S3 untuk SSE-KMS](batch-ops-copy-example-bucket-key.md).

Saat Kunci Bucket S3 diaktifkan untuk bucket sumber atau tujuan, konteks enkripsi akan menjadi Amazon Resource Name (ARN) bucket, bukan ARN objek (misalnya, `arn:aws:s3:::bucket_ARN`). Anda harus memperbarui kebijakan IAM Anda untuk menggunakan ARN bucket untuk konteks enkripsi. Untuk informasi selengkapnya, lihat [Replikasi dan Kunci Bucket S3](replication-config-for-kms-objects.md#bk-replication).

Contoh berikut menggambarkan bagaimana Kunci Bucket S3 bekerja dengan replikasi. Untuk informasi selengkapnya, lihat [Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Prasyarat**  
Sebelum mengonfigurasi bucket untuk menggunakan Kunci Bucket S3, tinjau [Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3](bucket-key.md#bucket-key-changes).

**Topics**

## Menggunakan konsol S3
<a name="enable-bucket-key"></a>

Di konsol S3, Anda dapat mengaktifkan atau nonaktifkan Kunci Bucket S3 untuk bucket baru atau yang sudah ada. Objek di konsol S3 mewarisi pengaturan Kunci Bucket S3 mereka dari konfigurasi bucket. Saat Anda mengaktifkan Kunci Bucket S3 untuk bucket Anda, objek baru yang Anda unggah ke bucket menggunakan Kunci Bucket S3 untuk SSE-KMS. 

**Mengunggah, menyalin, atau memodifikasi objek dalam bucket yang memiliki Kunci Bucket S3 diaktifkan**  
Jika Anda unggah, memodifikasi, atau menyalin objek dalam bucket yang mengaktifkan Kunci Bucket S3, pengaturan Kunci Bucket S3 untuk objek tersebut dapat diperbarui agar sesuai dengan konfigurasi bucket.

Jika sebuah objek telah mengaktifkan Kunci Bucket S3, pengaturan Kunci Bucket S3 untuk objek tersebut tidak berubah saat Anda menyalin atau memodifikasi objek. Namun, jika Anda mengubah atau menyalin objek yang tidak memiliki Kunci Bucket S3 yang diaktifkan, dan bucket tujuan memiliki konfigurasi Kunci Bucket S3, objek mewarisi pengaturan Kunci Bucket S3 bucket tujuan. Misalnya, jika objek sumber Anda tidak mengaktifkan Kunci Bucket S3 namun bucket tujuan mengaktifkan Kunci Bucket S3, Kunci Bucket S3 diaktifkan untuk objek tersebut.

**Untuk mengaktifkan Kunci Bucket S3 saat Anda membuat bucket baru**

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. Pilih **Buat bucket**. 

1. Masukkan nama bucket Anda, dan pilih Wilayah AWS. 

1. Di bawah **Enkripsi default**, untuk **Jenis kunci enkripsi**, pilih kunci **AWS Key Management Service (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 Anda AWS KMS keys**, lalu 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 kunci yang dikelola [pelanggan, lihat Kunci dan AWS kunci](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) pelanggan di *Panduan AWS Key Management Service Pengembang*.
   + Untuk memasukkan ARN kunci KMS, pilih **Masukkan AWS KMS key ARN**, dan 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*.

1. Pada **Kunci Bucket**, pilih **Aktifkan**. 

1. Pilih **Buat bucket**. 

   Amazon S3 menciptakan bucket Anda dengan Kunci Bucket S3 yang diaktifkan. Objek baru yang Anda unggah ke bucket akan menggunakan Kunci Bucket S3. 

   Untuk menonaktifkan Kunci Bucket S3, ikuti langkah-langkah sebelumnya, dan pilih **Nonaktifkan**.

**Cara mengaktifkan Kunci Bucket S3 untuk bucket yang ada**

1. 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. Di dalam daftar **Bucket**, pilih bucket yang ingin Anda aktifkan Kunci Bucket S3-nya.

1. Pilih tab **Properti**.

1. Di bagian bawah **Enkripsi default**, pilih **Edit**.

1. Di bawah **Enkripsi default**, untuk **Jenis kunci enkripsi**, pilih kunci **AWS Key Management Service (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 Anda AWS KMS keys**, lalu 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 kunci yang dikelola [pelanggan, lihat Kunci dan AWS kunci](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) pelanggan di *Panduan AWS Key Management Service Pengembang*.
   + Untuk memasukkan ARN kunci KMS, pilih **Masukkan AWS KMS key ARN**, dan 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*.

1. Pada **Kunci Bucket**, pilih **Aktifkan**. 

1. Pilih **Simpan perubahan**.

   Amazon S3 mengaktifkan Kunci Bucket S3 untuk objek baru yang ditambahkan ke bucket Anda. Objek yang ada tidak menggunakan Kunci Bucket S3. Untuk mengonfigurasi Kunci Bucket S3 untuk objek yang sudah ada, Anda dapat menggunakan operasi `CopyObject`. Untuk informasi selengkapnya, lihat [Mengonfigurasi Kunci Bucket S3 pada tingkat objek](configuring-bucket-key-object.md).

   Untuk menonaktifkan Kunci Bucket S3, ikuti langkah-langkah sebelumnya, dan pilih **Nonaktifkan**.

## Penggunaan API REST
<a name="enable-bucket-key-rest"></a>

Anda dapat menggunakan [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 untuk bucket Anda. Untuk mengonfigurasi Kunci Bucket S3 dengan`PutBucketEncryption`, gunakan tipe [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)data, yang mencakup enkripsi default dengan SSE-KMS. Anda juga dapat menggunakan CMK dengan menentukan ID kunci KMS untuk kunci yang dikelola pelanggan.  

Untuk informasi selengkapnya dan contoh sintaks, lihat [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html). 

## Menggunakan AWS SDK for Java
<a name="enable-bucket-key-sdk"></a>

Contoh berikut ini mengaktifkan enkripsi bucket default dengan SSE-KMS dan Kunci Bucket S3 dengan menggunakan AWS SDK untuk Java.

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

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## Menggunakan AWS CLI
<a name="enable-bucket-key-cli"></a>

Contoh berikut ini mengaktifkan enkripsi bucket default dengan SSE-KMS dan Kunci Bucket S3 dengan menggunakan AWS CLI. Ganti `user input placeholders` dengan informasi Anda sendiri.

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
        "Rules": [
            {
                "ApplyServerSideEncryptionByDefault": {
                    "SSEAlgorithm": "aws:kms",
                    "KMSMasterKeyID": "KMS-Key-ARN"
                },
                "BucketKeyEnabled": true
            }
        ]
    }'
```

## Menggunakan CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

Untuk informasi selengkapnya tentang mengonfigurasi Kunci Bucket S3 dengan CloudFormation, lihat [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html)di *AWS CloudFormation Panduan Pengguna*.

# Mengonfigurasi Kunci Bucket S3 pada tingkat objek
<a name="configuring-bucket-key-object"></a>

Saat Anda melakukan operasi PUT atau COPY menggunakan REST API AWS SDKs, atau AWS CLI, Anda dapat mengaktifkan atau menonaktifkan Kunci Bucket S3 di tingkat objek dengan menambahkan header `x-amz-server-side-encryption-bucket-key-enabled` permintaan dengan `false` nilai `true` atau. S3 Bucket Keys mengurangi biaya enkripsi sisi server menggunakan AWS Key Management Service (AWS KMS) (SSE-KMS) 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). 

Saat Anda mengonfigurasi Kunci Bucket S3 untuk suatu objek menggunakan operasi PUT atau COPY, Amazon S3 hanya memperbarui pengaturan untuk objek tersebut. Pengaturan Kunci Bucket S3 untuk bucket tujuan tidak berubah. Jika Anda mengirimkan permintaan PUT atau COPY untuk objek terenkripsi KMS ke dalam bucket dengan S3 Bucket Keys diaktifkan, operasi tingkat objek Anda akan secara otomatis menggunakan S3 Bucket Keys, kecuali jika Anda menonaktifkan kunci di header permintaan. Jika Anda tidak menentukan Kunci Bucket S3 untuk objek Anda, Amazon S3 menerapkan pengaturan Kunci Bucket S3 untuk bucket tujuan ke objek.

**Prasyarat:**  
Sebelum mengonfigurasi bucket untuk menggunakan Kunci Bucket S3, tinjau  [Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3](bucket-key.md#bucket-key-changes). 

**Topics**
+ [Operasi Batch Amazon S3](#bucket-key-object-bops)
+ [Penggunaan API REST](#bucket-key-object-rest)
+ [Menggunakan AWS SDK for Java PutObject ()](#bucket-key-object-sdk)
+ [Menggunakan AWS CLI (PutObject)](#bucket-key-object-cli)

## Operasi Batch Amazon S3
<a name="bucket-key-object-bops"></a>

Untuk mengenkripsi objek Amazon S3 yang tidak terenkripsi, Anda dapat menggunakan Operasi Batch Amazon S3. Anda harus menyediakan Operasi Batch S3 dengan daftar objek untuk dioperasikan, dan Operasi Batch akan memanggil masing-masing API untuk melakukan operasi tertentu. 

Anda juga dapat menggunakan [Operasi Salin Operasi Batch S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) untuk menyalin objek tidak terenkripsi yang ada, dan menuliskannya kembali ke bucket yang sama sebagai objek terenkripsi. 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 [Mengenkripsi objek dengan Operasi Batch Amazon S3](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

## Penggunaan API REST
<a name="bucket-key-object-rest"></a>

Saat Anda menggunakan SSE-KMS, Anda dapat mengaktifkan Kunci Bucket S3 untuk sebuah objek menggunakan operasi API berikut ini: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)— Saat Anda mengunggah objek, Anda dapat menentukan header `x-amz-server-side-encryption-bucket-key-enabled` permintaan untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 di tingkat objek. 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)— Saat Anda menyalin objek dan mengkonfigurasi SSE-KMS, Anda dapat menentukan header `x-amz-server-side-encryption-bucket-key-enabled` permintaan untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 untuk objek Anda. 
+ [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Saat Anda menggunakan `POST` operasi untuk mengunggah objek dan mengonfigurasi SSE-KMS, Anda dapat menggunakan bidang formulir `x-amz-server-side-encryption-bucket-key-enabled` untuk mengaktifkan atau nonaktifkan Kunci Bucket S3 untuk objek Anda.
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)— Saat Anda mengunggah objek besar dengan menggunakan operasi `CreateMultipartUpload` API dan mengonfigurasi SSE-KMS, Anda dapat menggunakan header `x-amz-server-side-encryption-bucket-key-enabled` permintaan untuk mengaktifkan atau menonaktifkan Kunci Bucket S3 untuk objek Anda.

Untuk mengaktifkan Kunci Bucket S3 pada tingkat objek, termasuk header permintaan `x-amz-server-side-encryption-bucket-key-enabled`. Untuk informasi selengkapnya tentang SSE-KMS dan API REST, lihat [Penggunaan API REST](specifying-kms-encryption.md#KMSUsingRESTAPI).

## Menggunakan AWS SDK for Java PutObject ()
<a name="bucket-key-object-sdk"></a>

Anda dapat menggunakan contoh berikut untuk mengonfigurasi Kunci Bucket S3 di tingkat objek menggunakan AWS SDK untuk Java.

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

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();

String bucketName = "amzn-s3-demo-bucket1";
String keyName = "key name for object";
String contents = "file contents";

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, contents)
    .withBucketKeyEnabled(true);
    
s3client.putObject(putObjectRequest);
```

------

## Menggunakan AWS CLI (PutObject)
<a name="bucket-key-object-cli"></a>

Anda dapat menggunakan AWS CLI contoh berikut untuk mengonfigurasi Kunci Bucket S3 di tingkat objek sebagai bagian dari `PutObject` permintaan.

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

# Melihat pengaturan untuk Kunci Bucket S3
<a name="viewing-bucket-key-settings"></a>

Anda dapat melihat setelan untuk Kunci Bucket S3 di tingkat bucket atau objek dengan menggunakan konsol Amazon S3, REST API,AWS CLI() AWS Command Line Interface , atau. AWS SDKs

S3 Bucket Keys mengurangi lalu lintas permintaan dari Amazon S3 AWS KMS ke dan mengurangi biaya penggunaan enkripsi sisi server (SSE-KMS). AWS Key Management Service Untuk informasi selengkapnya, lihat [Mengurangi biaya SSE-KMS dengan Kunci Bucket Amazon S3](bucket-key.md). 

Untuk melihat pengaturan Kunci Bucket S3 untuk bucket atau objek yang mewarisi pengaturan Kunci Bucket S3 dari konfigurasi bucket, Anda memerlukan izin untuk melakukan tindakan `s3:GetEncryptionConfiguration`. Untuk informasi selengkapnya, lihat [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) dalam *Referensi API Amazon Simple Storage Service*. 

## Menggunakan konsol S3
<a name="bucket-key-settings"></a>

Di konsol S3, Anda dapat melihat pengaturan Kunci Bucket S3 untuk bucket atau objek Anda. Pengaturan Kunci Bucket S3 diwarisi dari konfigurasi bucket kecuali objek sumber sudah memiliki Kunci Bucket S3 dikonfigurasi.

Objek dan folder dalam bucket yang sama dapat memiliki pengaturan Kunci Bucket S3 yang berbeda. Misalnya, jika Anda unggah objek menggunakan API REST dan mengaktifkan Kunci Bucket S3 untuk objek, objek mempertahankan pengaturan Kunci Bucket S3 di bucket tujuan, bahkan jika Kunci Bucket S3 dinonaktifkan di bucket tujuan. Sebagai contoh lain, jika Anda mengaktifkan kunci Bucket S3 untuk bucket yang ada, objek yang sudah ada di dalam bucket tidak menggunakan Kunci Bucket S3. Namun, objek baru memiliki kunci bucket S3 yang diaktifkan. 

**Untuk melihat pengaturan Kunci Bucket S3 untuk bucket Anda**

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. Di dalam daftar **Bucket**, pilih bucket yang ingin Anda aktifkan Kunci Bucket S3-nya.

1. Pilih **Properti**.

1. Di bagian **Enkripsi default**, di bawah **Kunci Bucket**, Anda melihat pengaturan Tombol Bucket S3 untuk bucket Anda.

   Jika Anda tidak dapat melihat pengaturan Kunci Bucket S3, Anda mungkin tidak memiliki izin untuk menjalankan tindakan `s3:GetEncryptionConfiguration`. Untuk informasi selengkapnya, lihat [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) dalam *Referensi API Amazon Simple Storage Service*. 

**Untuk melihat pengaturan Kunci Bucket S3 untuk bucket Anda**

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 dalam daftar **Bucket**, pilih bucket yang ingin Anda aktifkan Kunci Bucket S3-nya. 

1. Di daftar **Objek**, pilih nama objek Anda.

1. Di atas tab **Detail**, di bawah **Pengaturan enkripsi di sisi server**, memilih **Edit**. 

   Pada **Kunci Bucket**, Anda melihat pengaturan Kunci Bucket S3 untuk objek Anda. Anda tidak bisa mengedit pengaturan ini. 

## Menggunakan AWS CLI
<a name="bucket-key-settings-cli"></a>

**Untuk mengembalikan pengaturan Kunci Bucket S3 tingkat bucket**  
Untuk menggunakan contoh ini, ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.

```
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
```

Untuk informasi selengkapnya, lihat [get-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-encryption.html) dalam *AWS CLI Referensi Perintah*.

**Untuk mengembalikan pengaturan Kunci Bucket S3 tingkat objek**  
Untuk menggunakan contoh ini, ganti masing-masing `user input placeholder` dengan informasi Anda sendiri.

```
aws s3api head-object --bucket amzn-s3-demo-bucket1 --key my_images.tar.bz2
```

Untuk informasi selengkapnya, lihat [head-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-object.html) dalam *AWS CLI Referensi Perintah*.

## Penggunaan API REST
<a name="bucket-key-settings-rest"></a>

**Untuk mengembalikan pengaturan Kunci Bucket S3 tingkat bucket**  
Untuk mengembalikan informasi enkripsi untuk bucket, termasuk pengaturan untuk Kunci Bucket S3, gunakan operasi `GetBucketEncryption`. Pengaturan Kunci bucket S3 dikembalikan di badan respons di elemen `ServerSideEncryptionConfiguration` dengan pengaturan `BucketKeyEnabled`. Untuk informasi selengkapnya, lihat [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) di *Referensi API Amazon S3*. 

**Untuk mengembalikan pengaturan tingkat objek untuk Kunci Bucket S3**  
Untuk mengembalikan status Kunci Bucket S3 untuk objek, gunakan operasi `HeadObject`. `HeadObject` mengembalikan header respons `x-amz-server-side-encryption-bucket-key-enabled` untuk menunjukkan apakah Kunci Bucket S3 diaktifkan atau dinonaktifkan untuk objek. Untuk informasi selengkapnya, lihat [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) di *Referensi API Amazon S3*. 

Operasi API berikut juga mengembalikan header respons `x-amz-server-side-encryption-bucket-key-enabled` jika Kunci Bucket S3 dikonfigurasi untuk sebuah objek: 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 
+ [PostObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 
+ [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 
+ [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 
+ [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 
+ [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 

# Menggunakan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS
<a name="UsingDSSEncryption"></a>

Menggunakan enkripsi sisi server dua lapis dengan kunci AWS Key Management Service (AWS KMS) (DSSE-KMS) menerapkan dua lapisan enkripsi ke objek saat diunggah ke Amazon S3. DSSE-KMS membantu Anda agar lebih mudah memenuhi standar kepatuhan yang mengharuskan Anda untuk menerapkan enkripsi multilayer ke data Anda dan memiliki kontrol penuh atas kunci enkripsi Anda.

“Ganda” di DSSE-KMS mengacu pada dua lapisan independen enkripsi AES-256 yang diterapkan pada data Anda:
+ *Lapisan pertama:* Data Anda dienkripsi menggunakan kunci enkripsi data unik (DEK) yang dihasilkan oleh AWS KMS
+ *Lapisan kedua:* Data yang sudah dienkripsi dienkripsi lagi menggunakan kunci enkripsi AES-256 terpisah yang dikelola oleh Amazon S3

Ini berbeda dari SSE-KMS standar, yang hanya berlaku satu lapisan enkripsi. Pendekatan dual-layer memberikan keamanan yang ditingkatkan dengan memastikan bahwa bahkan jika satu lapisan enkripsi dikompromikan, data Anda akan tetap dilindungi oleh lapisan kedua. Keamanan tambahan ini dilengkapi dengan peningkatan overhead pemrosesan dan panggilan AWS KMS API, yang menyumbang biaya lebih tinggi dibandingkan dengan SSE-KMS standar. [Untuk informasi selengkapnya tentang harga DSSE-KMS, lihat [AWS KMS key konsep](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) di Panduan AWS Key Management Service Pengembang dan harga.AWS KMS](https://aws.amazon.com/kms/pricing)

Saat Anda menggunakan DSSE-KMS dengan bucket Amazon S3, AWS KMS kunci harus berada di Wilayah yang sama dengan bucket. Selain itu, ketika DSSE-KMS diminta untuk objek tersebut, checksum S3 yang merupakan bagian dari metadata objek disimpan dalam bentuk terenkripsi. Untuk informasi selengkapnya tentang checksum, lihat [Memeriksa integritas objek di Amazon S3](checking-object-integrity.md).

**catatan**  
Kunci Bucket S3 tidak didukung untuk DSSE-KMS.

Perbedaan utama antara DSSE-KMS dan SSE-KMS standar adalah:
+ **Lapisan enkripsi:** DSSE-KMS menerapkan dua lapisan independen enkripsi AES-256, sedangkan standar SSE-KMS menerapkan satu lapisan
+ **Keamanan:** DSSE-KMS memberikan perlindungan yang ditingkatkan terhadap potensi kerentanan enkripsi
+ **Kepatuhan:** DSSE-KMS membantu memenuhi persyaratan peraturan yang mengamanatkan enkripsi multilayer
+ **Kinerja:** DSSE-KMS memiliki latensi yang sedikit lebih tinggi karena pemrosesan enkripsi tambahan
+ **Biaya:** DSSE-KMS menimbulkan biaya yang lebih tinggi karena peningkatan overhead komputasi dan operasi tambahan AWS KMS 

**Memerlukan enkripsi sisi server dua lapis dengan (DSSE-KMS) AWS KMS keys**  
Untuk mewajibkan enkripsi di sisi server terhadap semua objek dalam bucket Amazon S3 tertentu, Anda dapat menggunakan kebijakan bucket. Misalnya, kebijakan bucket berikut menolak izin objek unggah (`s3:PutObject`) untuk semua orang jika permintaan tidak menyertakan header `x-amz-server-side-encryption` yang meminta enkripsi di sisi server dengan SSE-KMS.

------
#### [ JSON ]

****  

```
{
             "Version":"2012-10-17",		 	 	 
             "Id": "PutObjectPolicy",
             "Statement": [{
                   "Sid": "DenyUnEncryptedObjectUploads",
                   "Effect": "Deny",
                   "Principal": {
                       "AWS": "arn:aws:iam::111122223333:root"
                   },
                   "Action": "s3:PutObject",
                   "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
                   "Condition": {
                      "StringNotEquals": {
                         "s3:x-amz-server-side-encryption": "aws:kms:dsse"
                      }
                   }
                }
             ]
          }
```

------

**Topics**
+ [Menentukan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS](specifying-dsse-encryption.md)

# Menentukan enkripsi sisi server dual-layer dengan kunci (DSSE-KMS) AWS KMS
<a name="specifying-dsse-encryption"></a>

Anda dapat menerapkan enkripsi saat mengunggah objek baru, atau menyalin objek yang sudah ada. 

Anda dapat menentukan DSSE-KMS menggunakan konsol Amazon S3, Amazon S3 API REST, dan 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-dsse"></a>

Bagian ini menjelaskan cara mengatur atau mengubah jenis enkripsi objek untuk menggunakan enkripsi sisi server dua lapis dengan AWS Key Management Service (AWS KMS) kunci (DSSE-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**.

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

   1. Di bawah **Jenis enkripsi**, pilih **Enkripsi sisi server dual-layer dengan AWS Key Management Service kunci (DSSE-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 kunci KMS yang tersedia di Wilayah AWS yang 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 yang berbeda, Anda harus terlebih dahulu memiliki izin untuk menggunakan kunci tersebut, dan kemudian Anda harus memasukkan kunci KMS ARN.  
Amazon S3 hanya mendukung kunci KMS enkripsi simetris, dan tidak mendukung kunci KMS asimetris. Untuk informasi selengkapnya, lihat [Mengidentifikasi kunci KMS asimetris](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) dalam *Panduan Pengembang AWS Key Management Service *.

1. Untuk **Kunci Bucket**, pilih **Nonaktifkan**. Kunci Bucket S3 tidak didukung untuk DSSE-KMS.

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="DSSEUsingRESTAPI"></a>

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

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

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

### Operasi API REST Amazon S3 yang mendukung DSSE-KMS
<a name="dsse-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. Saat Anda melewati header DSSE-KMS dengan operasi `CopyObject`, itu diterapkan hanya untuk objek target. Saat Anda menyalin objek yang ada, terlepas dari apakah objek sumbernya dienkripsi atau tidak, objek tujuan tidak dienkripsi kecuali jika Anda secara eksplisit meminta enkripsi di sisi server.
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)–Saat Anda menggunakan operasi `POST` untuk mengunggah objek, alih-alih header permintaan, Anda memberikan informasi yang sama di kolom 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 unggahan multibagian, Anda dapat menentukan header ini dalam permintaan `CreateMultipartUpload`.

Header respons dari operasi API REST berikut mengembalikan header `x-amz-server-side-encryption` saat objek disimpan dengan 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)
+ [POST Objek](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 membuatnya dengan menggunakan Secure Sockets Layer (SSL), Transport Layer Security (TLS), atau Signature Version 4.
Jika objek Anda menggunakan DSSE-KMS, jangan mengirim header permintaan enkripsi untuk permintaan `GET` dan permintaan `HEAD`, atau Anda akan mendapatkan kesalahan HTTP 400 (Bad Request).

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

Jika Anda menentukan `x-amz-server-side-encryption:aws:kms:dsse`, 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 Amazon Resource Name (ARN) objek sebagai pasangan konteks enkripsi; misalnya, `arn:aws:s3:::object_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 bahwa itu tidak menyertakan informasi yang 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-dsse-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 `x-amz-server-side-encryption:aws:kms:dsse` header tetapi tidak memberikan `x-amz-server-side-encryption-aws-kms-key-id` header, Amazon S3 menggunakan Kunci yang dikelola AWS (`aws/s3`) untuk melindungi data. 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 *.

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

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

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

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

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --copy-source amzn-s3-demo-bucket/example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id
```

# Menggunakan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)
<a name="ServerSideEncryptionCustomerKeys"></a>

Enkripsi sisi-server adalah tentang melindungi data diam. Enkripsi di sisi server hanya mengenkripsi data objek, bukan metadata objek. Anda dapat menggunakan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) di bucket tujuan umum Anda untuk mengenkripsi data Anda dengan kunci enkripsi Anda sendiri. Dengan kunci enkripsi yang Anda sediakan sebagai bagian dari permintaan Anda, Amazon S3 mengelola enkripsi data saat menulis ke disk dan dekripsi data saat Anda mengakses objek Anda. Oleh karena itu, Anda tidak perlu menyimpan kode apa pun untuk melakukan enkripsi dan dekripsi data. Satu-satunya hal yang perlu Anda lakukan adalah mengelola kunci enkripsi yang Anda berikan. 

Sebagian besar kasus penggunaan modern di Amazon S3 tidak lagi menggunakan SSE-C karena tidak memiliki fleksibilitas enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci KMS (SSE-KMS). AWS Persyaratan SSE-C untuk menyediakan kunci enkripsi setiap kali Anda berinteraksi dengan data terenkripsi SSE-C Anda membuatnya tidak praktis untuk membagikan kunci SSE-C Anda dengan pengguna, peran, atau AWS layanan lain yang membaca data dari bucket S3 Anda agar dapat beroperasi pada data Anda. Karena dukungan luas untuk SSE-KMS AWS, sebagian besar beban kerja modern tidak menggunakan enkripsi SSE-C karena tidak memiliki fleksibilitas SSE-KMS. Untuk mempelajari lebih lanjut tentang SSE-KMS, lihat. [Menggunakan enkripsi sisi server dengan AWS KMS kunci (SSE-KMS)](UsingKMSEncryption.md)

Jika Anda ingin mencegah enkripsi SSE-C digunakan untuk objek yang ditulis ke bucket, Anda dapat memblokir enkripsi SSE-C saat mengubah konfigurasi enkripsi default bucket Anda. Ketika SSE-C diblokir untuk bucket tujuan umum, setiap,, `PutObject` `CopyObject``PostObject`, Multipart Upload atau permintaan replikasi yang menentukan enkripsi SSE-C akan ditolak dengan kesalahan. `HTTP 403 AccessDenied` Untuk mempelajari lebih lanjut tentang memblokir SSE-C, lihat. [Memblokir atau membuka blokir SSE-C untuk bucket tujuan umum](blocking-unblocking-s3-c-encryption-gpb.md)

Tidak ada biaya tambahan untuk penggunaan SSE-C. Namun, permintaan untuk mengonfigurasi dan menggunakan SSE-C dikenakan biaya permintaan Amazon S3 standar. Untuk informasi tentang harga, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru. Untuk informasi lebih lanjut tentang perubahan ini, lihat[Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md).

## Pertimbangan sebelum menggunakan SSE-C
<a name="considerations-before-using-sse-c"></a>
+ S3 tidak pernah menyimpan kunci enkripsi saat Anda menggunakan SSE-C. Anda harus menyediakan kunci enkripsi setiap kali Anda ingin siapa pun mengunduh data terenkripsi SSE-C Anda dari S3. 
  + Anda mengelola pemetaan kunci enkripsi mana yang digunakan untuk mengenkripsi objek yang ingin dituju. Anda bertanggung jawab untuk melacak kunci enkripsi yang Anda berikan untuk objek yang ingin dituju. Itu juga berarti jika Anda kehilangan kunci enkripsi, Anda kehilangan objek. 
  + Karena Anda mengelola kunci enkripsi di sisi klien, Anda mengelola perlindungan tambahan, seperti rotasi utama, di sisi klien. 
  + Desain ini dapat mempersulit berbagi kunci SSE-C Anda dengan pengguna, peran, atau AWS layanan lain yang Anda operasikan pada data Anda. Karena dukungan luas untuk SSE-KMS AWS, sebagian besar beban kerja modern tidak menggunakan SSE-C karena tidak memiliki fleksibilitas SSE-KMS. Untuk mempelajari lebih lanjut tentang SSE-KMS, lihat [Menggunakan enkripsi sisi server dengan kunci KMS (SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)). AWS 
  + Ini berarti bahwa objek yang dienkripsi dengan SSE-C tidak dapat didekripsi secara native oleh layanan terkelola. AWS 
+ Anda harus menggunakan HTTPS saat menentukan header SSE-C pada permintaan Anda.
  + Amazon S3 menolak permintaan apa pun yang dibuat melalui HTTP saat menggunakan SSE-C. Untuk pertimbangan keamanan, kami menyarankan Anda mempertimbangkan kunci apa pun yang salah Anda kirimkan melalui HTTP telah disusupi. Buang kuncinya dan putar seperlunya. 
+ Jika bucket Anda mengaktifkan versi, setiap versi objek yang Anda unggah dapat memiliki kunci enkripsi sendiri. Anda bertanggung jawab untuk melacak kunci enkripsi yang Anda berikan untuk objek yang ingin dituju. 
+ SSE-C tidak didukung di Konsol Amazon S3. Anda tidak dapat menggunakan konsol Amazon S3 untuk mengunggah objek dan menentukan enkripsi SSE-C. Anda juga tidak dapat menggunakan konsol untuk memperbarui (misalnya, mengubah kelas penyimpanan atau menambahkan metadata) objek yang ada yang disimpan menggunakan SSE-C. 

**Topics**
+ [Pertimbangan sebelum menggunakan SSE-C](#considerations-before-using-sse-c)
+ [Menentukan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)](specifying-s3-c-encryption.md)
+ [Memblokir atau membuka blokir SSE-C untuk bucket tujuan umum](blocking-unblocking-s3-c-encryption-gpb.md)
+ [Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md)

# Menentukan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)
<a name="specifying-s3-c-encryption"></a>

Untuk menggunakan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) terlebih dahulu pastikan bahwa SSE-C bukan jenis enkripsi yang diblokir dalam konfigurasi enkripsi default bucket tujuan umum Amazon S3 Anda. Jika diblokir, Anda dapat mengaktifkan jenis enkripsi ini dengan memperbarui konfigurasi enkripsi default untuk bucket. Kemudian, Anda dapat menggunakan SSE-C dalam permintaan unggahan Anda dengan meneruskan header yang diperlukan. Lihat[Tindakan Amazon S3 yang mendukung penulisan data dengan SSE-C](#amazon-s3-actions-that-support-writing-data-with-sse-c), dan pastikan untuk menyertakan[Header API S3 diperlukan untuk enkripsi objek SSE-C dan permintaan dekripsi](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests). 

Saat Anda mengunggah objek yang menentukan SSE-C, Amazon S3 menggunakan kunci enkripsi yang Anda berikan untuk menerapkan enkripsi AES-256 ke data Anda. Amazon S3 kemudian menghapus kunci enkripsi dari memori. Saat mengambil sebuah objek, Anda harus memberikan kunci enkripsi yang sama sebagai bagian dari permintaan Anda. Amazon S3 pertama-tama memverifikasi bahwa kunci enkripsi yang Anda berikan cocok, lalu mendekripsi objek sebelum mengembalikan data objek kepada Anda. 

Sebelum menggunakan SSE-C, pastikan Anda telah meninjau. [Pertimbangan sebelum menggunakan SSE-C](ServerSideEncryptionCustomerKeys.md#considerations-before-using-sse-c)

**catatan**  
Amazon S3 tidak menyimpan kunci enkripsi yang Anda sediakan. Sebaliknya, ia menyimpan nilai Kode Autentikasi Pesan Berbasis Hash (HMAC) salted secara acak dari kunci enkripsi untuk memvalidasi permintaan di masa mendatang. Nilai HMAC salted tidak dapat digunakan untuk mendapatkan nilai kunci enkripsi atau untuk mendekripsi konten objek terenkripsi. Artinya, jika Anda kehilangan kunci enkripsi, Anda akan kehilangan objek.

**Topics**
+ [Tindakan SSE-C dan Header yang Diperlukan](#sse-c-actions-and-required-headers)
+ [Contoh kebijakan bucket untuk menegakkan enkripsi SSE-C](#example-bucket-policy-to-enforce-sse-c-encryption)
+ [Presigned URLs dan SSE-C](#ssec-and-presignedurl)
+ [Membuat permintaan dengan SSE-C](#making-requests-with-sse-c)
+ [Penggunaan API REST](#using-rest-api-sse-c)
+ [Menggunakan AWS SDKs untuk menentukan SSE-C untuk operasi PUT, GET, Head, dan Copy](#sse-c-using-sdks)
+ [Menggunakan AWS SDKs untuk menentukan SSE-C untuk unggahan multipart](#sse-c-using-sdks-multipart-uploads)

## Tindakan SSE-C dan Header yang Diperlukan
<a name="sse-c-actions-and-required-headers"></a>

Menentukan SSE-C pada S3 yang didukung APIs memerlukan melewati parameter permintaan tertentu. 

**catatan**  
`PutBucketEncryption`API di Amazon S3 digunakan untuk mengonfigurasi enkripsi sisi server default untuk bucket. Namun, `PutBucketEncryption` tidak mendukung pengaktifan SSE-C sebagai metode enkripsi default untuk bucket. SSE-C adalah metode enkripsi tingkat objek tempat Anda memberikan kunci enkripsi ke Amazon S3 dengan setiap permintaan unggahan atau unduhan objek. Amazon S3 menggunakan kunci ini untuk mengenkripsi atau mendekripsi objek selama permintaan dan kemudian membuang kuncinya. Ini berarti SSE-C diaktifkan berdasarkan per-objek, bukan sebagai pengaturan bucket default. 

### Tindakan Amazon S3 yang mendukung penulisan data dengan SSE-C
<a name="amazon-s3-actions-that-support-writing-data-with-sse-c"></a>

Anda dapat meminta enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) saat menulis objek ke bucket tujuan umum dengan menggunakan operasi atau tindakan API berikut: 
+ [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_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.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/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [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_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)

**catatan**  
S3 Replication mendukung objek yang dienkripsi dengan SSE-C. Untuk informasi selengkapnya tentang mereplikasi objek terenkripsi, lihat [Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

### Header API S3 diperlukan untuk enkripsi objek SSE-C dan permintaan dekripsi
<a name="s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests"></a>

Anda harus menyediakan tiga header API berikut untuk mengenkripsi atau mendekripsi objek dengan SSE-C: 
+ `x-amz-server-side-encryption-customer-algorithm`Gunakan header ini untuk menentukan algoritma enkripsi. Nilai header harus berupa AES256.
+ `x-amz-server-side-encryption-customer-key`Gunakan header ini untuk menyediakan kunci enkripsi 256-bit yang disandikan base64 untuk Amazon S3 untuk digunakan untuk mengenkripsi atau mendekripsi data Anda.
+ `x-amz-server-side-encryption-customer-key-MD5`Gunakan header ini untuk memberikan MD5 intisari 128-bit yang dikodekan base64 dari kunci enkripsi menurut RFC 1321. Amazon S3 menggunakan header ini untuk pemeriksaan integritas pesan guna memastikan bahwa kunci enkripsi dikirimkan tanpa kesalahan.

### Header API S3 diperlukan untuk permintaan untuk menyalin objek sumber yang dienkripsi dengan SSE-C
<a name="s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c"></a>

Anda harus menyediakan tiga header API berikut untuk menyalin objek sumber yang dienkripsi dengan SSE-C: 
+ `x-amz-copy-source-server-side-encryption-customer-algorithm`Sertakan header ini untuk menentukan algoritme yang harus digunakan Amazon S3 untuk mendekripsi objek sumber. Nilai ini harus berupa AES256.
+ `x-amz-copy-source-server-side-encryption-customer-key`Sertakan header ini untuk menyediakan kunci enkripsi berenkode base64 untuk Amazon S3 untuk digunakan untuk mendekripsi objek sumber. Kunci enkripsi ini harus berupa kunci yang Anda berikan kepada Amazon S3 saat membuat objek sumber. Jika tidak, Amazon S3 tidak dapat mendekripsi objeknya.
+ `x-amz-copy-source-server-side-encryption-customer-key-MD5`Sertakan header ini untuk memberikan MD5 intisari 128-bit yang dikodekan base64 dari kunci enkripsi menurut RFC 1321.

## Contoh kebijakan bucket untuk menegakkan enkripsi SSE-C
<a name="example-bucket-policy-to-enforce-sse-c-encryption"></a>

Untuk mewajibkan SSE-C untuk semua objek yang ditulis ke bucket Amazon S3, Anda dapat menggunakan kebijakan bucket. Misalnya, kebijakan bucket berikut menolak izin unggah objek (`s3:PutObject`) untuk semua permintaan yang tidak menyertakan header `x-amz-server-side-encryption-customer-algorithm` yang meminta SSE-C. 

```
{  
"Version":"2012-10-17",		 	 	                      
    "Id": "PutObjectPolicy",  
    "Statement": [  
        {  
"Sid": "RequireSSECObjectUploads",  
            "Effect": "Deny",  
            "Principal": "*",  
            "Action": "s3:PutObject",  
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",  
            "Condition": {  
            "Null": {  
              "s3:x-amz-server-side-encryption-customer-algorithm": "true"  
                }  
            }  
        }  
    ]  
}
```

**penting**  
Jika Anda menggunakan kebijakan bucket untuk mengharuskan SSE-C aktif`s3:PutObject`, Anda harus menyertakan `x-amz-server-side-encryption-customer-algorithm` header di semua permintaan unggahan multibagian (CreateMultipartUpload, UploadPart, dan). CompleteMultipartUpload 

## Presigned URLs dan SSE-C
<a name="ssec-and-presignedurl"></a>

Anda dapat membuat URL yang telah ditandatangani sebelumnya yang dapat digunakan untuk operasi seperti mengunggah objek baru, mengambil objek yang sudah ada, atau mengambil metadata objek. URLsDukungan presigned SSE-C sebagai berikut:
+ Saat membuat URL yang telah ditandatangani, Anda harus menentukan algoritma dengan menggunakan header `x-amz-server-side-encryption-customer-algorithm` dalam perhitungan tanda tangan.
+ Saat menggunakan URL yang ditandatangani sebelumnya untuk mengunggah objek baru, mengambil objek yang sudah ada, atau mengambil metadata objek saja, Anda harus memberikan semua header enkripsi dalam permintaan aplikasi klien. 
**catatan**  
Untuk non-SSE-C objek, Anda dapat membuat URL yang telah ditetapkan sebelumnya dan langsung menempelkan URL tersebut ke browser untuk mengakses data.   
Namun, Anda tidak dapat melakukan ini untuk objek SSE-C, karena selain URL yang ditandatangani sebelumnya, Anda juga harus menyertakan header HTTP yang kustom untuk objek SSE-C. Oleh karena itu, Anda dapat menggunakan presigned URLs untuk objek SSE-C hanya secara terprogram.

Untuk informasi lebih lanjut tentang presigned URLs, lihat[Unduh dan unggah objek dengan presigned URLs](using-presigned-url.md).

## Membuat permintaan dengan SSE-C
<a name="making-requests-with-sse-c"></a>

 Pada saat pembuatan objek dengan API REST, Anda dapat menentukan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C). Ketika Anda menggunakan SSE-C, Anda harus memberikan informasi kunci enkripsi menggunakan. [Header API S3 diperlukan untuk permintaan untuk menyalin objek sumber yang dienkripsi dengan SSE-C](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c) Anda dapat menggunakan pustaka pembungkus AWS SDK untuk menambahkan header ini ke permintaan Anda. Jika perlu, Anda dapat melakukan panggilan API REST Amazon S3 secara langsung di aplikasi Anda.

**penting**  
Sebelum menentukan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C), pastikan bahwa enkripsi SSE-C tidak diblokir untuk bucket tujuan umum Anda. Untuk informasi selengkapnya, lihat [Memblokir atau membuka blokir SSE-C untuk bucket tujuan umum](blocking-unblocking-s3-c-encryption-gpb.md).

**catatan**  
Anda tidak dapat menggunakan konsol Amazon S3 untuk mengunggah objek dan meminta SSE-C. Anda juga tidak dapat menggunakan konsol untuk memperbarui (misalnya, mengubah kelas penyimpanan atau menambahkan metadata) objek yang ada yang disimpan menggunakan SSE-C. Untuk informasi lebih lanjut, lihat[Header API S3 diperlukan untuk enkripsi objek SSE-C dan permintaan dekripsi](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests). 

## Penggunaan API REST
<a name="using-rest-api-sse-c"></a>

### Amazon S3 REST yang mendukung APIs SSE-C
<a name="sse-c-supported-apis"></a>

Amazon S3 berikut APIs mendukung enkripsi sisi server dengan kunci enkripsi yang disediakan pelanggan (SSE-C).
+ **GET operation**–Saat mengambil objek menggunakan API GET (lihat [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)), Anda dapat menentukan header permintaan.
+ **HEAD operation**–Untuk mengambil metadata objek menggunakan API HEAD (lihat [HEAD Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)), Anda dapat menentukan header permintaan ini.
+ **PUT operation**–Saat Anda mengunggah data dengan menggunakan API PUT Objek (lihat [PUT Objek](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)), Anda dapat menentukan header permintaan ini. 
+ **Unggahan Multibagian**–Saat mengunggah objek yang berukuran besar menggunakan API unggahan multibagian, Anda dapat menentukan header ini. [Anda menentukan header ini dalam permintaan inisiat (lihat Memulai [Unggahan Multibagian) dan setiap permintaan unggahan](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html) bagian berikutnya (lihat Bagian Unggah atau). [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html) Untuk setiap permintaan unggahan bagian, informasi enkripsi harus sama dengan yang Anda berikan dalam permintaan unggahan multibagian.
+ **POST operation**–Saat menggunakan POST operation untuk mengunggah objek (lihat [Objek POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)), alih-alih dengan header permintaan, Anda memberikan informasi yang sama di dalam bidang formulir.
+ **Salin operasi** — Saat Anda menyalin objek (lihat [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)), Anda memiliki objek sumber dan objek target:
  + Jika Anda ingin menentukan jenis enkripsi objek target, Anda harus memberikan header `x-amz-server-side-encryption ` permintaan.
  + Jika Anda ingin objek target dienkripsi menggunakan SSE-C, Anda harus memberikan informasi enkripsi menggunakan S3 API. [Header API S3 diperlukan untuk enkripsi objek SSE-C dan permintaan dekripsi](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests)
  + Jika objek sumber dienkripsi menggunakan SSE-C, Anda harus memberikan informasi kunci enkripsi menggunakan header S3 API. [Header API S3 diperlukan untuk permintaan untuk menyalin objek sumber yang dienkripsi dengan SSE-C](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c)

## Menggunakan AWS SDKs untuk menentukan SSE-C untuk operasi PUT, GET, Head, dan Copy
<a name="sse-c-using-sdks"></a>

Contoh berikut ini menunjukkan cara untuk meminta enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk objek. Contoh melakukan operasi berikut. Setiap operasi menunjukkan cara menentukan SSE-C-related header dalam permintaan:
+ **Put objek**–Mengunggah objek dan meminta enkripsi di sisi server menggunakan kunci enkripsi yang disediakan pelanggan.
+ **Get object**–Mengunduh objek yang diunggah dalam langkah sebelumnya. Dalam permintaan tersebut, Anda memberikan informasi enkripsi yang sama dengan yang Anda berikan saat unggah objek tersebut. Amazon S3 memerlukan informasi ini untuk mendekripsi objek sehingga dapat mengembalikannya kepada Anda.
+ **Get object metadata**–Mengambil metadata objek. Anda memberikan informasi enkripsi yang sama, yang digunakan saat objek tersebut dibuat.
+ **Copy object**–Membuat salinan dari objek yang diunggah sebelumnya. Karena objek sumber disimpan menggunakan SSE-C, Anda harus memberikan informasi enkripsinya dalam permintaan salinan Anda. Secara default, Amazon S3 mengenkripsi salinan objek hanya jika Anda secara eksplisit memintanya. Contoh ini mengarahkan Amazon S3 untuk menyimpan salinan objek yang dienkripsi.

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

**catatan**  
Contoh ini menunjukkan cara untuk mengunggah objek dalam satu operasi. Saat menggunakan API Unggahan Multibagian untuk mengunggah objek besar, Anda memberikan informasi enkripsi dengan cara yang sama seperti yang ditunjukkan dalam contoh ini. Untuk contoh unggahan multipart yang menggunakan file AWS SDK untuk Java, lihat. [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md)

Untuk menambahkan informasi enkripsi yang diperlukan, Anda menyertakan `SSECustomerKey` dalam permintaan Anda. Untuk informasi selengkapnya tentang kelas `SSECustomerKey`, lihat bagian API REST.

Untuk petunjuk cara membuat dan menguji sampel yang berfungsi, lihat [Memulai](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) di Panduan AWS SDK untuk Java Pengembang.

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import javax.crypto.KeyGenerator;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class ServerSideEncryptionUsingClientSideEncryptionKey {
    private static SSECustomerKey SSE_KEY;
    private static AmazonS3 S3_CLIENT;
    private static KeyGenerator KEY_GENERATOR;

    public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyName = "*** Key name ***";
        String uploadFileName = "*** File path ***";
        String targetKeyName = "*** Target key name ***";

        // Create an encryption key.
        KEY_GENERATOR = KeyGenerator.getInstance("AES");
        KEY_GENERATOR.init(256, new SecureRandom());
        SSE_KEY = new SSECustomerKey(KEY_GENERATOR.generateKey());

        try {
            S3_CLIENT = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Upload an object.
            uploadObject(bucketName, keyName, new File(uploadFileName));

            // Download the object.
            downloadObject(bucketName, keyName);

            // Verify that the object is properly encrypted by attempting to retrieve it
            // using the encryption key.
            retrieveObjectMetadata(bucketName, keyName);

            // Copy the object into a new object that also uses SSE-C.
            copyObject(bucketName, keyName, targetKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObject(String bucketName, String keyName, File file) {
        PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSECustomerKey(SSE_KEY);
        S3_CLIENT.putObject(putRequest);
        System.out.println("Object uploaded");
    }

    private static void downloadObject(String bucketName, String keyName) throws IOException {
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, keyName).withSSECustomerKey(SSE_KEY);
        S3Object object = S3_CLIENT.getObject(getObjectRequest);

        System.out.println("Object content: ");
        displayTextInputStream(object.getObjectContent());
    }

    private static void retrieveObjectMetadata(String bucketName, String keyName) {
        GetObjectMetadataRequest getMetadataRequest = new GetObjectMetadataRequest(bucketName, keyName)
                .withSSECustomerKey(SSE_KEY);
        ObjectMetadata objectMetadata = S3_CLIENT.getObjectMetadata(getMetadataRequest);
        System.out.println("Metadata retrieved. Object size: " + objectMetadata.getContentLength());
    }

    private static void copyObject(String bucketName, String keyName, String targetKeyName)
            throws NoSuchAlgorithmException {
        // Create a new encryption key for target so that the target is saved using
        // SSE-C.
        SSECustomerKey newSSEKey = new SSECustomerKey(KEY_GENERATOR.generateKey());

        CopyObjectRequest copyRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName)
                .withSourceSSECustomerKey(SSE_KEY)
                .withDestinationSSECustomerKey(newSSEKey);

        S3_CLIENT.copyObject(copyRequest);
        System.out.println("Object copied");
    }

    private static void displayTextInputStream(S3ObjectInputStream input) throws IOException {
        // Read one line at a time from the input stream and display each line.
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        System.out.println();
    }
}
```

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

**catatan**  
Untuk contoh pengunggahan objek besar menggunakan API unggahan multibagian, lihat [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md) dan [Menggunakan AWS SDKs (API tingkat rendah)](mpu-upload-object.md#mpu-upload-low-level).

Untuk informasi tentang menyiapkan dan menjalankan contoh kode, lihat [Memulai SDK for .NET di AWSAWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET *Developer Guide*. 

**Example**  

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SSEClientEncryptionKeyObjectOperationsTest
    {
        private const string bucketName = "*** bucket name ***"; 
        private const string keyName = "*** key name for new object created ***"; 
        private const string copyTargetKeyName = "*** key name for object copy ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            ObjectOpsUsingClientEncryptionKeyAsync().Wait();
        }
        private static async Task ObjectOpsUsingClientEncryptionKeyAsync()
        {
            try
            {
                // Create an encryption key.
                Aes aesEncryption = Aes.Create();
                aesEncryption.KeySize = 256;
                aesEncryption.GenerateKey();
                string base64Key = Convert.ToBase64String(aesEncryption.Key);

                // 1. Upload the object.
                PutObjectRequest putObjectRequest = await UploadObjectAsync(base64Key);
                // 2. Download the object and verify that its contents matches what you uploaded.
                await DownloadObjectAsync(base64Key, putObjectRequest);
                // 3. Get object metadata and verify that the object uses AES-256 encryption.
                await GetObjectMetadataAsync(base64Key);
                // 4. Copy both the source and target objects using server-side encryption with 
                //    a customer-provided encryption key.
                await CopyObjectAsync(aesEncryption, base64Key);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        private static async Task<PutObjectRequest> UploadObjectAsync(string base64Key)
        {
            PutObjectRequest putObjectRequest = new PutObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                ContentBody = "sample text",
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };
            PutObjectResponse putObjectResponse = await client.PutObjectAsync(putObjectRequest);
            return putObjectRequest;
        }
        private static async Task DownloadObjectAsync(string base64Key, PutObjectRequest putObjectRequest)
        {
            GetObjectRequest getObjectRequest = new GetObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                // Provide encryption information for the object stored in Amazon S3.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            using (GetObjectResponse getResponse = await client.GetObjectAsync(getObjectRequest))
            using (StreamReader reader = new StreamReader(getResponse.ResponseStream))
            {
                string content = reader.ReadToEnd();
                if (String.Compare(putObjectRequest.ContentBody, content) == 0)
                    Console.WriteLine("Object content is same as we uploaded");
                else
                    Console.WriteLine("Error...Object content is not same.");

                if (getResponse.ServerSideEncryptionCustomerMethod == ServerSideEncryptionCustomerMethod.AES256)
                    Console.WriteLine("Object encryption method is AES256, same as we set");
                else
                    Console.WriteLine("Error...Object encryption method is not the same as AES256 we set");

                // Assert.AreEqual(putObjectRequest.ContentBody, content);
                // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getResponse.ServerSideEncryptionCustomerMethod);
            }
        }
        private static async Task GetObjectMetadataAsync(string base64Key)
        {
            GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest
            {
                BucketName = bucketName,
                Key = keyName,

                // The object stored in Amazon S3 is encrypted, so provide the necessary encryption information.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            GetObjectMetadataResponse getObjectMetadataResponse = await client.GetObjectMetadataAsync(getObjectMetadataRequest);
            Console.WriteLine("The object metadata show encryption method used is: {0}", getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
            // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
        }
        private static async Task CopyObjectAsync(Aes aesEncryption, string base64Key)
        {
            aesEncryption.GenerateKey();
            string copyBase64Key = Convert.ToBase64String(aesEncryption.Key);

            CopyObjectRequest copyRequest = new CopyObjectRequest
            {
                SourceBucket = bucketName,
                SourceKey = keyName,
                DestinationBucket = bucketName,
                DestinationKey = copyTargetKeyName,
                // Information about the source object's encryption.
                CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                CopySourceServerSideEncryptionCustomerProvidedKey = base64Key,
                // Information about the target object's encryption.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = copyBase64Key
            };
            await client.CopyObjectAsync(copyRequest);
        }
    }
}
```

------

## Menggunakan AWS SDKs untuk menentukan SSE-C untuk unggahan multipart
<a name="sse-c-using-sdks-multipart-uploads"></a>

Contoh di bagian sebelumnya menunjukkan cara meminta enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C) dalam operasi PUT, GET, Head, dan Copy. Bagian ini menjelaskan Amazon S3 lain APIs yang mendukung SSE-C.

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

Untuk mengunggah objek besar, Anda dapat menggunakan unggahan APIs multipart. Untuk informasi selengkapnya, lihat [Mengunggah dan menyalin objek menggunakan unggahan multipart di Amazon S3](mpuoverview.md). Anda dapat menggunakan level tinggi atau level rendah APIs untuk mengunggah objek besar. Ini APIs mendukung header terkait enkripsi dalam permintaan.
+ Saat menggunakan `TransferManager` API tingkat tinggi, Anda menyediakan header khusus enkripsi di. `PutObjectRequest` Untuk informasi selengkapnya, lihat [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md). 
+ Saat menggunakan API tingkat rendah, Anda memberikan informasi terkait enkripsi pada `InitiateMultipartUploadRequest`, diikuti dengan informasi enkripsi identik pada setiap `UploadPartRequest`. Anda tidak perlu memberikan header kustom enkripsi apa pun dalam `CompleteMultipartUploadRequest` Anda. Sebagai contoh, lihat [Menggunakan AWS SDKs (API tingkat rendah)](mpu-upload-object.md#mpu-upload-low-level). 

Contoh berikut menggunakan `TransferManager` untuk membuat objek dan menunjukkan cara memberikan informasi terkait SSE-C. Contoh ini melakukan hal berikut:
+ Membuat objek menggunakan metode `TransferManager.upload()`. Dalam `PutObjectRequest` contoh, Anda memberikan informasi kunci enkripsi dalam permintaan. Amazon S3 mengenkripsi objek menggunakan kunci yang disediakan pelanggan.
+ Membuat salinan objek dengan memanggil metode `TransferManager.copy()`. Contoh tersebut mengarahkan Amazon S3 untuk mengenkripsi salinan objek menggunakan `SSECustomerKey` yang baru. Karena objek sumber dienkripsi menggunakan SSE-C, `CopyObjectRequest` juga menyediakan kunci enkripsi objek sumber sehingga Amazon S3 dapat mendekripsi objek tersebut sebelum menyalinnya. 

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.SSECustomerKey;
import com.amazonaws.services.s3.transfer.Copy;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.TransferManagerBuilder;
import com.amazonaws.services.s3.transfer.Upload;

import javax.crypto.KeyGenerator;
import java.io.File;
import java.security.SecureRandom;

public class ServerSideEncryptionCopyObjectUsingHLwithSSEC {

    public static void main(String[] args) throws Exception {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String fileToUpload = "*** File path ***";
        String keyName = "*** New object key name ***";
        String targetKeyName = "*** Key name for object copy ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();
            TransferManager tm = TransferManagerBuilder.standard()
                    .withS3Client(s3Client)
                    .build();

            // Create an object from a file.
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, new File(fileToUpload));

            // Create an encryption key.
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
            keyGenerator.init(256, new SecureRandom());
            SSECustomerKey sseCustomerEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());

            // Upload the object. TransferManager uploads asynchronously, so this call
            // returns immediately.
            putObjectRequest.setSSECustomerKey(sseCustomerEncryptionKey);
            Upload upload = tm.upload(putObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            upload.waitForCompletion();
            System.out.println("Object created.");

            // Copy the object and store the copy using SSE-C with a new key.
            CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName);
            SSECustomerKey sseTargetObjectEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());
            copyObjectRequest.setSourceSSECustomerKey(sseCustomerEncryptionKey);
            copyObjectRequest.setDestinationSSECustomerKey(sseTargetObjectEncryptionKey);

            // Copy the object. TransferManager copies asynchronously, so this call returns
            // immediately.
            Copy copy = tm.copy(copyObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            copy.waitForCompletion();
            System.out.println("Copy complete.");
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

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

Untuk mengunggah objek besar, Anda dapat menggunakan API unggahan multibagian (lihat[Mengunggah dan menyalin objek menggunakan unggahan multipart di Amazon S3](mpuoverview.md)). AWS SDK for .NET menyediakan level tinggi atau APIs level rendah untuk mengunggah objek besar. Ini APIs mendukung header terkait enkripsi dalam permintaan.
+ Saat menggunakan API `Transfer-Utility ` tingkat tinggi, Anda menyediakan header kustom enkripsi di `TransferUtilityUploadRequest` seperti yang ditunjukkan. Untuk contoh kode, lihat [Pengunggahan objek menggunakan unggahan multibagian](mpu-upload-object.md).

  ```
  TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
  {
      FilePath = filePath,
      BucketName = existingBucketName,
      Key = keyName,
      // Provide encryption information.
      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
      ServerSideEncryptionCustomerProvidedKey = base64Key,
  };
  ```
+ Saat menggunakan API tingkat rendah, Anda memberikan informasi terkait enkripsi dalam memulai permintaan unggahan multibagian, diikuti dengan informasi enkripsi yang sama dalam permintaan bagian unggahan berikutnya. Anda tidak perlu memberikan header kustom enkripsi apa pun dalam permintaan pengunggahan multibagian lengkap Anda. Sebagai contoh, lihat [Menggunakan AWS SDKs (API tingkat rendah)](mpu-upload-object.md#mpu-upload-low-level).

  Berikut ini adalah contoh pengunggahan multibagian tingkat rendah yang membuat salinan objek besar yang sudah ada. Pada contoh, objek yang akan disalin disimpan di Amazon S3 menggunakan SSE-C, dan Anda ingin menyimpan objek target juga menggunakan SSE-C. Dalam contoh ini, Anda melakukan hal berikut:
  + Mulai permintaan pengunggahan multibagian dengan memberikan kunci enkripsi dan informasi terkait.
  + Menyediakan kunci enkripsi objek sumber dan sasaran serta informasi terkait dalam `CopyPartRequest`.
  + Dapatkan ukuran objek sumber yang akan disalin dengan mengambil metadata objek.
  + Unggah objek ke dalam bagian 5 MB.  
**Example**  

  ```
  using Amazon;
  using Amazon.S3;
  using Amazon.S3.Model;
  using System;
  using System.Collections.Generic;
  using System.IO;
  using System.Security.Cryptography;
  using System.Threading.Tasks;
  
  namespace Amazon.DocSamples.S3
  {
      class SSECLowLevelMPUcopyObjectTest
      {
          private const string existingBucketName = "*** bucket name ***";
          private const string sourceKeyName      = "*** source object key name ***"; 
          private const string targetKeyName      = "*** key name for the target object ***";
          private const string filePath           = @"*** file path ***";
          // Specify your bucket region (an example region is shown).
          private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
          private static IAmazonS3 s3Client;
          static void Main()
          {
              s3Client = new AmazonS3Client(bucketRegion);
              CopyObjClientEncryptionKeyAsync().Wait();
          }
  
          private static async Task CopyObjClientEncryptionKeyAsync()
          {
              Aes aesEncryption = Aes.Create();
              aesEncryption.KeySize = 256;
              aesEncryption.GenerateKey();
              string base64Key = Convert.ToBase64String(aesEncryption.Key);
  
              await CreateSampleObjUsingClientEncryptionKeyAsync(base64Key, s3Client);
  
              await CopyObjectAsync(s3Client, base64Key);
          }
          private static async Task CopyObjectAsync(IAmazonS3 s3Client, string base64Key)
          {
              List<CopyPartResponse> uploadResponses = new List<CopyPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = targetKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key,
              };
  
              InitiateMultipartUploadResponse initResponse =
                  await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
              long firstByte = 0;
              long lastByte = partSize;
  
              try
              {
                  // First find source object size. Because object is stored encrypted with
                  // customer provided key you need to provide encryption information in your request.
                  GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest()
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                      ServerSideEncryptionCustomerProvidedKey = base64Key // " * **source object encryption key ***"
                  };
  
                  GetObjectMetadataResponse getObjectMetadataResponse = await s3Client.GetObjectMetadataAsync(getObjectMetadataRequest);
  
                  long filePosition = 0;
                  for (int i = 1; filePosition < getObjectMetadataResponse.ContentLength; i++)
                  {
                      CopyPartRequest copyPartRequest = new CopyPartRequest
                      {
                          UploadId = initResponse.UploadId,
                          // Source.
                          SourceBucket = existingBucketName,
                          SourceKey = sourceKeyName,
                          // Source object is stored using SSE-C. Provide encryption information.
                          CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          CopySourceServerSideEncryptionCustomerProvidedKey = base64Key, //"***source object encryption key ***",
                          FirstByte = firstByte,
                          // If the last part is smaller then our normal part size then use the remaining size.
                          LastByte = lastByte > getObjectMetadataResponse.ContentLength ?
                              getObjectMetadataResponse.ContentLength - 1 : lastByte,
  
                          // Target.
                          DestinationBucket = existingBucketName,
                          DestinationKey = targetKeyName,
                          PartNumber = i,
                          // Encryption information for the target object.
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
                      uploadResponses.Add(await s3Client.CopyPartAsync(copyPartRequest));
                      filePosition += partSize;
                      firstByte += partSize;
                      lastByte += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId,
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId
                  };
                  s3Client.AbortMultipartUpload(abortMPURequest);
              }
          }
          private static async Task CreateSampleObjUsingClientEncryptionKeyAsync(string base64Key, IAmazonS3 s3Client)
          {
              // List to store upload part responses.
              List<UploadPartResponse> uploadResponses = new List<UploadPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = sourceKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key
              };
  
              InitiateMultipartUploadResponse initResponse =
                 await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long contentLength = new FileInfo(filePath).Length;
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
  
              try
              {
                  long filePosition = 0;
                  for (int i = 1; filePosition < contentLength; i++)
                  {
                      UploadPartRequest uploadRequest = new UploadPartRequest
                      {
                          BucketName = existingBucketName,
                          Key = sourceKeyName,
                          UploadId = initResponse.UploadId,
                          PartNumber = i,
                          PartSize = partSize,
                          FilePosition = filePosition,
                          FilePath = filePath,
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
  
                      // Upload part and add response to our list.
                      uploadResponses.Add(await s3Client.UploadPartAsync(uploadRequest));
  
                      filePosition += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId,
                      //PartETags = new List<PartETag>(uploadResponses)
  
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
  
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId
                  };
                  await s3Client.AbortMultipartUploadAsync(abortMPURequest);
              }
          }
      }
  }
  ```

------

# Memblokir atau membuka blokir SSE-C untuk bucket tujuan umum
<a name="blocking-unblocking-s3-c-encryption-gpb"></a>

Sebagian besar kasus penggunaan modern di Amazon S3 tidak lagi menggunakan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) karena tidak memiliki fleksibilitas enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci KMS (SSE-KMS). AWS Persyaratan SSE-C untuk menyediakan kunci enkripsi setiap kali Anda berinteraksi dengan data terenkripsi SSE-C Anda membuatnya tidak praktis untuk membagikan kunci SSE-C Anda dengan pengguna, peran, atau AWS layanan lain yang membaca data dari bucket S3 Anda agar dapat beroperasi pada data Anda.

Untuk membatasi jenis enkripsi sisi server yang dapat Anda gunakan di bucket tujuan umum, Anda dapat memilih untuk memblokir permintaan penulisan SSE-C dengan memperbarui konfigurasi enkripsi default untuk bucket Anda. Konfigurasi tingkat ember ini memblokir permintaan untuk mengunggah objek yang menentukan SSE-C. Ketika SSE-C diblokir untuk bucket, setiap,, `PutObject` `CopyObject``PostObject`, atau Multipart Upload atau permintaan replikasi yang menentukan enkripsi SSE-C akan ditolak dengan kesalahan HTTP 403. `AccessDenied`

Pengaturan ini adalah parameter pada `PutBucketEncryption` API dan juga dapat diperbarui menggunakan Konsol S3, AWS CLI, AWS SDKs dan, jika Anda memiliki `s3:PutEncryptionConfiguration` izin.

Nilai yang valid adalah`SSE-C`, yang memblokir enkripsi SSE-C untuk bucket tujuan umum, dan`NONE`, yang memungkinkan penggunaan SSE-C untuk menulis ke bucket.

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru. Untuk informasi lebih lanjut tentang perubahan ini, lihat[Pengaturan SSE-C standar untuk bucket baru FAQ](default-s3-c-encryption-setting-faq.md).

## Izin
<a name="bucket-encryption-permissions"></a>

Gunakan `PutBucketEncryption` API atau Konsol S3 AWS SDKs, atau AWS CLI untuk memblokir atau membuka blokir jenis enkripsi untuk bucket tujuan umum. Anda harus memiliki izin berikut:
+ `s3:PutEncryptionConfiguration`

Gunakan `GetBucketEncryption` API atau Konsol S3 AWS SDKs, atau AWS CLI untuk melihat jenis enkripsi yang diblokir untuk bucket tujuan umum. Anda harus memiliki izin berikut:
+ `s3:GetEncryptionConfiguration`

## Pertimbangan sebelum memblokir enkripsi SSE-C
<a name="considerations-before-blocking-sse-c"></a>

Setelah Anda memblokir SSE-C untuk bucket apa pun, perilaku enkripsi berikut akan berlaku:
+ Tidak ada perubahan pada enkripsi objek yang ada di bucket sebelum Anda memblokir enkripsi SSE-C.
+ Setelah Anda memblokir enkripsi SSE-C, Anda dapat terus membuat GetObject dan HeadObject meminta objek yang sudah ada sebelumnya yang dienkripsi dengan SSE-C selama Anda memberikan header SSE-C yang diperlukan pada permintaan.
+ Ketika SSE-C diblokir untuk bucket, permintaan Unggahan`PutObject`,, `CopyObject``PostObject`, atau Multipart apa pun yang menentukan enkripsi SSE-C akan ditolak dengan kesalahan HTTP 403. `AccessDenied`
+ Jika bucket tujuan untuk replikasi telah diblokir SSE-C dan objek sumber yang direplikasi dienkripsi dengan SSE-C, replikasi akan gagal dengan kesalahan HTTP 403. `AccessDenied`

Jika Anda ingin meninjau apakah Anda menggunakan enkripsi SSE-C di salah satu bucket Anda sebelum memblokir jenis enkripsi ini, Anda dapat menggunakan alat seperti [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)untuk memantau akses ke data Anda. [Posting blog](https://aws.amazon.com/blogs/storage/auditing-amazon-s3-server-side-encryption-methods-for-object-uploads/) ini menunjukkan kepada Anda cara mengaudit metode enkripsi untuk unggahan objek secara real time. Anda juga dapat mereferensikan [artikel re:Post](https://repost.aws/articles/ARhGC12rOiTBCKHcAe9GZXCA/how-to-detect-existing-use-of-sse-c-in-your-amazon-s3-buckets) ini untuk memandu Anda melalui laporan Inventaris S3 kueri untuk melihat apakah Anda memiliki objek terenkripsi SSE-C.

### Langkah-langkah
<a name="block-sse-c-gpb-steps"></a>

Anda dapat memblokir atau membuka blokir enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk bucket tujuan umum dengan menggunakan konsol Amazon S3, (), Amazon S3 REST API AWS Command Line Interface ,AWS CLI dan. AWS SDKs

### Menggunakan konsol S3
<a name="block-sse-c-gpb-console"></a>

Untuk memblokir atau membuka blokir enkripsi SSE-C untuk bucket menggunakan konsol Amazon S3:

1. Masuk ke Konsol AWS Manajemen dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/

1. Di panel navigasi kiri, pilih **ember tujuan umum**.

1. Pilih bucket yang ingin Anda blokir enkripsi SSE-C.

1. Pilih tab **Properties** untuk bucket.

1. Arahkan ke panel properti **Enkripsi Default** untuk bucket dan pilih **Edit**.

1. Di bagian **Jenis enkripsi yang diblokir**, centang kotak di sebelah Enkripsi **sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk memblokir enkripsi SSE-C** atau hapus centang pada kotak ini untuk mengizinkan SSE-C.

1. Pilih **Simpan Perubahan**.

### Menggunakan AWS CLI
<a name="block-sse-c-gpb-cli"></a>

*Untuk menginstal AWS CLI, lihat [Menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) di Panduan Pengguna.AWS Command Line Interface *

Contoh CLI berikut menunjukkan cara memblokir atau membuka blokir enkripsi SSE-C untuk bucket tujuan umum dengan menggunakan file. AWS CLI Untuk menggunakan perintah ganti *user input placeholders* dengan informasi Anda sendiri.

**Permintaan untuk memblokir enkripsi SSE-C untuk bucket tujuan umum:**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "SSE-C"
      }
    }]
  }'
```

**Permintaan untuk mengaktifkan penggunaan enkripsi SSE-C pada bucket tujuan umum:**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "NONE"
      }
    }]
  }'
```

## Menggunakan AWS SDKs
<a name="block-sse-c-gpb-sdks"></a>

------
#### [ SDK for Java 2.x ]

Contoh berikut menunjukkan kepada Anda cara memblokir atau membuka blokir enkripsi SSE-C menulis ke bucket tujuan umum Anda dengan menggunakan AWS SDKs

**Contoh - PutBucketEncryption permintaan pengaturan konfigurasi enkripsi default ke SSE-S3 dan memblokir SSE-C**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.SSE_C)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

**Contoh - PutBucketEncryption permintaan pengaturan konfigurasi enkripsi default ke SSE-S3 dan membuka blokir SSE-C**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.NONE)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

------
#### [ SDK for Python Boto3 ]

**Contoh - PutBucketEncryption permintaan pengaturan konfigurasi enkripsi default ke SSE-S3 dan memblokir SSE-C**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["SSE-C"]
            }
        }]
    }
)
```

**Contoh - PutBucketEncryption permintaan pengaturan konfigurasi enkripsi default ke SSE-S3 dan membuka blokir SSE-C**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["NONE"]
            }
        }]
    }
)
```

------

## Penggunaan API REST
<a name="bucket-tag-add-api"></a>

Untuk informasi tentang dukungan Amazon S3 REST API untuk memblokir atau membuka blokir enkripsi SSE-C untuk bucket tujuan umum, lihat bagian berikut di Referensi API Layanan Penyimpanan Sederhana *Amazon*:
+ [BlockedEncryptionTypes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html)tipe data yang digunakan dalam tipe [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)data operasi [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)dan [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)API.

# Pengaturan SSE-C standar untuk bucket baru FAQ
<a name="default-s3-c-encryption-setting-faq"></a>

**penting**  
Seperti yang [diumumkan pada 19 November 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service menerapkan pengaturan keamanan bucket default baru yang secara otomatis menonaktifkan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C) untuk semua bucket tujuan umum baru. Untuk bucket yang ada tanpa objek terenkripsi SSE-C, Amazon S3 juga akan menonaktifkan SSE-C untuk semua permintaan tulis baru. Akun AWS Untuk Akun AWS penggunaan SSE-C, Amazon S3 tidak akan mengubah konfigurasi enkripsi bucket pada bucket yang ada di akun tersebut. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).  
Dengan perubahan ini, aplikasi yang membutuhkan enkripsi SSE-C harus sengaja mengaktifkan SSE-C dengan menggunakan operasi [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API setelah membuat bucket baru.

Bagian berikut menjawab pertanyaan tentang pembaruan ini.

**1. Pada April 2026, akankah pengaturan SSE-C baru berlaku untuk semua bucket yang baru dibuat?**

Ya. Penyebaran ini dimulai pada 6 April 2026, dan akan selesai selama beberapa minggu ke depan di 37 AWS Wilayah, termasuk Wilayah AWS Tiongkok dan AWS GovCloud (AS).

**catatan**  
Setelah penyebaran selesai, bucket yang baru dibuat di semua AWS Wilayah kecuali Timur Tengah (Bahrain) dan Timur Tengah (UEA) akan menonaktifkan SSE-C secara default.

**2. Berapa lama waktu yang dibutuhkan sebelum peluncuran ini mencakup semua Wilayah? AWS **

Penyebaran dimulai pada 6 April 2026, dan akan selesai dalam beberapa minggu.

**3. Bagaimana saya tahu bahwa pembaruan sudah selesai?**

Anda dapat dengan mudah menentukan apakah perubahan telah selesai di AWS Wilayah Anda dengan membuat bucket baru dan memanggil operasi [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)API untuk menentukan apakah enkripsi SSE-C dinonaktifkan. Setelah pembaruan selesai, semua bucket tujuan umum baru akan secara otomatis menonaktifkan enkripsi SSE-C secara default. Anda dapat menyesuaikan pengaturan ini setelah membuat bucket S3 dengan memanggil operasi [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API.

**4. Akankah Amazon S3 memperbarui konfigurasi bucket saya yang ada?**

Jika AWS akun Anda tidak memiliki objek terenkripsi SSE-C, AWS akan menonaktifkan enkripsi SSE-C pada semua bucket yang ada. Jika ada bucket di AWS akun Anda yang memiliki objek terenkripsi SSE-C, tidak AWS akan mengubah konfigurasi bucket pada bucket mana pun di akun tersebut. Setelah `CreateBucket` perubahan selesai untuk AWS Wilayah Anda, pengaturan default baru akan berlaku untuk semua bucket tujuan umum yang baru. 

 **5. Dapatkah saya menonaktifkan enkripsi SSE-C untuk bucket saya sebelum pembaruan selesai?** 

Ya. Anda dapat menonaktifkan enkripsi SSE-C untuk bucket apa pun dengan memanggil operasi [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API dan menentukan header baru. `BlockedEncryptionTypes` 

**6. Dapatkah saya menggunakan SSE-C untuk mengenkripsi data di bucket baru saya?**

Ya. Sebagian besar kasus penggunaan modern di Amazon S3 tidak lagi menggunakan SSE-C karena tidak memiliki fleksibilitas enkripsi sisi server adalah dengan kunci terkelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci KMS (SSE-KMS). AWS Jika Anda perlu menggunakan enkripsi SSE-C di bucket baru, Anda dapat membuat bucket baru dan kemudian mengaktifkan penggunaan enkripsi SSE-C dalam permintaan terpisah. `PutBucketEncryption`

 **Contoh**

```
aws s3api create-bucket \  
bucket amzn-s3-demo-bucket \ 
region us-east-1 \ 
  
aws s3api put-bucket-encryption \  
-- bucket amzn-s3-demo-bucket \
-- server-side-encryption-configuration \
'{ \Rules\: [{   
   {   
   \ApplyServerSideEncryptionByDefault\: {   
     \SSEAlgorithm\: \AES256\,  
    },   
   \BlockedEncryptionTypes\: [  
     \EncryptionType\:\NONE\]   
   }   
   }]   
}'
```

**catatan**  
Anda harus memiliki `s3:PutEncryptionConfiguration` izin untuk memanggil `PutBucketEncryption` API. 

**7. Bagaimana cara memblokir SSE-C memengaruhi permintaan ke bucket saya?**

Ketika SSE-C diblokir untuk bucket, setiap,, `PutObject` `CopyObject``PostObject`, atau Multipart Upload atau permintaan replikasi yang menentukan enkripsi SSE-C akan ditolak dengan kesalahan HTTP 403. `AccessDenied` 

# Melindungi data menggunakan enkripsi di sisi klien
<a name="UsingClientSideEncryption"></a>

*Enkripsi di sisi klien* adalah tindakan mengenkripsi data Anda secara lokal untuk membantu memastikan keamanannya saat sedang transit dan saat disimpan. Untuk mengenkripsi objek Anda sebelum mengirimnya ke Amazon S3, gunakan Klien Enkripsi Amazon S3. Ketika objek Anda dienkripsi dengan cara ini, objek Anda tidak terpapar ke pihak ketiga mana pun, termasuk. AWS Amazon S3 menerima objek Anda yang sudah dienkripsi; Amazon S3 tidak berperan dalam mengenkripsi atau mendekripasi objek Anda. Anda dapat menggunakan Klien Enkripsi Amazon S3 dan [enkripsi di sisi server](serv-side-encryption.md) untuk mengenkripsi data Anda. Saat Anda mengirim objek terenkripsi ke Amazon S3, Amazon S3 tidak mengenali objek sebagai dienkripsi, hanya mendeteksi objek biasa.

Klien Enkripsi Amazon S3 berfungsi sebagai perantara antara Anda dan Amazon S3. Setelah Anda membuat instans Klien Enkripsi Amazon S3, objek Anda secara otomatis dienkripsi dan didekripsi sebagai bagian dari Amazon S3 dan permintaan `PutObject` dan `GetObject` Anda. Semua objek Anda dienkripsi dengan kunci data unik. Klien Enkripsi Amazon S3 tidak menggunakan atau berinteraksi dengan kunci bucket, meskipun Anda menentukan kunci KMS sebagai kunci pembungkus.

*Panduan Pengembang Klien Enkripsi Amazon S3* berfokus pada versi 3.0 dan yang lebih baru dari Klien Enkripsi Amazon S3. Untuk informasi selengkapnya, lihat [Apa itu Klien Enkripsi Amazon S3?](https://docs.aws.amazon.com//amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html) dalam *Panduan Pengembang Klien Enkripsi Amazon S3*.

Untuk informasi selengkapnya tentang versi klien Enkripsi Amazon S3 sebelumnya, lihat Panduan Pengembang AWS SDK untuk bahasa pemrograman Anda.
+ [AWS SDK untuk Java](https://docs.aws.amazon.com//sdk-for-java/v1/developer-guide/examples-crypto.html)
+ [AWS SDK untuk .NET](https://docs.aws.amazon.com//sdk-for-net/v3/developer-guide/kms-keys-s3-encryption.html)
+ [AWS SDK untuk Go](https://docs.aws.amazon.com//sdk-for-go/v1/developer-guide/welcome.html)
+ [AWS SDK untuk PHP](https://docs.aws.amazon.com//sdk-for-php/v3/developer-guide/s3-encryption-client.html)
+ [AWS SDK untuk Ruby](https://docs.aws.amazon.com//sdk-for-ruby/v3/api/Aws/S3/Encryption.html)
+ [AWS SDK untuk C\$1\$1](https://docs.aws.amazon.com//sdk-for-cpp/v1/developer-guide/welcome.html)

# Melindungi data dalam perjalanan dengan enkripsi
<a name="UsingEncryptionInTransit"></a>

Amazon S3 mendukung protokol HTTP dan HTTPS untuk transmisi data. HTTP mentransmisikan data dalam teks biasa, sedangkan HTTPS menambahkan lapisan keamanan dengan mengenkripsi data menggunakan Transport Layer Security (TLS). TLS melindungi dari penyadapan, gangguan data, dan serangan. man-in-the-middle Sementara lalu lintas HTTP diterima, sebagian besar implementasi menggunakan enkripsi dalam perjalanan dengan HTTPS dan TLS untuk melindungi data saat bergerak antara klien dan Amazon S3.

## TLS 1.2 dan TLS 1.3 Support
<a name="UsingEncryptionInTransit.TLS-support"></a>

Amazon S3 mendukung TLS 1.2 dan TLS 1.3 untuk koneksi HTTPS di semua titik akhir API untuk semua. Wilayah AWS S3 secara otomatis menegosiasikan perlindungan TLS terkuat yang didukung oleh perangkat lunak klien Anda, dan titik akhir S3 yang Anda akses. AWS Alat saat ini (2014 atau yang lebih baru) termasuk AWS SDKs dan AWS CLI secara otomatis default ke TLS 1.3 tanpa tindakan yang diperlukan di pihak Anda. Anda dapat mengganti negosiasi otomatis ini melalui pengaturan konfigurasi klien untuk menentukan versi TLS tertentu jika kompatibilitas mundur ke TLS 1.2 diperlukan. Saat menggunakan TLS 1.3, Anda dapat secara opsional mengonfigurasi pertukaran kunci kuantum pasca hibrida (ML-KEM) untuk membuat permintaan tahan kuantum ke Amazon S3. Untuk informasi selengkapnya, lihat [Mengkonfigurasi TLS pasca-kuantum hibrida untuk klien Anda](pqtls-how-to.md). 

**catatan**  
TLS 1.3 didukung di semua titik akhir S3, kecuali untuk Amazon AWS PrivateLink S3 dan Titik Akses Multi-Wilayah.

## Memantau penggunaan TLS
<a name="UsingEncryptionInTransit.monitoring"></a>

Anda dapat menggunakan log akses server Amazon S3 atau AWS CloudTrail untuk memantau permintaan ke bucket Amazon S3. Kedua opsi logging merekam versi TLS dan cipher suite yang digunakan dalam setiap permintaan.
+ **Log akses server Amazon S3** — Pencatatan akses server menyediakan catatan terperinci untuk permintaan yang dibuat ke bucket. Misalnya, informasi log akses dapat berguna dalam audit keamanan dan akses. Untuk informasi selengkapnya, lihat [Server Amazon S3 mengakses format log](LogFormat.md).
+ **AWS CloudTrail**— [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)adalah layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan. CloudTrail menangkap semua panggilan API untuk Amazon S3 sebagai peristiwa. Untuk informasi selengkapnya, lihat [Acara Amazon S3 CloudTrail](cloudtrail-logging-s3-info.md).

## Memberlakukan enkripsi dalam transit
<a name="UsingEncryptionInTransit.enforcement"></a>

Ini adalah praktik terbaik keamanan untuk menegakkan enkripsi data dalam perjalanan ke Amazon S3. Anda dapat menerapkan komunikasi khusus HTTP atau penggunaan versi TLS tertentu melalui berbagai mekanisme kebijakan. [Ini termasuk kebijakan berbasis sumber daya IAM untuk bucket S3 (kebijakan [bucket), Kebijakan Kontrol Layanan (), Kebijakan](bucket-policies.md)[Kontrol](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)[Sumber Daya (SCPs), dan kebijakan titik akhir VPC](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html). RCPs](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)

### Contoh kebijakan bucket untuk menegakkan enkripsi saat transit
<a name="UsingEncryptionInTransit.bucket-policy-example"></a>

Anda dapat menggunakan [kunci kondisi S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) `s3:TlsVersion` untuk membatasi akses ke bucket Amazon S3 berdasarkan versi TLS yang digunakan oleh klien. Untuk informasi selengkapnya, lihat [Contoh 6: Membutuhkan versi TLS minimum](amazon-s3-policy-keys.md#example-object-tls-version).

**Example kebijakan bucket yang memberlakukan TLS 1.3 menggunakan kunci kondisi `S3:TlsVersion`**  

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInsecureConnections",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket1/*"
      ],
      "Condition": {
        "NumericLessThan": {
          "s3:TlsVersion": "1.3"
        }
      }
    }
  ]
}
```

Anda dapat menggunakan [kunci kondisi `aws:SecureTransport` global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dalam kebijakan bucket S3 untuk memeriksa apakah permintaan dikirim melalui HTTPS (TLS). Berbeda dengan contoh sebelumnya, kondisi ini tidak memeriksa versi TLS tertentu. Untuk informasi selengkapnya, lihat [Batasi Akses Hanya ke Permintaan HTTPS](example-bucket-policies.md#example-bucket-policies-use-case-HTTP-HTTPS-1).

**Example kebijakan bucket yang menerapkan HTTPS menggunakan kunci kondisi `aws:SecureTransport` global**  

```
{
    "Version":"2012-10-17",		 	 	 		 	 	 
    "Statement": [
     {
        "Sid": "RestrictToTLSRequestsOnly",		 	 	 
        "Action": "s3:*",
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket1",
            "arn:aws:s3:::amzn-s3-demo-bucket1/*"
        ],
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "false"
            }
        },
        "Principal": "*"
    }
  ]
}
```

**Contoh kebijakan berdasarkan kedua kunci dan lebih banyak contoh**  
Anda dapat menggunakan kedua jenis kunci kondisi dalam contoh sebelumnya dalam satu kebijakan. Untuk informasi selengkapnya dan pendekatan penegakan hukum tambahan, lihat artikel Blog AWS Penyimpanan [Menerapkan enkripsi saat transit TLS1 dengan.2 atau lebih tinggi dengan Amazon S3](https://aws.amazon.com/blogs/storage/enforcing-encryption-in-transit-with-tls1-2-or-higher-with-amazon-s3/).

# Menggunakan TLS pasca-kuantum hibrida dengan Amazon S3
<a name="UsingEncryptionInTransit.PQ-TLS"></a>

Amazon S3 mendukung opsi pertukaran kunci pasca-kuantum hibrida untuk protokol enkripsi jaringan TLS. Anda dapat menggunakan opsi TLS ini ketika Anda membuat permintaan ke titik akhir Amazon S3 menggunakan TLS 1.3. Suite sandi klasik yang didukung S3 untuk sesi TLS membuat serangan brute force pada mekanisme pertukaran kunci tidak layak dengan teknologi saat ini. Namun, jika komputer kuantum yang relevan secara kriptografi menjadi praktis di masa depan, rangkaian sandi klasik yang digunakan dalam mekanisme pertukaran kunci TLS akan rentan terhadap serangan ini. Saat ini, industri ini selaras dengan pertukaran kunci pasca-kuantum hibrida yang menggabungkan elemen klasik dan pasca-kuantum untuk memastikan bahwa koneksi TLS Anda setidaknya sekuat dengan suite sandi klasik. Amazon S3 mendukung hibrida PQ-TLS, sesuai dengan spesifikasi standar industri, hari ini IANA

Jika Anda mengembangkan aplikasi yang mengandalkan kerahasiaan jangka panjang data yang melewati koneksi TLS, Anda harus mempertimbangkan rencana untuk bermigrasi ke kriptografi pasca-kuantum sebelum komputer kuantum skala besar tersedia untuk digunakan. Sebagai bagian dari model tanggung jawab bersama, S3 memungkinkan kriptografi aman kuantum pada titik akhir layanan kami. Karena browser dan aplikasi mengaktifkan PQ-TLS di sisinya, S3 akan memilih konfigurasi sekuat mungkin untuk mengamankan data dalam perjalanan.

**Jenis endpoint yang didukung dan Wilayah AWS**

TLS pasca-kuantum untuk Amazon S3 tersedia di semua. Wilayah AWS Untuk daftar titik akhir S3 untuk masing-masing titik Wilayah AWS, lihat titik akhir [Amazon Simple Storage Service dan kuota](https://docs.aws.amazon.com/general/latest/gr/s3.html) di. *Referensi Umum Amazon Web Services*

**catatan**  
TLS pasca-kuantum hibrida didukung untuk semua titik akhir S3 kecuali untuk Amazon AWS PrivateLink S3, Titik Akses Multi-Wilayah, dan Vektor S3.

## Menggunakan TLS pasca-kuantum hibrida dengan Amazon S3
<a name="pqtls-details"></a>

Anda harus mengonfigurasi klien yang membuat permintaan ke Amazon S3 untuk mendukung TLS pasca-kuantum hibrida. Saat menyiapkan lingkungan pengujian klien HTTP atau lingkungan produksi Anda, perhatikan informasi berikut:

**Enkripsi dalam Transit**

Hybrid post-quantum TLS hanya digunakan untuk enkripsi saat transit. Ini melindungi data Anda saat bepergian dari klien Anda ke titik akhir S3. Dukungan baru ini dikombinasikan dengan enkripsi sisi server Amazon S3 secara default menggunakan AES-256 algoritme menawarkan enkripsi tahan kuantum kepada pelanggan baik dalam perjalanan maupun saat istirahat. Untuk informasi selengkapnya tentang enkripsi sisi server di Amazon S3, lihat [Melindungi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) data dengan enkripsi sisi server.

**Klien yang Didukung**

Penggunaan TLS pasca-kuantum hibrida membutuhkan penggunaan klien yang mendukung fungsi ini. AWS SDKs dan alat memiliki kemampuan dan konfigurasi kriptografi yang berbeda antar bahasa dan runtime. Untuk mempelajari lebih lanjut tentang kriptografi pasca-kuantum untuk alat tertentu, lihat [Mengaktifkan TLS pasca-kuantum hibrida](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

**catatan**  
Rincian pertukaran kunci PQ-TLS untuk permintaan ke Amazon S3 tidak tersedia dalam AWS CloudTrail peristiwa atau log akses server S3.

## Pelajari lebih lanjut tentang TLS pasca-kuantum
<a name="pqtls-see-also"></a>

Untuk informasi selengkapnya tentang penggunaan TLS pasca-kuantum hibrida, lihat sumber daya berikut.
+ Untuk mempelajari tentang kriptografi pasca-kuantum di AWS, termasuk tautan ke posting blog dan makalah penelitian, lihat Kriptografi [Pasca-Kuantum](https://aws.amazon.com/security/post-quantum-cryptography/) untuk. AWS
+ Untuk selengkapnyas2n-tls, lihat [Memperkenalkans2n-tls, Implementasi dan [Penggunaan s2n-tls](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide) TLS Open Source Baru](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/).
+ *Untuk informasi tentang Klien HTTP Runtime AWS Umum, lihat [Mengonfigurasi klien HTTP AWS berbasis CRT](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) di Panduan Pengembang.AWS SDK for Java 2.x *
+ Untuk informasi tentang proyek kriptografi pasca-kuantum di National Institute for Standards and Technology (NIST), lihat [Kriptografi Pasca Kuantum](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography).
+ Untuk informasi tentang standardisasi kriptografi pasca-kuantum NIST, lihat Standardisasi Kriptografi Pasca-Kuantum [NIST](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization).

# Mengkonfigurasi TLS pasca-kuantum hibrida untuk klien Anda
<a name="pqtls-how-to"></a>

Untuk menggunakan PQ-TLS dengan Amazon S3, Anda perlu mengonfigurasi klien Anda untuk mendukung algoritme pertukaran kunci pasca-kuantum. Juga pastikan bahwa klien Anda mendukung pendekatan hibrida, yang menggabungkan kriptografi kurva elips tradisional dengan algoritma pasca-kuantum seperti ML-KEM (Mekanisme Enkapsulasi Kunci). Module-Lattice-Based 

Konfigurasi spesifik tergantung pada pustaka klien dan bahasa pemrograman Anda. Untuk informasi lebih lanjut, lihat [Mengaktifkan TLS pasca-kuantum hibrida](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

## Contoh konfigurasi klien: AWS SDK for Java 2
<a name="UsingEncryptionInTransit.PQ-TLS.configuration.java2-sdk"></a>

Dalam prosedur ini, tambahkan dependensi Maven untuk AWS Common Runtime HTTP Client. Selanjutnya, konfigurasikan klien HTTP yang lebih memilih TLS pasca-kuantum. Kemudian, buat klien Amazon S3 yang menggunakan klien HTTP.

**catatan**  
Klien HTTP Runtime AWS Umum, yang telah tersedia sebagai pratinjau, tersedia secara umum pada Februari 2023. Dalam rilis itu, `tlsCipherPreference` kelas dan parameter `tlsCipherPreference()` metode digantikan oleh parameter `postQuantumTlsEnabled()` metode. Jika Anda menggunakan contoh ini selama pratinjau, Anda perlu memperbarui kode Anda.

1. Tambahkan klien AWS Common Runtime ke dependensi Maven Anda. Sebaiknya gunakan versi terbaru yang tersedia. 

   Misalnya, pernyataan ini menambahkan versi `2.30.22` klien AWS Common Runtime ke dependensi Maven Anda. 

   ```
   <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>aws-crt-client</artifactId>
       <version>2.30.22</version>
   </dependency>
   ```

1. Untuk mengaktifkan suite sandi pasca-kuantum hibrida, tambahkan AWS SDK for Java 2.x ke proyek Anda dan inisialisasi. Kemudian aktifkan suite sandi pasca-kuantum hibrida pada klien HTTP Anda seperti yang ditunjukkan pada contoh berikut.

   Kode ini menggunakan parameter `postQuantumTlsEnabled()` metode untuk mengonfigurasi [klien HTTP runtime AWS umum](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) yang lebih menyukai rangkaian sandi pasca-kuantum hibrida yang direkomendasikan, ECDH dengan. ML-KEM Kemudian menggunakan klien HTTP yang dikonfigurasi untuk membangun instance klien asinkron Amazon S3,. [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) Setelah kode ini selesai, semua permintaan API [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/) pada instance menggunakan TLS `S3AsyncClient` pasca-kuantum hibrida.
**penting**  
Mulai v2.35.11, penelepon tidak perlu lagi mengatur untuk mengaktifkan TLS pasca-kuantum hibrida `.postQuantumTlsEnabled(true)` untuk klien Anda. Semua versi yang lebih baru dari v2.35.11 mengaktifkan TLS pasca-kuantum secara default.

   ```
   // Configure HTTP client
   SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
             .postQuantumTlsEnabled(true)
             .build();
   
   // Create the Amazon S3 async client
   S3AsyncClient s3Async = S3AsyncClient.builder()
            .httpClient(awsCrtHttpClient)
            .build();
   ```

1. Uji panggilan Amazon S3 Anda dengan TLS pasca-kuantum hibrida.

   Saat Anda memanggil operasi API Amazon S3 pada klien Amazon S3 yang dikonfigurasi, panggilan Anda ditransmisikan ke titik akhir Amazon S3 menggunakan TLS pasca-kuantum hibrida. Untuk menguji konfigurasi Anda, panggil Amazon S3 API, seperti. `[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)`

   ```
   ListBucketsResponse reponse = s3Async.listBuckets();
   ```

### Uji konfigurasi TLS pasca-kuantum hibrida Anda
<a name="pqtls-testing"></a>

Pertimbangkan untuk menjalankan pengujian berikut dengan rangkaian cipher hybrid pada aplikasi Anda yang memanggil Amazon S3.
+ Jalankan uji beban dan tolok ukur. Cipher suite hibrida melakukan secara berbeda dari algoritme pertukaran kunci tradisional. Anda mungkin perlu menyesuaikan batas waktu koneksi untuk memungkinkan waktu handshake yang lebih lama. Jika Anda menjalankan di dalam suatu AWS Lambda fungsi, perpanjang pengaturan batas waktu eksekusi.
+ Coba hubungkan dari lokasi yang berbeda. Tergantung jalur jaringan yang dibutuhkan permintaannya, Anda mungkin menemukan bahwa host perantara, proksi, atau firewall dengan deep packet inspection (DPI) memblokir permintaan. Ini mungkin hasil dari penggunaan cipher suite baru di [ClientHello](https://tools.ietf.org/html/rfc5246#section-7.4.1.2)bagian jabat tangan TLS, atau dari pesan pertukaran kunci yang lebih besar. Jika Anda terkendala saat menyelesaikan masalah ini, tanyakan kepada tim keamanan atau administrator IT Anda untuk memperbarui konfigurasi yang relevan dan membuka blokir rangkaian penyandian TLS baru. 

# Privasi lalu lintas antarjaringan
<a name="inter-network-traffic-privacy"></a>

Topik ini menjelaskan cara Amazon S3 mengamankan koneksi dari layanan ke lokasi lain.

## Lalu lintas antara layanan dan aplikasi dan klien lokal
<a name="inter-network-traffic-privacy-on-prem"></a>

Koneksi berikut dapat digabungkan dengan AWS PrivateLink untuk menyediakan konektivitas antara jaringan pribadi Anda dan AWS: 
+ Koneksi AWS Site-to-Site VPN. Untuk informasi lebih lanjut, lihat [Apa itu AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+  Direct Connect Koneksi. Untuk informasi lebih lanjut, lihat [Apa itu Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)

Akses ke Amazon S3 melalui jaringan melalui AWS dipublikasikan. APIs Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.2. Kami merekomendasikan penggunaan TLS 1.3 dengan pertukaran kunci pasca-kuantum hibrida. Klien juga harus mendukung suite cipher dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Sebagian besar sistem modern seperti Java 7 dan versi yang lebih baru support mode ini. Selain itu, Anda harus menandatangani permintaan menggunakan kunci akses ID dan kunci akses rahasia yang terkait dengan IAM pengguna utama, atau Anda dapat menggunakan [AWS Security Token Service (STS)](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) untuk membuat kredensial keamanan sementara guna menandatangani permintaan.

## Lalu lintas antar AWS sumber daya di Wilayah yang sama
<a name="inter-network-traffic-privacy-within-region"></a>

Titik akhir cloud privat virtual (VPC) untuk Amazon S3 adalah entitas logis dalam sebuah VPC yang mengizinkan konektivitas hanya ke Amazon S3. Amazon VPC merutekan permintaan ke Amazon S3 dan merutekan respons kembali ke VPC. Untuk informasi selengkapnya, lihat [Titik Akhir VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) di *Panduan Pengguna VPC*. Untuk contoh kebijakan bucket yang dapat Anda gunakan untuk mengontrol akses bucket S3 dari titik akhir VPC, lihat [Megendalikan akses dari titik akhir VPC dengan kebijakan bucket](example-bucket-policies-vpc-endpoint.md). 

# AWS PrivateLink untuk Amazon S3
<a name="privatelink-interface-endpoints"></a>

Dengan AWS PrivateLink Amazon S3, Anda dapat menyediakan titik akhir *VPC antarmuka (titik akhir* antarmuka) di cloud pribadi virtual (VPC) Anda. Titik akhir ini dapat diakses secara langsung dari aplikasi yang ada di tempat melalui VPN dan Direct Connect, atau dalam pengintipan VPC yang berbeda Wilayah AWS .

Endpoint antarmuka diwakili oleh satu atau lebih antarmuka jaringan elastis (ENIs) yang diberi alamat IP pribadi dari subnet di VPC Anda. Permintaan ke Amazon S3 melalui titik akhir antarmuka tetap berada di jaringan Amazon. Anda juga dapat mengakses titik akhir antarmuka di VPC Anda dari aplikasi lokal AWS Direct Connect melalui AWS Virtual Private Network atau ().Site-to-Site VPN Untuk informasi selengkapnya tentang cara menghubungkan VPC dengan jaringan on-premise Anda, lihat [Direct Connect Panduan Pengguna](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) dan [AWS Site-to-Site VPN Panduan Pengguna](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).

Untuk informasi umum tentang titik akhir antarmuka, lihat [Antarmuka titik akhir VPC (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) dalam *Panduan AWS PrivateLink *.

**Topics**
+ [Jenis titik akhir VPC untuk Amazon S3](#types-of-vpc-endpoints-for-s3)
+ [Pembatasan dan batasan AWS PrivateLink untuk Amazon S3](#privatelink-limitations)
+ [Membuat titik akhir VPC](#s3-creating-vpc)
+ [Mengakses titik akhir antarmuka Amazon S3](#accessing-s3-interface-endpoints)
+ [Jenis Alamat IP untuk titik akhir VPC](#privatelink-ip-address-types)
+ [Jenis IP rekaman DNS untuk titik akhir VPC](#privatelink-dns-record-types)
+ [DNS privat](#private-dns)
+ [Mengakses bucket, titik akses, serta operasi API Amazon S3 Control dari titik akhir antarmuka S3](#accessing-bucket-and-aps-from-interface-endpoints)
+ [Memperbarui konfigurasi DNS on-premise](#updating-on-premises-dns-config)
+ [Membuat kebijakan titik akhir VPC untuk Amazon S3](#creating-vpc-endpoint-policy)

## Jenis titik akhir VPC untuk Amazon S3
<a name="types-of-vpc-endpoints-for-s3"></a>

Anda dapat menggunakan dua jenis titik akhir VPC untuk mengakses Amazon S3: titik akhir *gateway dan titik akhir* *antarmuka* (dengan menggunakan). AWS PrivateLink*Titik akhir gateway* adalah gateway yang Anda tentukan dalam tabel rute untuk mengakses Amazon S3 dari VPC melalui jaringan. AWS *Titik akhir antarmuka memperluas fungsionalitas titik* akhir gateway dengan menggunakan alamat IP pribadi untuk merutekan permintaan ke Amazon S3 dari dalam VPC Anda, di tempat, atau dari VPC di tempat lain dengan menggunakan peering VPC atau. Wilayah AWS AWS Transit Gateway Untuk informasi selengkapnya, lihat [Apa itu peering VPC?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) dan [Transit Gateway vs Peering VPC](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/transit-gateway-vs-vpc-peering.html).

Titik akhir antarmuka kompatibel dengan titik akhir gateway. Jika Anda memiliki titik akhir gateway yang ada di VPC, Anda dapat menggunakan kedua jenis titik akhir di VPC yang sama.


|  Titik akhir gateway untuk Amazon S3  |  Titik akhir antarmuka untuk Amazon S3  | 
| --- | --- | 
|  Dalam kedua kasus, lalu lintas jaringan Anda tetap berada di AWS jaringan.  | 
|  Gunakan alamat IP publik Amazon S3  |  Gunakan alamat IP privat dari VPC Anda untuk mengakses Amazon S3  | 
|  Gunakan nama Amazon S3 DNS yang sama  |  [Memerlukan nama DNS Amazon S3 kustom titik akhir](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#accessing-s3-interface-endpoints)  | 
|  Jangan izinkan mengakses dari on-premise  |  Izinkan mengakses dari on-premise  | 
|  Jangan izinkan akses dari yang lain Wilayah AWS  |  Izinkan akses dari VPC di VPC lain Wilayah AWS dengan menggunakan VPC peering atau AWS Transit Gateway  | 
|  Tidak ditagih  |  Ditagih  | 

*Untuk informasi selengkapnya, lihat [titik akhir Gateway dan titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html) [VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) di Panduan.AWS PrivateLink *

## Pembatasan dan batasan AWS PrivateLink untuk Amazon S3
<a name="privatelink-limitations"></a>

Batasan VPC berlaku AWS PrivateLink untuk Amazon S3. Untuk informasi selengkapnya, lihat [Pertimbangan antarmuka titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) dan [AWS PrivateLink kuota](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) dalam *AWS PrivateLink Panduan*. Selain itu, larangan berikut juga berlaku.

Titik akhir antarmuka untuk Amazon S3 tidak mendukung hal berikut:
+ [Titik Akhir Standar Proses Informasi Federal (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Titik akhir situs web](WebsiteEndpoints.md)
+ [Titik akhir warisan global](VirtualHosting.md#deprecated-global-endpoint)
+ [Titik akhir Wilayah dasbor S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html)
+ Menggunakan [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)atau [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)di antara ember dalam berbagai Wilayah AWS
+ Keamanan Lapisan Transportasi (TLS) 1.0
+ Keamanan Lapisan Pengangkutan (TLS) 1.1
+ Keamanan Lapisan Transportasi (TLS) 1.3
+ Keamanan Lapisan Transportasi pasca-kuantum hibrida (TLS)

## Membuat titik akhir VPC
<a name="s3-creating-vpc"></a>

Untuk membuat titik akhir antarmuka VPC, lihat [ Membuat titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) dalam *AWS PrivateLink Panduan*. *Untuk membuat titik akhir gateway VPC, lihat [Membuat titik akhir gateway](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3) di Panduan.AWS PrivateLink *

## Mengakses titik akhir antarmuka Amazon S3
<a name="accessing-s3-interface-endpoints"></a>

Saat Anda membuat titik akhir antarmuka, Amazon S3 menghasilkan dua jenis nama DNS S3 khusus titik akhir: *Regional* dan *zonal*. 
+ Nama DNS *Regional* mencakup ID titik akhir VPC unik, pengenal layanan, Wilayah AWS dan namanya. `vpce.amazonaws.com` Sebagai contoh, untuk ID titik akhir VPC `vpce-1a2b3c4d`, nama DNS yang dihasilkan mungkin mirip dengan `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com`.
+ Nama DNS *Zonal* mencakup Zona Ketersediaan—misalnya, `vpce-1a2b3c4d-5e6f-us-east-1a.s3.us-east-1.vpce.amazonaws.com`. Anda dapat menggunakan opsi ini jika arsitektur Anda mengisolasi Zona Ketersediaan. Contoh, Anda bisa menggunakannya untuk kontainer kesalahan atau untuk mengurangi biaya transfer data Regional.

Nama DNS S3 spesifik titik akhir dapat diselesaikan dari domain DNS publik S3.

Titik akhir VPC untuk Amazon S3 mendukung berbagai jenis pengalamatan IP, termasuk:,, dan Dualstack. IPv4 IPv6 Lihat [Jenis Alamat IP untuk titik akhir VPC](#privatelink-ip-address-types) dan [Jenis IP rekaman DNS untuk titik akhir VPC](#privatelink-dns-record-types). 

## Jenis Alamat IP untuk titik akhir VPC
<a name="privatelink-ip-address-types"></a>

Titik akhir VPC untuk Amazon S3 mendukung berbagai jenis pengalamatan IP, termasuk:
+ **IPv4**

  Titik akhir VPC dapat dikonfigurasi untuk hanya menggunakan IPv4 alamat untuk konektivitas.
+ **IPv6**

  Titik akhir VPC dapat dikonfigurasi untuk hanya menggunakan IPv6 alamat untuk konektivitas.
+ **Tumpukan ganda**

  Titik akhir VPC dapat dikonfigurasi dalam mode dual-stack, mendukung keduanya dan alamat secara bersamaan. IPv4 IPv6 Ini memberikan fleksibilitas untuk mengakses Amazon S3 melalui salah satu IPv4 atau IPv6 jaringan.

Jenis alamat IP yang Anda pilih untuk titik akhir VPC Anda akan bergantung pada persyaratan jaringan aplikasi dan infrastruktur Anda. Pertimbangan dapat mencakup skema pengalamatan IP yang digunakan di VPC, jaringan lokal, dan konektivitas di seluruh internet ke Amazon S3. Untuk informasi selengkapnya, lihat jenis alamat IP untuk [titik akhir antarmuka dan titik](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html#aws-service-ip-address-type) [akhir gateway di panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-ip-address-type) *Amazon Virtual Private Cloud*.

## Jenis IP rekaman DNS untuk titik akhir VPC
<a name="privatelink-dns-record-types"></a>

Tergantung pada jenis alamat IP Anda, ketika Anda memanggil titik akhir VPC, Layanan AWS dapat mengembalikan `A` catatan, catatan, atau keduanya `A` dan `AAAA` catatan. `AAAA` Anda dapat menyesuaikan jenis rekaman yang dikembalikan AWS layanan Anda dengan memodifikasi jenis IP rekaman DNS. Tabel berikut menunjukkan jenis IP rekaman DNS yang didukung dan jenis alamat IP:


| Jenis alamat IP yang didukung | Jenis IP rekaman DNS | 
| --- | --- | 
| IPv4 | IPv4 | 
| IPv6 | IPv6 | 
| Tumpukan ganda | Dualstack,, IPv4, Ditentukan Layanan IPv6 | 

### Mengonfigurasi jenis IP rekaman DNS yang ditentukan layanan untuk Amazon S3
<a name="privatelink-dns-record-types-configure"></a>

Jika Anda membuat titik akhir gateway untuk Amazon S3 dan mengonfigurasi jenis IP rekaman DNS sebagai yang ditentukan layanan dan menggunakan titik akhir layanan regional, (seperti)`s3.us-east-2.amazonaws.com`, Amazon S3 mengembalikan catatan ke klien Anda. `A` Sebaliknya, jika Anda membuat titik akhir gateway dan menggunakan titik akhir layanan dual-stack, (seperti`s3.dualstack.us-east-2.amazonaws.com`) dan memilih jenis IP record DNS as, Amazon `service-defined` S3 mengembalikan keduanya dan catatan ke klien Anda. `A` `AAAA`

Demikian pula, jika Anda membuat titik akhir antarmuka dengan DNS Pribadi diaktifkan dan memilih yang ditentukan layanan sebagai jenis catatan DNS, untuk titik akhir layanan regional, (seperti,), `s3.us-east-2.amazonaws.com` Amazon S3 mengembalikan catatan ke klien Anda. `A` Sedangkan, untuk endpoint layanan dualstack, (seperti,`s3.dualstack.us-east-2.amazonaws.com`), Amazon S3 mengembalikan keduanya dan catatan. `A` `AAAA` *Untuk informasi selengkapnya, lihat Jenis IP rekaman DNS untuk [titik akhir antarmuka dan titik](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html#aws-services-dns-record-ip-type) [akhir gateway di Panduan](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-dns-record-ip-type) Pengguna VPC.*

Tabel berikut menunjukkan jenis IP rekaman DNS yang didukung untuk titik akhir gateway dan antarmuka:


| Jenis alamat IP | Jenis IP rekaman DNS yang didukung untuk titik akhir S3 Gateway | Jenis IP rekaman DNS yang didukung untuk titik akhir Antarmuka S3  | 
| --- | --- | --- | 
| IPv4 | IPv4, ditentukan layanan\$1 | IPv4 | 
| IPv6 | IPv6, ditentukan layanan\$1 | IPv6 | 
| Tumpukan ganda | IPv4,, Dualstack IPv6, ditentukan layanan\$1 | Dualstack\$1,,,, ditentukan layanan IPv4 IPv6 | 

\$1 Merupakan tipe IP catatan DNS default.

Untuk mengaktifkan IPv6 konektivitas pada gateway S3 atau titik akhir antarmuka yang ada, perbarui jenis alamat IP untuk titik akhir ke. **Dualstack** Saat diperbarui, Amazon S3 secara otomatis memperbarui tabel perutean dengan IPv6 alamat untuk titik akhir gateway. Kemudian Anda dapat menggunakan endpoint layanan dualstack, seperti`s3.dualstack.us-east-2.amazonaws.com`, dan Amazon S3 akan mengembalikan keduanya `A` dan `AAAA` catatan untuk kueri DNS dualstack S3. Jika Anda ingin menggunakan IPV6 dengan titik akhir layanan regional, seperti`s3.us-east-2.amazonaws.com`, ubah jenis alamat IP untuk titik akhir menjadi**Dualstack**; dan jenis IP catatan DNS ke. **Dualstack** Kemudian Amazon S3 akan mengembalikan keduanya `A` dan `AAAA` catatan untuk kueri DNS S3 regional.

**Pertimbangan-pertimbangan**  
Jika titik akhir gateway Anda memiliki konfigurasi default tipe alamat IP as `IPv4` dan tipe IP record DNS as`service-defined`, maka titik akhir layanan dualstack (seperti`s3.dualstack.us-east-2.amazonaws.com`), lalu lintas yang menggunakan `AAAA` catatan tidak akan dirutekan melalui titik akhir gateway. Sebaliknya, lalu lintas ini akan dijatuhkan atau dirutekan melalui jalur IPv6 yang kompatibel jika ada. Misalnya, jika virtual private cloud (VPC) Anda memiliki gateway internet, IPv6 lalu lintas Anda akan diarahkan melalui gateway internet di VPC Anda dalam skenario ini. Jika ingin memastikan lalu lintas selalu dirutekan melalui titik akhir VPC, Anda dapat menggunakan kebijakan bucket Amazon S3 yang membatasi akses ke bucket tertentu jika titik akhir VPC tertentu tidak digunakan. Untuk informasi selengkapnya, lihat [Membatasi akses ke titik akhir VPC tertentu](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-accesss-vpc-endpoint).
Jika titik akhir antarmuka Anda memiliki konfigurasi default tipe alamat IP, yaitu IPv4, dan jenis IP catatan DNS sebagai IPv4, titik akhir layanan dualstack, seperti`ass3.dualstack.us-east-2.amazonaws.com`, tidak didukung. Lalu lintas yang menggunakan `A` atau `AAAA` catatan titik akhir layanan dualstack tidak akan dirutekan melalui titik akhir antarmuka. Sebaliknya, lalu lintas ini akan dijatuhkan atau diarahkan ke jalur lain yang kompatibel jika ada.
Membuat atau memodifikasi titik akhir gateway dengan jenis IP catatan DNS selain yang ditentukan layanan memerlukan atribut dan `enableDnsSupport` `enableDnsHostnames` VPC disetel ke true.

## DNS privat
<a name="private-dns"></a>

Opsi DNS privat untuk titik akhir antarmuka VPC menyederhanakan perutean lalu lintas S3 melalui titik akhir VPC dan membantu Anda memanfaatkan jalur jaringan dengan biaya terendah yang tersedia untuk aplikasi Anda. Anda dapat menggunakan opsi DNS privat untuk merutekan lalu lintas S3 Regional tanpa memperbarui klien S3 Anda untuk menggunakan nama DNS spesifik titik akhir dari titik akhir antarmuka Anda, atau mengelola infrastruktur DNS. Dengan mengaktifkan nama DNS pribadi, kueri DNS S3 Regional menyelesaikan ke alamat IP pribadi AWS PrivateLink untuk titik akhir berikut:
+ Titik akhir bucket regional (misalnya, `s3.us-east-1.amazonaws.com`)
+ Kontrol titik akhir (misalnya, `s3-control.us-east-1.amazonaws.com`)
+ Titik akhir titik akses (misalnya, `s3-accesspoint.us-east-1.amazonaws.com`)

Jika Anda memiliki titik akhir gateway di VPC Anda, Anda dapat secara otomatis merutekan permintaan dalam VPC melalui titik akhir gateway S3 yang ada dan on-premise melalui titik akhir antarmuka Anda. Pendekatan ini memungkinkan Anda untuk mengoptimalkan biaya jaringan Anda dengan menggunakan titik akhir gateway, yang tidak ditagih, untuk lalu lintas in-VPC Anda. Aplikasi lokal Anda dapat digunakan AWS PrivateLink dengan bantuan titik akhir Resolver masuk. Amazon menyediakan server DNS, yang disebut Resolver Route 53, untuk VPC Anda. Titik akhir Resolver masuk meneruskan kueri DNS dari jaringan on-premise ke Resolver Route 53.

**penting**  
Untuk memanfaatkan jalur jaringan dengan biaya terendah saat menggunakan **Aktifkan DNS pribadi hanya untuk titik akhir masuk**, titik akhir gateway harus ada di VPC Anda. Kehadiran titik akhir gateway membantu memastikan bahwa lalu lintas dalam VPC selalu merutekan melalui jaringan AWS pribadi saat opsi **Aktifkan DNS pribadi hanya untuk titik akhir masuk** dipilih. Anda harus mempertahankan titik akhir gateway ini sementara Anda memiliki opsi **Aktifkan DNS pribadi hanya untuk titik akhir masuk** yang dipilih. Jika Anda ingin menghapus titik akhir gateway Anda, Anda harus terlebih dahulu menghapus **Aktifkan DNS pribadi hanya untuk titik akhir masuk**.   
Jika Anda ingin memperbarui titik akhir antarmuka yang ada ke **Aktifkan DNS pribadi hanya untuk titik akhir masuk**, konfirmasikan terlebih dahulu bahwa VPC Anda memiliki titik akhir gateway S3. Untuk informasi selengkapnya tentang titik akhir gateway dan mengelola nama DNS privat, lihat [Titik akhir VPC Gateway](https://docs.aws.amazon.com//vpc/latest/privatelink/vpce-gateway.html) dan [Kelola nama DNS](https://docs.aws.amazon.com//vpc/latest/privatelink/manage-dns-names.html) masing-masing di *Panduan AWS PrivateLink *.  
**Saat mengaktifkan **DNS Pribadi hanya untuk resolver masuk**, titik akhir gateway harus cocok dengan titik akhir antarmuka atau ditentukan layanan. `dnsRecordIpType`**

Opsi **Aktifkan DNS pribadi hanya untuk titik akhir masuk** hanya tersedia untuk layanan yang mendukung titik akhir gateway.

Untuk informasi selengkapnya tentang membuat titik akhir VPC yang menggunakan **Aktifkan DNS privat hanya untuk titik akhir yang masuk**, lihat [Membuat titik akhir antarmuka](https://docs.aws.amazon.com//vpc/latest/privatelink/create-interface-endpoint.html) di *Panduan AWS PrivateLink *.

**Menggunakan konsol VPC**

Di konsol Anda memiliki dua opsi: **Aktifkan nama DNS** dan **Aktifkan DNS pribadi hanya untuk titik akhir masuk**. **Aktifkan nama DNS** adalah opsi yang didukung oleh AWS PrivateLink. Dengan menggunakan opsi **Aktifkan nama DNS**, Anda dapat menggunakan konektivitas pribadi Amazon ke Amazon S3, sambil membuat permintaan ke nama DNS titik akhir publik default. Ketika opsi ini diaktifkan, pelanggan dapat memanfaatkan jalur jaringan biaya terendah yang tersedia untuk aplikasi mereka.

Saat Anda mengaktifkan nama DNS pribadi pada titik akhir antarmuka VPC yang ada atau baru untuk Amazon S3, opsi **Aktifkan DNS pribadi hanya untuk titik akhir masuk** dipilih secara default. Jika opsi ini dipilih, aplikasi Anda hanya menggunakan titik akhir antarmuka untuk lalu lintas on-premise Anda. Lalu lintas in-VPC ini secara otomatis menggunakan titik akhir gateway berbiaya lebih rendah. Atau, Anda dapat menghapus **Aktifkan DNS pribadi hanya untuk titik akhir masuk untuk merutekan semua permintaan S3 melalui titik akhir** antarmuka Anda.

**Menggunakan AWS CLI**

Jika Anda tidak menentukan nilai untuk `PrivateDnsOnlyForInboundResolverEndpoint`, itu akan secara default diatur ke `true`. Namun, sebelum VPC Anda menerapkan pengaturan Anda, VPC melakukan pemeriksaan untuk memastikan bahwa Anda memiliki titik akhir gateway yang ada di VPC. Jika titik akhir gateway ada di VPC, panggilan berhasil. Jika tidak, Anda akan melihat pesan kesalahan berikut ini: 

Untuk disetel PrivateDnsOnlyForInboundResolverEndpoint ke true, VPC *vpce\$1id* harus memiliki titik akhir gateway untuk layanan.

**Untuk titik akhir Antarmuka VPC baru**

Gunakan atribut `private-dns-enabled` dan `dns-options` untuk mengaktifkan DNS pribadi melalui baris perintah. Opsi `PrivateDnsOnlyForInboundResolverEndpoint` dalam atribut `dns-options` harus diatur ke `true`. Ganti `user input placeholders` dengan informasi Anda sendiri.

```
aws ec2 create-vpc-endpoint \
--region us-east-1 \
--service-name s3-service-name \
--vpc-id client-vpc-id \
--subnet-ids client-subnet-id \ 
--vpc-endpoint-type Interface  \
--private-dns-enabled  \
--ip-address-type ip-address-type \ 
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=true \
--security-group-ids client-sg-id
```

**Untuk titik akhir VPC yang ada**

Jika Anda ingin menggunakan DNS pribadi untuk titik akhir VPC yang ada, gunakan perintah contoh berikut dan ganti dengan informasi Anda `user input placeholders` sendiri.

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-id \
--private-dns-enabled \
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=false
```

Jika Anda ingin memperbarui titik akhir VPC yang ada untuk mengaktifkan DNS pribadi hanya untuk Inbound Resolver, gunakan contoh berikut dan ganti nilai sampel dengan milik Anda sendiri.

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-id \
--private-dns-enabled \
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=true
```

## Mengakses bucket, titik akses, serta operasi API Amazon S3 Control dari titik akhir antarmuka S3
<a name="accessing-bucket-and-aps-from-interface-endpoints"></a>

Anda dapat menggunakan AWS CLI atau AWS SDKs untuk mengakses bucket, titik akses S3, dan operasi API Kontrol Amazon S3 melalui titik akhir antarmuka S3. 

Citra berikut menunjukkan konsol VPC tab **Detail**, di mana Anda dapat menemukan nama DNS titik akhir VPC. Dalam contoh ini, *ID titik akhir VPC (vpce-id)* adalah `vpce-0e25b8cdd720f900e` dan *Nama DNS* adalah `*.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com`. 







![\[Tab Detail di konsol VPC.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/vpc-console-details-tab.png)


Saat menggunakan nama DNS untuk mengakses sumber daya, ganti *\$1* dengan nilai yang sesuai. Nilai yang sesuai untuk digunakan sebagai pengganti `*` adalah sebagai berikut: 
+ `bucket`
+ `accesspoint`
+ `control`

Misalnya, untuk mengakses bucket, gunakan *nama DNS* seperti ini:

 `bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com`

Untuk contoh cara menggunakan nama DNS untuk mengakses bucket, titik akses, dan operasi API Kontrol Amazon S3, lihat bagian berikut dari [AWS CLI contoh](#privatelink-aws-cli-examples) dan [AWS Contoh SDK](#privatelink-aws-sdk-examples).

Untuk informasi selengkapnya tentang cara melihat nama DNS kustom titik akhir Anda, lihat [Melihat konfigurasi nama DNS privat layanan titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/view-vpc-endpoint-service-dns-name.html) dalam *Panduan Pengguna VPC*.

### AWS CLI contoh
<a name="privatelink-aws-cli-examples"></a>

Untuk mengakses bucket S3, titik akses S3, atau operasi API Kontrol Amazon S3 melalui titik akhir antarmuka S3 dalam AWS CLI perintah, gunakan dan parameter. `--region` `--endpoint-url` 

**Contoh: Gunakan URL titik akhir untuk daftar objek dalam bucket Anda**  
Pada contoh berikut, ganti nama bucket `my-bucket`, Region `us-east-1`, dan nama DNS `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` ID titik akhir VPC dengan informasi Anda sendiri.

```
aws s3 ls s3://my-bucket/ --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
```

**Contoh: Gunakan URL titik akhir untuk membuat daftar objek dari titik akses**
+ **Metode 1**—Menggunakan Amazon Resource Name (ARN) dari titik akses dengan titik akhir titik akses

  Ganti ARN `us-east-1:123456789012:accesspoint/accesspointexamplename`, Wilayah `us-east-1`, dan ID `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` titik akhir VPC dengan informasi Anda sendiri.

  ```
  aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:123456789012:accesspoint/accesspointexamplename --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```

  Jika Anda tidak berhasil menjalankan perintah, perbarui AWS CLI ke versi terbaru dan coba lagi. Untuk informasi selengkapnya tentang petunjuk pemutsufiks, lihat [ Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions) dalam *AWS Command Line Interface Panduan Pengguna*.
+ **Metode 2**—Menggunakan alias titik akses dengan titik akhir bucket regional

  Dalam contoh berikut, ganti alias titik akses `accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias`, Wilayah `us-east-1`, dan `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` ID titik akhir VPC dengan informasi Anda sendiri.

  ```
  aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```
+ **Metode 3**—Menggunakan alias titik akses dengan titik akhir titik akses

  Pertama, untuk membuat titik akhir S3 dengan bucket yang disertakan sebagai bagian dari nama host, atur gaya pengalamatan `virtual` `aws s3api` untuk digunakan. Untuk informasi selengkapnya`AWS configure`, lihat [Pengaturan konfigurasi dan file kredensial](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) di *Panduan AWS Command Line Interface Pengguna*. 

  ```
  aws configure set default.s3.addressing_style virtual
  ```

  Kemudian, dalam contoh berikut, ganti alias titik akses `accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias`, Wilayah `us-east-1`, dan `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` ID titik akhir VPC dengan informasi Anda sendiri. Untuk informasi selengkapnya tentang alias titik akses, lihat[Alias titik akses](access-points-naming.md#access-points-alias).

  ```
  aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```

**Contoh: Gunakan URL titik akhir untuk mendaftarkan tugas dengan operasi API kontrol S3**  
Dalam contoh berikut, ganti Wilayah `us-east-1`, ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com`, dan ID akun `12345678` dengan informasi Anda sendiri.

```
aws s3control --region us-east-1 --endpoint-url https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com list-jobs --account-id 12345678
```

### AWS Contoh SDK
<a name="privatelink-aws-sdk-examples"></a>

Untuk mengakses bucket S3, titik akses S3, atau operasi API Kontrol Amazon S3 melalui titik akhir antarmuka S3 saat menggunakan AWS SDKs, perbarui ke versi terbaru. SDKs Kemudian konfigurasikan klien Anda untuk menggunakan URL titik akhir untuk mengakses bucket, titik akses, atau operasi API Kontrol Amazon S3 melalui titik akhir antarmuka S3. 

------
#### [ SDK for Python (Boto3) ]

**Contoh: Gunakan URL titik akhir untuk mengakses bucket S3**  
Dalam contoh berikut, ganti Wilayah `us-east-1` dan ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dengan informasi Anda sendiri. 

```
s3_client = session.client(
service_name='s3',
region_name='us-east-1',
endpoint_url='https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

**Contoh: Gunakan URL titik akhir untuk mengakses titik akses bucket S3**  
Dalam contoh berikut, ganti Wilayah `us-east-1` dan ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dengan informasi Anda sendiri. 

```
ap_client = session.client(
service_name='s3',
region_name='us-east-1',
endpoint_url='https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

**Contoh: Gunakan URL titik akhir untuk mengakses API Kontrol Amazon S3**  
Dalam contoh berikut, ganti Wilayah `us-east-1` dan ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dengan informasi Anda sendiri. 

```
control_client = session.client(
service_name='s3control',
region_name='us-east-1',
endpoint_url='https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

------
#### [ SDK for Java 1.x ]

**Contoh: Gunakan URL titik akhir untuk mengakses bucket S3**  
Dalam contoh berikut, ganti titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dengan informasi Anda sendiri. 

```
// bucket client
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
List<Bucket> buckets = s3.listBuckets();
```

**Contoh: Gunakan URL titik akhir untuk mengakses titik akses bucket S3**  
Dalam contoh berikut, ganti ID titik akhir VPC dan `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` ARN `us-east-1:123456789012:accesspoint/prod` dengan informasi Anda sendiri. 

```
// accesspoint client
final AmazonS3 s3accesspoint = AmazonS3ClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
ObjectListing objects = s3accesspoint.listObjects("arn:aws:s3:us-east-1:123456789012:accesspoint/prod");
```

**Contoh: Gunakan URL titik akhir untuk mengakses operasi API Kontrol Amazon S3**  
Dalam contoh berikut, ganti titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dengan informasi Anda sendiri. 

```
// control client
final AWSS3Control s3control = AWSS3ControlClient.builder().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
final ListJobsResult jobs = s3control.listJobs(new ListJobsRequest());
```

------
#### [ SDK for Java 2.x ]

**Contoh: Gunakan URL titik akhir untuk mengakses bucket S3**  
Dalam contoh berikut, ganti ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dan Wilayah `Region.US_EAST_1` dengan informasi Anda sendiri.

```
// bucket client
Region region = Region.US_EAST_1;
s3Client = S3Client.builder().region(region)
                   .endpointOverride(URI.create("https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                   .build()
```

**Contoh: Gunakan URL titik akhir untuk mengakses titik akses bucket S3**  
Dalam contoh berikut, ganti ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dan Wilayah `Region.US_EAST_1` dengan informasi Anda sendiri.

```
// accesspoint client
Region region = Region.US_EAST_1;
s3Client = S3Client.builder().region(region)
                   .endpointOverride(URI.create("https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                   .build()
```

**Contoh: Gunakan URL titik akhir untuk mengakses API Kontrol Amazon S3**  
Dalam contoh berikut, ganti ID titik akhir VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` dan Wilayah `Region.US_EAST_1` dengan informasi Anda sendiri.

```
// control client
Region region = Region.US_EAST_1;
s3ControlClient = S3ControlClient.builder().region(region)
                                 .endpointOverride(URI.create("https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                                 .build()
```

------

## Memperbarui konfigurasi DNS on-premise
<a name="updating-on-premises-dns-config"></a>

Saat menggunakan nama DNS kustom titik akhir untuk mengakses titik akhir antarmuka untuk Amazon S3, Anda tidak perlu memperbarui penyelesai DNS on-premise Anda. Anda dapat menyelesaikan nama DNS titik akhir kustom dengan alamat IP privat titik akhir antarmuka dari domain Amazon S3 DNS publik. 

### Menggunakan titik akhir antarmuka untuk mengakses Amazon S3 tanpa titik akhir gateway atau gateway internet di VPC
<a name="using-interface-endpoints"></a>

Titik akhir antarmuka di VPC Anda dapat merutekan kedua aplikasi di VPC dan aplikasi on-premise ke Amazon S3 melalui jaringan Amazon, seperti yang digambarkan dalam diagram berikut.

![\[Diagram aliran data yang menunjukkan akses ke Amazon S3 menggunakan titik akhir antarmuka dan. AWS PrivateLink\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/interface-endpoints.png)


Diagram ini menggambarkan hal sebagai berikut: 
+ Jaringan lokal Anda menggunakan Direct Connect atau menyambung Site-to-Site VPN ke VPC A.
+ Aplikasi Anda on-premise dan di VPC A menggunakan nama DNS titik akhir kustom untuk mengakses Amazon S3 melalui titik akhir antarmuka S3.
+ Aplikasi lokal mengirim data ke titik akhir antarmuka di VPC melalui Direct Connect (atau). Site-to-Site VPN AWS PrivateLink memindahkan data dari titik akhir antarmuka ke Amazon S3 melalui AWS jaringan.
+ Aplikasi in-vPC juga mengirim lalu lintas ke titik akhir antarmuka. AWS PrivateLink memindahkan data dari titik akhir antarmuka ke Amazon S3 melalui AWS jaringan.

### Menggunakan titik akhir gateway dan antarmuka titik akhir bersama-sama dalam VPC yang sama untuk mengakses Amazon S3
<a name="using-gateway-and-interface-endpoints"></a>

Anda dapat membuat titik akhir antarmuka dan mempertahankan titik akhir gateway yang ada di VPC yang sama, seperti yang ditunjukkan diagram berikut. Dengan mengambil pendekatan ini, Anda mengizinkan aplikasi dalam VPC untuk terus mengakses Amazon S3 melalui titik akhir gateway, yang tidak ditagih. Kemudian, hanya aplikasi on-premise Anda yang akan menggunakan titik akhir antarmuka untuk mengakses Amazon S3. Untuk mengakses S3 dengan cara ini, Anda harus memperbarui aplikasi lokal Anda untuk menggunakan nama DNS kustom titik akhir untuk Amazon S3.

![\[Diagram aliran data yang menunjukkan akses ke Amazon S3 menggunakan titik akhir gateway dan titik akhir antarmuka.\]](http://docs.aws.amazon.com/id_id/AmazonS3/latest/userguide/images/interface-and-gateway-endpoints.png)


Diagram ini menggambarkan hal sebagai berikut: 
+ Aplikasi lokal menggunakan nama DNS khusus titik akhir untuk mengirim data ke titik akhir antarmuka dalam VPC melalui (atau). Direct Connect Site-to-Site VPN AWS PrivateLink memindahkan data dari titik akhir antarmuka ke Amazon S3 melalui AWS jaringan.
+ Menggunakan nama Amazon S3 Regional default, aplikasi in-VPC mengirim data ke titik akhir gateway yang terhubung ke Amazon S3 melalui jaringan. AWS 

Untuk informasi selengkapnya tentang titik akhir gateway, lihat [Gateway titik akhir VPC ](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html)di *Panduan Pengguna VPC*. 

## Membuat kebijakan titik akhir VPC untuk Amazon S3
<a name="creating-vpc-endpoint-policy"></a>

Anda dapat melampirkan kebijakan titik akhir ke titik akhir VPC yang mengendalikan akses ke Amazon S3. Kebijakan titik akhir mencantumkan informasi berikut: 
+ Prinsip AWS Identity and Access Management (IAM) yang dapat melakukan tindakan 
+ Tindakan-tindakan yang dapat dilakukan 
+ Sumber daya yang padanya tindakan dapat dilakukan 

Anda juga dapat menggunakan kebijakan bucket Amazon S3 untuk membatasi akses ke bucket tertentu dari titik akhir VPC tertentu menggunakan syarat `aws:sourceVpce` dalam kebijakan bucket Anda. Contoh berikut menunjukkan kebijakan yang membatasi akses ke bucket atau titik akhir.

**Topics**
+ [Contoh: Membatasi Akses ke bucket kustom dari titik akhir VPC](#privatelink-example-restrict-access-to-bucket)
+ [Contoh: Membatasi akses ke bucket kustom di akun kustom dari titik akhir VPC](#privatelink-example-access-bucket-in-specific-account-only)
+ [Contoh: Membatasi Akses ke titik akhir VPC kustom di kebijakan bucket S3](#privatelink-example-restrict-access-to-vpc-endpoint)

### Contoh: Membatasi Akses ke bucket kustom dari titik akhir VPC
<a name="privatelink-example-restrict-access-to-bucket"></a>

Anda dapat membuat kebijakan titik akhir yang membatasi akses ke bucket S3 Amazon tertentu saja. Jenis kebijakan ini berguna jika Anda memiliki kebijakan lain Layanan AWS di VPC yang menggunakan bucket. Kebijakan bucket berikut hanya membatasi akses ke file `amzn-s3-demo-bucket1`. Untuk menggunakan kebijakan titik akhir ini, ganti `amzn-s3-demo-bucket1` dengan nama bucket Anda.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Policy1415115909151",
  "Statement": [
    { "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket1",
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"]
    }
  ]
}
```

------

### Contoh: Membatasi akses ke bucket kustom di akun kustom dari titik akhir VPC
<a name="privatelink-example-access-bucket-in-specific-account-only"></a>

Anda dapat membuat kebijakan titik akhir yang membatasi akses hanya ke bucket S3 di bucket tertentu. Akun AWS Untuk mencegah klien dalam VPC Anda mengakses bucket yang tidak Anda miliki, gunakan pernyataan berikut ini di kebijakan titik akhir Anda. Pernyataan contoh berikut membuat kebijakan yang membatasi akses ke sumber daya yang dimiliki oleh satu Akun AWS ID, *`111122223333`*.

```
{
  "Statement": [
    {
      "Sid": "Access-to-bucket-in-specific-account-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

**catatan**  
Untuk menentukan Akun AWS ID sumber daya yang diakses, Anda dapat menggunakan salah satu `aws:ResourceAccount` atau `s3:ResourceAccount` kunci dalam kebijakan IAM Anda. Namun, ketahuilah bahwa beberapa Layanan AWS mengandalkan akses ke bucket yang AWS dikelola. Oleh karena itu, menggunakan kunci `aws:ResourceAccount` atau `s3:ResourceAccount` dalam kebijakan IAM Anda juga dapat memengaruhi akses ke sumber daya ini.

### Contoh: Membatasi Akses ke titik akhir VPC kustom di kebijakan bucket S3
<a name="privatelink-example-restrict-access-to-vpc-endpoint"></a>

Kebijakan bucket Amazon S3 berikut memungkinkan akses ke bucket tertentu, `amzn-s3-demo-bucket2`, hanya dari titik akhir VPC `vpce-1a2b3c4d`. Kebijakan ini menolak semua akses ke bucket jika titik akhir yang ditentukan tidak digunakan. `aws:sourceVpce`Kondisi menentukan titik akhir dan tidak memerlukan Amazon Resource Name (ARN) untuk sumber daya titik akhir VPC, tetapi hanya ID titik akhir. Untuk menggunakan kebijakan bucket ini, ganti `amzn-s3-demo-bucket2` dan `vpce-1a2b3c4d` dengan nama bucket dan titik akhir Anda. 

**penting**  
Saat menerapkan kebijakan bucket Amazon S3 berikut untuk membatasi akses hanya ke titik akhir VPC tertentu, Anda dapat memblokir akses Anda ke bucket tanpa bermaksud melakukannya. Kebijakan bucket yang dimaksudkan untuk secara kustom membatasi akses bucket ke koneksi yang berasal dari titik akhir VPC Anda dapat memblokir semua koneksi ke bucket. Untuk informasi tentang cara mengatasi masalah ini, lihat [Kebijakan bucket saya memiliki ID titik akhir VPC atau VPC yang salah. Bagaimana saya dapat memperbaiki kebijakan tersebut sehingga saya dapat mengakses bucket?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/) dalam *Dukungan Pusat Pengetahuan*.
Sebelum menggunakan kebijakan contoh berikut ini, ganti ID titik akhir VPC dengan nilai yang sesuai untuk kasus penggunaan Anda. Jika tidak, Anda tidak akan dapat mengakses bucket Anda. 
Kebijakan ini nonaktifkan akses *konsol* ke bucket tertentu, karena permintaan konsol tidak berasal dari titik akhir VPC tertentu. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Policy1415115909152",
  "Statement": [
    { "Sid": "Access-to-specific-VPCE-only",
      "Principal": "*",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2",
                   "arn:aws:s3:::amzn-s3-demo-bucket2/*"],
      "Condition": {"StringNotEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"}}
    }
  ]
}
```

------

Untuk contoh kebijakan lainnya, lihat [Titik akhir untuk Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#vpc-endpoints-policies-s3) di *Panduan Pengguna VPC*.

Untuk informasi selengkapnya tentang konektivitas VPC, lihat opsi konektivitas di AWS whitepaper [Opsi Network-to-VPC Konektivitas](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/welcome.html).

# Validasi kepatuhan untuk Amazon S3
<a name="s3-compliance"></a>

Keamanan dan kepatuhan Amazon S3 dinilai oleh auditor pihak ketiga sebagai bagian dari beberapa program AWS kepatuhan, termasuk yang berikut:
+ Kontrol Sistem dan Organisasi (SOC)
+ Standar Keamanan Data Industri Kartu Pembayaran (PCI DSS)
+ Program Manajemen Risiko dan Otorisasi Federal (FedRAMP)
+ Undang-Undang Akuntabilitas dan Portabilitas Asuransi Kesehatan (HIPAA)

AWS menyediakan daftar AWS layanan yang sering diperbarui dalam lingkup program kepatuhan khusus di [AWS Layanan dalam Lingkup oleh Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/). 

Laporan audit pihak ketiga tersedia untuk Anda unduh AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifak](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html). 

Untuk informasi selengkapnya tentang program AWS kepatuhan, lihat [Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/).

Tanggung jawab kepatuhan Anda saat menggunakan Amazon S3 ditentukan oleh sensitivitas data Anda, tujuan kepatuhan organisasi Anda, serta undang-undang dan peraturan yang berlaku. Jika penggunaan Amazon S3 Anda tunduk pada kepatuhan standar seperti HIPAA, PCI, atau FedRAMP, AWS menyediakan sumber daya untuk membantu:
+ [Panduan Memulai Cepat Keamanan dan Kepatuhan](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) yang membahas pertimbangan arsitektur dan langkah-langkah untuk menerapkan lingkungan dasar yang berfokus pada keamanan dan kepatuhan. AWS
+ [Arsitektur untuk Keamanan dan Kepatuhan HIPAA](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) menguraikan bagaimana perusahaan menggunakan AWS untuk membantu mereka memenuhi persyaratan HIPAA.
+ [AWS Sumber Daya Kepatuhan](https://aws.amazon.com/compliance/resources/) menyediakan beberapa buku kerja dan panduan berbeda yang mungkin berlaku untuk industri dan lokasi Anda.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) dapat digunakan untuk menilai seberapa baik konfigurasi sumber daya Anda telah mematuhi praktik internal, pedoman industri, dan peraturan yang berlaku.
+ [AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) memberi Anda pandangan komprehensif tentang status keamanan Anda di dalamnya AWS dan membantu Anda memeriksa kepatuhan Anda terhadap standar industri keamanan dan praktik terbaik. 
+ [Mengunci objek dengan Object Lock](object-lock.md) dapat membantu Anda memenuhi persyaratan teknis dari regulator layanan keuangan (seperti SEC, FINRA, dan CFTC) yang memerlukan penyimpanan data “tulis sekali, baca banyak” (WORM) untuk jenis informasi pembukuan dan pencatatan tertentu. 
+ [Membuat katalog dan menganalisis data Anda dengan S3 Inventory](storage-inventory.md) dapat membantu Anda mengaudit dan melaporkan replikasi dan status enkripsi objek Anda untuk kebutuhan bisnis, kepatuhan, dan regulasi.

# Ketahanan dalam Amazon S3
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar Wilayah dan Zona Ketersediaan. Wilayah AWS menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Zona Ketersediaan ini menawarkan cara efektif untuk merancang dan mengoperasikan aplikasi dan basis data. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional. Jika Anda secara khusus perlu mereplikasi data Anda pada jarak geografis yang lebih besar, Anda dapat menggunakan[Mereplikasi objek di dalam dan di seluruh Wilayah](replication.md), yang memungkinkan penyalinan objek secara otomatis dan asinkron di seluruh ember dalam berbagai jenis. Wilayah AWS

Masing-masing Wilayah AWS memiliki beberapa Availability Zone. Anda dapat menerapkan aplikasi Anda di beberapa Zona Ketersediaan di Wilayah yang sama untuk toleransi kesalahan dan latensi rendah. Zona Ketersediaan saling terhubung satu sama lain dengan jaringan serat optik pribadi yang cepat, memungkinkan Anda untuk merancang aplikasi secara mudah yang menerapkan pengalihan otomatis antara Zona Ketersediaan tanpa gangguan.

Untuk informasi selengkapnya tentang Wilayah AWS dan Availability Zone, lihat [Infrastruktur AWS Global](https://aws.amazon.com/about-aws/global-infrastructure/).

Selain infrastruktur AWS global, Amazon S3 menawarkan beberapa fitur untuk membantu mendukung ketahanan data dan kebutuhan cadangan Anda.

**Konfigurasi siklus hidup**  
Konfigurasi siklus aktif adalah serangkaian aturan yang menentukan tindakan yang diterapkan Amazon S3 pada sekelompok objek. Dengan aturan konfigurasi siklus aktif, Anda dapat memberi tahu Amazon S3 untuk melakukan transisi objek ke kelas penyimpanan yang lebih murah, mengarsipkan, atau menghapusnya. Untuk informasi selengkapnya, lihat [Mengelola siklus hidup objek](object-lifecycle-mgmt.md).

**Penentuan Versi**  
Penentuan Versi adalah cara menyimpan beberapa varian objek dalam bucket yang sama. Anda dapat menggunakan Penentuan Versi untuk menyimpan, mengambil, dan memulihkan setiap versi dari setiap objek yang disimpan dalam bucket Amazon S3. Dengan Penentuan Versi, Anda dapat dengan mudah memulihkan dari tindakan pengguna yang tidak diinginkan, serta kegagalan aplikasi. Untuk informasi selengkapnya, lihat [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md).

**Kunci Objek S3**  
Anda dapat menggunakan Kunci Objek S3 untuk menyimpan objek menggunakan model *tulis-sekali-baca-banyak* (WORM). Dengan Kunci Objek S3, Anda dapat mencegah objek agar tidak dihapus atau ditimpa selama jangka waktu tertentu atau tanpa batas waktu. Kunci Objek S3 memungkinkan Anda memenuhi persyaratan peraturan yang memerlukan penyimpanan WORM atau hanya untuk menambahkan lapisan perlindungan tambahan terhadap perubahan dan penghapusan objek. Untuk informasi selengkapnya, lihat [Mengunci objek dengan Object Lock](object-lock.md).

**Kelas penyimpanan**  
Amazon S3 menawarkan serangkaian kelas penyimpanan untuk dipilih tergantung pada persyaratan beban kerja Anda. Kelas penyimpanan S3 Standard-IA dan S3 One Zone-IA dirancang untuk data yang Anda akses sekitar sebulan sekali dan membutuhkan akses milidetik. Kelas penyimpanan S3 Glacier Instant Retrieval dirancang untuk data arsip berumur panjang yang diakses dengan akses milidetik yang Anda akses sekitar seperempat sekali. Untuk data arsip yang tidak memerlukan akses langsung, seperti backup, Anda dapat menggunakan kelas penyimpanan S3 Glacier Flexible Retrieval atau S3 Glacier Deep Archive. Untuk informasi selengkapnya, lihat [Memahami dan mengelola kelas penyimpanan Amazon S3](storage-class-intro.md).

Praktik keamanan terbaik berikut juga menangani ketahanan:
+ [Enable versioning](security-best-practices.md#versioning)
+ [Consider Amazon S3 cross-region replication](security-best-practices.md#cross-region)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)

## Enkripsi cadangan Amazon S3
<a name="backup-encryption"></a>

Jika Anda menyimpan cadangan menggunakan Amazon S3, enkripsi cadangan Anda tergantung pada konfigurasi bucket tersebut. Amazon S3 menyediakan cara untuk menetapkan perilaku enkripsi default untuk bucket S3. Anda dapat menetapkan enkripsi default pada bucket sehingga semua objek dienkripsi saat disimpan dalam bucket. Enkripsi default mendukung kunci yang disimpan di AWS KMS (SSE-KMS). Untuk informasi selengkapnya, lihat [Mengatur perilaku enkripsi sisi server default untuk bucket Amazon S3](bucket-encryption.md).

Untuk informasi lebih lanjut tentang Penentuan Versi dan Kunci Objek, lihat topik berikut: [Mempertahankan beberapa versi objek dengan Versi S3](Versioning.md) [Mengunci objek dengan Object Lock](object-lock.md) 

# Keamanan infrastruktur di Amazon S3
<a name="network-isolation"></a>

[Sebagai layanan terkelola, Amazon S3 dilindungi oleh prosedur keamanan jaringan AWS global yang dijelaskan dalam pilar keamanan Kerangka Well-Architected AWS .](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)

Akses ke Amazon S3 melalui jaringan melalui AWS dipublikasikan. APIs Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.2. Kami merekomendasikan juga mendukung TLS 1.3 dan pertukaran kunci pasca-kuantum hibrida. Untuk mempelajari tentang kriptografi pasca-kuantum di AWS, termasuk tautan ke posting blog dan makalah penelitian, lihat Kriptografi [Pasca-Kuantum](https://aws.amazon.com/security/post-quantum-cryptography/) untuk. AWS

**catatan**  
TLS 1.3 didukung di semua titik akhir S3, kecuali untuk Amazon AWS PrivateLink S3 dan Titik Akses Multi-Wilayah.

Klien juga harus mendukung suite cipher dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Selain itu, permintaan harus ditandatangani menggunakan AWS Signature V4 atau AWS Signature V2, yang memerlukan kredensyal yang valid untuk diberikan.

Ini dapat APIs dipanggil dari lokasi jaringan mana pun. Namun, Amazon S3 mendukung kebijakan akses berbasis sumber daya, yang dapat mencakup pembatasan berdasarkan alamat IP sumber. Anda juga dapat menggunakan kebijakan bucket Amazon S3 untuk mengontrol akses ke bucket dari titik akhir virtual private cloud (VPC) tertentu, atau spesifik. VPCs Secara efektif, ini mengisolasi akses jaringan ke bucket Amazon S3 tertentu hanya dari VPC tertentu dalam jaringan. AWS Untuk informasi selengkapnya, lihat [Megendalikan akses dari titik akhir VPC dengan kebijakan bucket](example-bucket-policies-vpc-endpoint.md).

Praktik terbaik keamanan berikut juga membahas keamanan infrastruktur di Amazon S3:
+ [Consider VPC endpoints for Amazon S3 access](security-best-practices.md#end-points)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)

# Analisis konfigurasi dan kerentanan di Amazon S3
<a name="vulnerability-analysis-and-management"></a>

AWS menangani tugas-tugas keamanan dasar seperti sistem operasi tamu (OS) dan patching database, konfigurasi firewall, dan pemulihan bencana. Prosedur ini telah ditinjau dan disertifikasi oleh pihak ketiga yang sesuai. Untuk detail selengkapnya, lihat sumber daya berikut:
+ [Validasi kepatuhan untuk Amazon S3](s3-compliance.md)
+ [Model Tanggung Jawab Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [Amazon Web Services: Gambaran Umum Proses Keamanan](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)

Praktik terbaik keamanan berikut juga membahas konfigurasi dan analisis kerentanan di Amazon S3:
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)
+ [Aktifkan AWS Config](security-best-practices.md#config)

# Manajemen akses
<a name="security-access-management"></a>

Amazon S3 menyediakan berbagai alat manajemen akses. Berikut ini adalah daftar fitur dan alat ini. Anda tidak memerlukan semua alat manajemen akses ini, tetapi Anda harus menggunakan satu atau lebih untuk memberikan akses ke bucket Amazon S3, objek, dan lainnya. [Sumber daya S3](access-management.md#access-management-resources) Aplikasi yang tepat dari alat-alat ini dapat membantu memastikan bahwa sumber daya Anda hanya dapat diakses oleh pengguna yang dituju. 

Alat manajemen akses yang paling umum digunakan adalah *kebijakan akses*. Kebijakan akses dapat berupa *kebijakan berbasis sumber daya* yang dilampirkan ke AWS sumber daya, seperti kebijakan bucket untuk bucket. Kebijakan akses juga dapat berupa *kebijakan berbasis identitas* yang dilampirkan pada identitas AWS Identity and Access Management (IAM), seperti pengguna, grup, atau peran IAM. Kebijakan akses menjelaskan siapa yang memiliki akses ke hal-hal apa. Tulis kebijakan akses untuk memberikan Akun AWS izin kepada pengguna, grup, dan peran IAM untuk melakukan operasi pada sumber daya. Misalnya, Anda dapat memberikan `PUT Object` izin kepada yang lain Akun AWS sehingga akun lain dapat mengunggah objek ke bucket Anda.

Berikut ini adalah alat manajemen akses yang tersedia di Amazon S3. Untuk panduan yang lebih komprehensif tentang kontrol akses Amazon S3, lihat. [Kontrol akses di Amazon S3](access-management.md)

**Kebijakan bucket**  
Kebijakan bucket Amazon S3 adalah kebijakan berbasis [sumber daya berformat JSON AWS Identity and Access Management (IAM) yang dilampirkan ke bucket](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) tertentu. Gunakan kebijakan bucket untuk memberikan izin identitas lain Akun AWS atau IAM untuk bucket dan objek di dalamnya. Banyak kasus penggunaan manajemen akses S3 dapat dipenuhi dengan menggunakan kebijakan bucket. Dengan kebijakan bucket, Anda dapat mempersonalisasi akses bucket untuk membantu memastikan bahwa hanya identitas yang telah Anda setujui yang dapat mengakses sumber daya dan melakukan tindakan di dalamnya. Untuk informasi selengkapnya, lihat [Kebijakan Bucket untuk Amazon S3](bucket-policies.md). 

**Kebijakan berbasis identitas**  
Kebijakan pengguna berbasis identitas atau IAM adalah jenis kebijakan [AWS Identity and Access Management (](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)IAM). Kebijakan berbasis identitas adalah kebijakan berformat JSON yang dilampirkan ke pengguna, grup, atau peran IAM di akun Anda. AWS Anda dapat menggunakan kebijakan berbasis identitas untuk memberikan akses identitas IAM ke bucket atau objek Anda. Anda dapat membuat pengguna, grup, dan peran IAM di akun Anda dan melampirkan kebijakan akses kepada mereka. Anda kemudian dapat memberikan akses ke AWS sumber daya, termasuk sumber daya Amazon S3. Untuk informasi selengkapnya, lihat [Kebijakan berbasis identitas untuk Amazon S3](security_iam_id-based-policy-examples.md). 

**Pemberian Akses S3**  
Gunakan Hibah Akses S3 untuk membuat hibah akses ke data Amazon S3 Anda untuk kedua identitas di direktori identitas perusahaan, sepertiActive Directory, dan identitas (IAM). AWS Identity and Access Management S3 Access Grants membantu Anda mengelola izin data dalam skala besar. Selain itu, S3 Access Grants mencatat identitas pengguna akhir dan aplikasi yang digunakan untuk mengakses data S3 di. AWS CloudTrail Ini memberikan riwayat audit terperinci hingga identitas pengguna akhir untuk semua akses ke data di bucket S3 Anda. Untuk informasi selengkapnya, lihat [Mengelola akses dengan S3 Access Grants](access-grants.md).

**Titik Akses**  
Titik Akses Amazon S3 menyederhanakan pengelolaan akses data dalam skala besar untuk aplikasi yang menggunakan kumpulan data bersama di S3. Access Points diberi nama endpoint jaringan yang dilampirkan ke bucket. Anda dapat menggunakan titik akses untuk melakukan operasi objek S3 dalam skala besar, seperti mengunggah dan mengambil objek. Bucket dapat memiliki hingga 10.000 titik akses yang terpasang, dan untuk setiap titik akses, Anda dapat menerapkan izin dan kontrol jaringan yang berbeda untuk memberi Anda kontrol terperinci atas akses ke objek S3 Anda. Poin Akses S3 dapat dikaitkan dengan bucket di akun yang sama atau di akun tepercaya lainnya. Kebijakan Access Points adalah kebijakan berbasis sumber daya yang dievaluasi bersama dengan kebijakan bucket yang mendasarinya. Untuk informasi selengkapnya, lihat [Mengelola akses ke kumpulan data bersama dengan titik akses](access-points.md).

**Daftar kontrol akses (ACL)**  
ACL adalah daftar hibah yang mengidentifikasi penerima hibah dan izin yang diberikan. ACLs memberikan izin baca atau tulis dasar kepada yang lain Akun AWS. ACLs gunakan skema XML-khusus Amazon S3. ACL adalah jenis kebijakan [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). Objek ACL digunakan untuk mengelola akses ke objek, dan bucket ACL digunakan untuk mengelola akses ke bucket. Dengan kebijakan bucket, ada satu kebijakan untuk seluruh bucket, tetapi objek ACLs ditentukan untuk setiap objek. Kami menyarankan agar Anda tetap ACLs dimatikan, kecuali dalam keadaan di mana Anda harus mengontrol akses secara individual untuk setiap objek. Untuk informasi selengkapnya tentang penggunaan ACLs, lihat[Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda](about-object-ownership.md).

**Awas**  
Mayoritas kasus penggunaan modern di Amazon S3 tidak memerlukan penggunaan. ACLs 

**Kepemilikan Objek**  
Untuk mengelola akses ke objek Anda, Anda harus menjadi pemilik objek. Anda dapat menggunakan setelan tingkat ember Kepemilikan Objek untuk mengontrol kepemilikan objek yang diunggah ke bucket. Juga, gunakan Object Ownership untuk mengaktifkan ACLs. Secara default, Kepemilikan Objek diatur ke *setelan diberlakukan pemilik Bucket* dan ACLs semuanya dimatikan. Saat ACLs dimatikan, pemilik bucket memiliki semua objek di bucket dan secara eksklusif mengelola akses ke data. Untuk mengelola akses, pemilik bucket menggunakan kebijakan atau alat manajemen akses lainnya, tidak termasuk. ACLs Untuk informasi selengkapnya, lihat [Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda](about-object-ownership.md).

Untuk panduan yang lebih komprehensif tentang kontrol akses Amazon S3 dan praktik terbaik tambahan, lihat. [Kontrol akses di Amazon S3](access-management.md)

# Inventaris data Amazon Simple Storage Service
<a name="s3-data-inventory"></a>

## Amazon S3
<a name="s3-intro"></a>

Amazon S3 menyediakan penyimpanan objek yang dapat diskalakan di Cloud. AWS Ini memungkinkan Anda untuk menyimpan dan mengambil sejumlah data dari mana saja di web. Berdasarkan arsitekturnya yang unik, S3 dirancang untuk melebihi daya tahan data 99,999999999% (11 sembilan sembilan). Selain itu, S3 menyimpan data secara berlebihan di minimal 3 Availability Zone secara default, memberikan ketahanan bawaan terhadap bencana yang meluas. Pelanggan dapat menyimpan data dalam satu Availability Zone untuk meminimalkan biaya penyimpanan atau latensi, di beberapa Availability Zone untuk ketahanan terhadap hilangnya permanen seluruh pusat data, atau dalam beberapa Wilayah AWS untuk memenuhi persyaratan ketahanan geografis. Karakteristik Utama

Lokasi geografis  
Amazon S3 di-host di beberapa lokasi di seluruh dunia. Anda memilih lokasi untuk data Anda yang menempatkan mereka dekat dengan pelanggan Anda.

Bucket  
Bucket adalah kontainer untuk objek yang disimpan dalam Amazon S3. Setiap benda terkandung dalam ember.

Objek  
Objek adalah entitas dasar yang disimpan di Amazon S3. Objek terdiri atas data objek dan metadata.

Kelas Penyimpanan  
Amazon S3 menawarkan kelas penyimpanan berbeda yang dioptimalkan untuk kasus penggunaan yang berbeda.

Manajemen Penyimpanan  
Amazon S3 memiliki fitur manajemen penyimpanan yang dapat Anda gunakan untuk mengelola biaya dan mematuhi persyaratan kepatuhan. 

Manajemen akses dan keamanan  
Amazon S3 menyediakan fitur untuk mengaudit dan mengelola akses ke bucket dan objek Anda.

## Lokasi geografis
<a name="s3-geographic-location"></a>

Amazon S3 tersedia di setiap Wilayah AWS dunia. Setiap Wilayah adalah wilayah geografis yang terpisah.

### Mengapa ini penting
<a name="s3-geographic-location-why"></a>

Setelah menentukan di mana Anda ingin menyimpan data, Anda dapat memutuskan apakah akan menggunakan penyimpanan yang setara secara fungsional di lokasi yang sama atau lokasi yang berbeda, tergantung pada kebutuhan Anda.

### Untuk mendapatkan ringkasan bucket Amazon S3 Anda di semua Wilayah
<a name="s3-geographic-location-how"></a>

Gunakan AWS CLI perintah berikut:

```
   aws s3api list-buckets /
    --max-items 100 / 
    --page-size 100
```

Untuk informasi selengkapnya, lihat [daftar bucket](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-buckets.html) di Referensi Perintah. AWS CLI 

## Bucket
<a name="s3-buckets"></a>

Ember Amazon S3 adalah wadah untuk objek. Setiap ember memiliki nama unik di semuanya AWS. Amazon S3 mendukung empat jenis bucket: ember tujuan umum, ember Direktori, ember meja, dan ember vektor. Setiap jenis bucket menyediakan serangkaian fitur unik untuk kasus penggunaan yang berbeda. Untuk informasi selengkapnya tentang berbagai jenis bucket, lihat [Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#BasicsBucket) di Panduan Pengguna Amazon S3.

### Mengapa ini penting
<a name="s3-buckets-why"></a>

Setelah mencantumkan bucket, Anda dapat memvalidasi pengaturan bucket untuk sistem penyimpanan yang setara secara fungsional dengan meninjau berbagai pengaturan konfigurasi bucket. 

### Untuk membuat daftar konfigurasi bucket
<a name="s3-buckets-how"></a>

```
aws s3api get-bucket-versioning --bucket amzn-s3-demo-bucket1
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
aws s3api get-bucket-logging --bucket amzn-s3-demo-bucket1
```

Untuk informasi selengkapnya, lihat [get-bucket-versioning](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-versioning.html)di Referensi AWS CLI Perintah.

## Objek
<a name="s3-objects"></a>

Objek adalah entitas dasar yang disimpan di Amazon S3. Setiap objek terdiri dari data, kunci (nama), dan metadata.

### Mengapa ini penting
<a name="s3-objects-why"></a>

Memahami karakteristik objek Anda membantu merencanakan kapasitas penyimpanan yang setara dan persyaratan kinerja dalam sistem yang setara secara fungsional.

### Untuk daftar objek dan properti mereka
<a name="s3-objects-how"></a>

```
aws s3api list-objects-v2 --bucket amzn-s3-demo-bucket1 /
    --query 'Contents[].{Key: Key, Size: Size, LastModified: LastModified}'
```

Untuk informasi selengkapnya, lihat [list-objects-v2](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html) di Referensi AWS CLI Perintah.

## Kelas Penyimpanan
<a name="s3-storage-classes"></a>
+ Standar Amazon S3
+ Amazon S3 Intelligent-Tiering
+ Amazon S3 Standar IA
+ Amazon S3 Satu Zona
+ Pengambilan Instan Amazon S3 Glacier
+ Pengambilan Fleksibel Amazon S3 Glacier
+ Arsip Dalam Gletser Amazon S3
+ Amazon S3 Express Satu Zona

### Mengapa ini penting
<a name="s3-storage-classes-why"></a>

Memahami penggunaan kelas penyimpanan Anda membantu menentukan tingkatan penyimpanan yang sesuai dalam sistem yang setara secara fungsional. Untuk informasi selengkapnya, lihat [Memahami dan mengelola kelas penyimpanan Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) di Panduan Pengguna Amazon S3.

### Untuk meninjau pemilihan dan penggunaan kelas setorage
<a name="s3-storage-classes-how"></a>

Anda dapat menggunakan Amazon S3 Storage Lens untuk meninjau pemilihan dan penggunaan kelas penyimpanan Anda. Untuk informasi selengkapnya, lihat [Memahami dan mengelola kelas penyimpanan Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) di Panduan Pengguna Amazon S3.

## Manajemen penyimpanan
<a name="s3-storage-management"></a>

### Mengapa ini penting
<a name="s3-storage-management-why"></a>

Memahami penggunaan manajemen penyimpanan Anda membantu merencanakan fitur yang setara untuk mengelola biaya dan mematuhi persyaratan kepatuhan dalam sistem yang setara secara fungsional.

### Untuk meninjau pemilihan dan penggunaan fitur manajemen penyimpanan
<a name="s3-storage-management-how"></a>

Anda dapat menggunakan Amazon S3 Storage Lens untuk meninjau penggunaan fitur manajemen penyimpanan Anda. Untuk informasi selengkapnya, lihat [glosarium metrik Lensa Penyimpanan Amazon S3 di](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) Panduan Pengguna Amazon S3. 

## Manajemen akses dan keamanan
<a name="s3-access-management"></a>

### Mengapa ini penting
<a name="s3-access-management-why"></a>

Memahami pengaturan manajemen akses dan keamanan membantu Anda merencanakan fitur yang setara untuk mengelola akses dan persyaratan keamanan dalam sistem yang setara secara fungsional.

### Untuk meninjau pengaturan manajemen akses dan keamanan
<a name="s3-access-management-how"></a>

Setelah mencantumkan bucket, Anda dapat memvalidasi keamanan bucket dan pengaturan akses untuk sistem penyimpanan yang setara secara fungsional dengan meninjau berbagai pengaturan konfigurasi bucket.

```
aws s3api get-public-access-block --bucket amzn-s3-demo-bucket1 
aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket1 
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket1
```

## Transfer Data
<a name="s3-data-transfer"></a>

Anda dapat mentransfer data dari Amazon S3 menggunakan beberapa metode:
+ AWS CLI
+ AWS SDK
+ API REST Amazon S3
+ Alat pihak ketiga

### Contoh menggunakan AWS CLI
<a name="s3-data-transfer-examples"></a>

Untuk mengunduh seluruh bucket:

```
aws s3 sync s3://amzn-s3-demo-bucket1 /local/path
```

Untuk informasi selengkapnya, lihat [sinkronisasi](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) di Referensi AWS CLI Perintah.

Untuk mengunduh objek tertentu:

```
aws s3 cp s3://amzn-s3-demo-bucket1/path/to/object /local/path
```

Untuk informasi selengkapnya, lihat [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) di AWS CLI Command Reference.

## Sumber Daya Terkait
<a name="s3-related-resources"></a>

Berikut ini adalah karakteristik tambahan Amazon S3:
+ [Kontrol akses di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)
+ [Keamanan di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security.html)
+ [Perlindungan data di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/data-protection.html)
+ [Pencatatan dan pemantauan di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html)