

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

# Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
<a name="replication-config-for-kms-objects"></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).

Ada beberapa pertimbangan khusus ketika Anda mereplikasi objek yang telah dienkripsi dengan menggunakan enkripsi di sisi server. Amazon S3 mendukung tipe enkripsi di sisi server berikut:
+ Enkripsi di sisi server dengan kunci terkelola Amazon S3 (SSE-S3)
+ Enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (SSE-KMS)
+ Enkripsi sisi server dua lapis dengan kunci (DSSE-KMS) AWS KMS 
+ Enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)

Untuk informasi lebih lanjut tentang enkripsi di sisi server, lihat [Melindungi data dengan enkripsi di sisi klien](serv-side-encryption.md).

Topik ini menjelaskan izin yang Anda perlukan untuk mengarahkan Amazon S3 guna mereplikasi objek yang telah dienkripsi menggunakan enkripsi di sisi server. Topik ini juga menyediakan elemen konfigurasi tambahan yang dapat Anda tambahkan dan contoh kebijakan AWS Identity and Access Management (IAM) yang memberikan izin yang diperlukan untuk mereplikasi objek terenkripsi. 

Untuk contoh dengan step-by-step instruksi, lihat[Mengaktifkan replikasi untuk objek terenkripsi](#replication-walkthrough-4). Untuk informasi tentang pembuatan konfigurasi replikasi, lihat [Mereplikasi objek di dalam dan di seluruh Wilayah](replication.md). 

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

**Topics**
+ [Bagaimana enkripsi bucket default memengaruhi replikasi](#replication-default-encryption)
+ [Mereplikasi objek yang dienkripsi dengan SSE-C](#replicationSSEC)
+ [Mereplikasi objek yang dienkripsi dengan SSE-S3, SSE-KMS, atau DSSE-KMS](#replications)
+ [Mengaktifkan replikasi untuk objek terenkripsi](#replication-walkthrough-4)

## Bagaimana enkripsi bucket default memengaruhi replikasi
<a name="replication-default-encryption"></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 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.

## Mereplikasi objek yang dienkripsi dengan SSE-C
<a name="replicationSSEC"></a>

Dengan menggunakan enkripsi sisi server dengan kunci yang disediakan pelanggan (SSE-C), Anda dapat mengelola kunci enkripsi milik Anda sendiri. Dengan SSE-C, Anda mengelola kunci sedangkan Amazon S3 mengelola proses enkripsi dan dekripsi. Anda harus memberikan kunci enkripsi sebagai bagian dari permintaan Anda, tetapi Anda tidak perlu menulis kode apa pun untuk melakukan enkripsi atau dekripsi objek. Saat mengunggah sebuah objek, Amazon S3 mengenkripsi objek menggunakan kunci yang Anda berikan. Amazon S3 kemudian membersihkan kunci itu dari memori. Saat mengambil sebuah objek, Anda harus memberikan kunci enkripsi yang sama sebagai bagian dari permintaan Anda. Untuk informasi selengkapnya, lihat [Menggunakan enkripsi di sisi server dengan kunci yang disediakan pelanggan (SSE-C)](ServerSideEncryptionCustomerKeys.md).

S3 Replikasi mendukung objek yang dienkripsi dengan SSE-C. Anda dapat mengonfigurasi replikasi objek SSE-C di konsol Amazon S3 atau dengan cara yang sama seperti Anda mengonfigurasi replikasi untuk objek yang tidak terenkripsi. AWS SDKs Tidak ada izin SSE-C tambahan di luar apa yang saat ini diperlukan untuk replikasi. 

Replikasi S3 secara otomatis mereplikasi objek terenkripsi SSE-C yang baru diunggah jika memenuhi syarat, seperti yang ditentukan dalam konfigurasi Replikasi S3 Anda. Untuk mereplikasi objek yang ada di bucket Anda, gunakan Replikasi Batch S3. Untuk informasi selengkapnya tentang mereplikasi objek, lihat [Menyiapkan ikhtisar replikasi langsung](replication-how-setup.md) dan [Mereplikasi objek yang ada dengan Batch Replication](s3-batch-replication-batch.md).

Tidak ada biaya tambahan untuk mereplikasi objek SSE-C. Untuk detail tentang harga replikasi, lihat harga [Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Mereplikasi objek yang dienkripsi dengan SSE-S3, SSE-KMS, atau DSSE-KMS
<a name="replications"></a>

Secara default, Amazon S3 tidak mereplikasi objek yang dienkripsi dengan SSE-KMS atau DSSE-KMS. Bagian ini menjelaskan elemen konfigurasi tambahan yang dapat Anda tambahkan ke Amazon S3 langsung untuk mereplikasi objek tersebut. 

Untuk contoh dengan step-by-step instruksi, lihat[Mengaktifkan replikasi untuk objek terenkripsi](#replication-walkthrough-4). Untuk informasi tentang pembuatan konfigurasi replikasi, lihat [Mereplikasi objek di dalam dan di seluruh Wilayah](replication.md). 

### Menentukan informasi tambahan dalam konfigurasi replikasi
<a name="replication-kms-extra-config"></a>

Dalam konfigurasi replikasi, Anda melakukan hal berikut:
+ Dalam `Destination` elemen dalam konfigurasi replikasi Anda, tambahkan ID kunci terkelola AWS KMS pelanggan simetris yang Anda ingin Amazon S3 gunakan untuk mengenkripsi replika objek, seperti yang ditunjukkan dalam contoh konfigurasi replikasi berikut. 
+ Pilih ikut secara eksplisit dengan mengaktifkan replikasi objek yang dienkripsi menggunakan kunci KMS (SSE-KMS atau DSSE-KMS). Untuk memilih ikut, tambahkan elemen `SourceSelectionCriteria`, seperti yang ditunjukkan dalam konfigurasi replikasi contoh berikut.

 

```
<ReplicationConfiguration>
   <Rule>
      ...
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>

      <Destination>
          ...
          <EncryptionConfiguration>
             <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same Wilayah AWS as the destination bucket.</ReplicaKmsKeyID>
          </EncryptionConfiguration>
       </Destination>
      ...
   </Rule>
</ReplicationConfiguration>
```

**penting**  
Kunci KMS harus dibuat Wilayah AWS sama dengan bucket tujuan. 
Kunci KMS *harus* valid. Operasi API `PutBucketReplication` tidak memeriksa validitas kunci KMS. Jika menggunakan kunci KMS yang tidak valid, Anda akan menerima kode status `200 OK` HTTP sebagai respons, tetapi replikasi gagal.

Contoh berikut menunjukkan konfigurasi replikasi yang meliputi elemen konfigurasi opsional. Konfigurasi replikasi ini memiliki satu aturan. Aturan ini berlaku untuk objek dengan awalan kunci `Tax`. Amazon S3 menggunakan AWS KMS key ID yang ditentukan untuk mengenkripsi replika objek ini.

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
   <Role>arn:aws:iam::account-id:role/role-name</Role>
   <Rule>
      <ID>Rule-1</ID>
      <Priority>1</Priority>
      <Status>Enabled</Status>
      <DeleteMarkerReplication>
         <Status>Disabled</Status>
      </DeleteMarkerReplication>
      <Filter>
         <Prefix>Tax</Prefix>
      </Filter>
      <Destination>
         <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
         <EncryptionConfiguration>
            <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same Wilayah AWS as the destination bucket.</ReplicaKmsKeyID>
         </EncryptionConfiguration>
      </Destination>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
            <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
   </Rule>
</ReplicationConfiguration>
```

### Memberikan izin tambahan untuk peran IAM
<a name="replication-kms-permissions"></a>

Untuk mereplikasi objek yang dienkripsi saat istirahat menggunakan SSE-S3, SSE-KMS, atau DSSE-KMS, berikan izin tambahan berikut ke peran (IAM) yang Anda tentukan dalam konfigurasi replikasi. AWS Identity and Access Management Anda memberikan izin ini dengan memperbarui kebijakan izin yang terkait dengan peran IAM. 
+ **Tindakan `s3:GetObjectVersionForReplication` untuk objek sumber**–Tindakan ini memungkinkan Amazon S3 mereplikasi objek tidak terenkripsi dan objek yang dibuat dengan enkripsi di sisi server menggunakan SSE-S3, SSE-KMS, atau DSSE-KMS.
**catatan**  
Kami menyarankan Anda menggunakan tindakan `s3:GetObjectVersionForReplication` alih-alih tindakan `s3:GetObjectVersion` karena `s3:GetObjectVersionForReplication` hanya memberi Amazon S3 izin minimum yang diperlukan untuk replikasi. Selain itu, tindakan `s3:GetObjectVersion` memungkinkan replikasi objek tidak terenkripsi dan terenkripsi SSE-S3, tetapi bukan objek yang dienkripsi menggunakan kunci KMS (SSE-KMS atau DSSE-KMS). 
+ **`kms:Decrypt`dan `kms:Encrypt` AWS KMS tindakan untuk kunci KMS**
  + Anda harus memberikan izin `kms:Decrypt` untuk AWS KMS key yang digunakan untuk mendekripsi objek sumber.
  + Anda harus memberikan izin `kms:Encrypt` untuk AWS KMS key yang digunakan untuk mengenkripsi replika objek.
+ **Tindakan `kms:GenerateDataKey` untuk mereplikasi objek plaintext**–Jika Anda mereplikasi objek plaintext ke bucket dengan enkripsi SSE-KMS atau DSSE-KMS yang diaktifkan secara default, Anda harus menyertakan izin `kms:GenerateDataKey` untuk konteks enkripsi tujuan dan kunci KMS dalam kebijakan IAM.

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

Kami menyarankan Anda membatasi izin ini hanya untuk bucket tujuan dan objek dengan menggunakan AWS KMS tombol kondisi. Akun AWS Yang memiliki peran IAM harus memiliki izin untuk `kms:Encrypt` dan `kms:Decrypt` tindakan untuk kunci KMS yang tercantum dalam kebijakan. Jika kunci KMS dimiliki oleh orang lain Akun AWS, pemilik kunci KMS harus memberikan izin ini kepada Akun AWS yang memiliki peran IAM. Untuk informasi selengkapnya tentang mengelola akses ke kunci KMS ini, lihat [Menggunakan kebijakan IAM dengan Panduan AWS KMSAWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) *Pengembang*.

### Replikasi dan Kunci Bucket S3
<a name="bk-replication"></a>

Untuk menggunakan replikasi dengan S3 Bucket Key, AWS KMS key kebijakan untuk kunci KMS yang digunakan untuk mengenkripsi replika objek harus menyertakan `kms:Decrypt` izin untuk prinsipal panggilan. Panggilan ke `kms:Decrypt` memverifikasi integritas Kunci Bucket S3 sebelum menggunakannya. Untuk informasi selengkapnya, lihat [Menggunakan kunci Bucket S3 dengan replikasi](bucket-key.md#bucket-key-replication).

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:

```
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::bucket_ARN"
]
```

Untuk informasi selengkapnya, lihat [Konteks enkripsi (`x-amz-server-side-encryption-context`)](specifying-kms-encryption.md#s3-kms-encryption-context) (di bagian “Menggunakan API REST”) dan [Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3](bucket-key.md#bucket-key-changes).

### Contoh kebijakan: Menggunakan SSE-S3 dan SSE-KMS dengan replikasi
<a name="kms-replication-examples"></a>

Contoh kebijakan IAM berikut menunjukkan pernyataan untuk menggunakan SSE-S3 dan SSE-KMS dengan replikasi.

**Example – Menggunakan SSE-KMS dengan bucket tujuan terpisah**  
Contoh kebijakan berikut menunjukkan pernyataan untuk menggunakan SSE-KMS dengan bucket tujuan terpisah. 

**Example – Mereplikasi objek yang dibuat dengan SSE-S3 dan SSE-KMS**  
Berikut ini adalah kebijakan IAM lengkap yang memberikan izin yang diperlukan untuk mereplikasi objek tidak terenkripsi, objek yang dibuat dengan SSE-S3, dan objek yang dibuat dengan SSE-KMS.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket/prefix1*"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      }
   ]
}
```

**Example – Mereplikasi objek dengan Kunci Bucket S3**  
Berikut ini adalah kebijakan IAM lengkap yang memberikan izin yang diperlukan untuk mereplikasi objek dengan Kunci Bucket S3.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/key-prefix1*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-source-bucket"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:us-east-1:111122223333:key/key-id"
         ]
      }
   ]
}
```

### Memberikan izin tambahan untuk skenario lintas akun
<a name="replication-kms-cross-acct-scenario"></a>

Dalam skenario lintas akun, di mana bucket sumber dan tujuan dimiliki oleh yang berbeda Akun AWS, Anda dapat menggunakan kunci KMS untuk mengenkripsi replika objek. Namun, pemilik kunci KMS harus memberikan izin pemilik bucket sumber untuk menggunakan kunci KMS. 

**catatan**  
Jika Anda perlu mereplikasi data lintas akun SSE-KMS, maka aturan replikasi Anda harus menentukan [kunci yang dikelola pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) untuk akun tujuan. AWS KMS [Kunci yang dikelola AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)jangan izinkan penggunaan lintas akun, dan karenanya tidak dapat digunakan untuk melakukan replikasi lintas akun.<a name="cross-acct-kms-key-permission"></a>

**Untuk memberikan izin kepada pemilik bucket sumber untuk menggunakan kunci KMS (AWS KMS konsol)**

1. Masuk ke Konsol Manajemen AWS dan buka AWS KMS konsol di [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.

1. Untuk melihat tombol di akun yang Anda buat dan kelola, di panel navigasi pilih **CMK**.

1. Pilih tombol KMS.

1. Di bawah bagian **Konfigurasi umum**, pilih tab **Kebijakan kunci**.

1. Gulir ke bawah ke **Lainnya Akun AWS**.

1. Pilih **Tambahkan lainnya Akun AWS**. 

   Kotak Akun AWS dialog **Lainnya** muncul. 

1. Di kotak dialog, pilih **Tambahkan yang lain Akun AWS**. Untuk **arn:aws:iam::**, masukkan ID akun bucket sumber.

1. Pilih **Simpan perubahan**.

**Untuk memberikan izin kepada pemilik bucket sumber untuk menggunakan kunci KMS (AWS CLI)**
+ Untuk informasi tentang perintah `put-key-policy` AWS Command Line Interface (AWS CLI), lihat [https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)di * AWS CLI Command Reference*. Untuk informasi tentang operasi API `PutKeyPolicy` yang mendasarinya, lihat [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) di [Referensi API AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/APIReference/).

### AWS KMS pertimbangan kuota transaksi
<a name="crr-kms-considerations"></a>

Saat Anda menambahkan banyak objek baru dengan AWS KMS enkripsi setelah mengaktifkan Replikasi Lintas Wilayah (CRR), Anda mungkin mengalami pelambatan (kesalahan HTTP). `503 Service Unavailable` Throttling terjadi ketika jumlah AWS KMS transaksi per detik melebihi kuota saat ini. Untuk informasi selengkapnya, lihat [Kuota](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) di *Panduan Developer AWS Key Management Service *.

Untuk meminta peningkatan kuota, gunakan Kuota Layanan. Untuk informasi selengkapnya, lihat [Meminta peningkatan kuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html). Jika Service Quotas tidak didukung di Wilayah Anda, [buka case](https://console.aws.amazon.com/support/home#/). AWS Dukungan 

## Mengaktifkan replikasi untuk objek terenkripsi
<a name="replication-walkthrough-4"></a>

Secara default, Amazon S3 tidak mereplikasi objek yang dienkripsi dengan menggunakan enkripsi sisi server dengan () kunci (SSE-KMS) atau enkripsi sisi server AWS Key Management Service dua lapis dengan kunci (DSSE-KMS AWS KMS). AWS KMS Untuk mereplikasi objek yang dienkripsi dengan SSE-KMS atau DSS-KMS, Anda harus memodifikasi konfigurasi replikasi bucket agar Amazon S3 dapat mereplikasi objek tersebut. Contoh ini menjelaskan cara menggunakan konsol Amazon S3 dan AWS Command Line Interface (AWS CLI) untuk mengubah konfigurasi replikasi bucket guna mengaktifkan replikasi objek terenkripsi.

**catatan**  
Saat Kunci Bucket S3 diaktifkan untuk bucket sumber atau tujuan, konteks enkripsi akan menjadi Amazon Resource Name (ARN) bucket, bukan ARN objek. Anda harus memperbarui kebijakan IAM Anda untuk menggunakan ARN bucket untuk konteks enkripsi. Untuk informasi selengkapnya, lihat [Replikasi dan Kunci Bucket S3](#bk-replication).

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

### Menggunakan konsol S3
<a name="replication-ex4-console"></a>

Untuk step-by-step instruksi, lihat[Mengkonfigurasi replikasi untuk bucket di akun yang sama](replication-walkthrough1.md). Topik ini memberikan instruksi untuk menyetel konfigurasi replikasi ketika bucket sumber dan tujuan dimiliki oleh yang sama dan berbeda. Akun AWS

### Menggunakan AWS CLI
<a name="replication-ex4-cli"></a>

Untuk mereplikasi objek terenkripsi dengan AWS CLI, Anda melakukan hal berikut: 
+ Buat bucket sumber dan tujuan, lalu aktifkan Penentuan Versi pada bucket ini. 
+ Buat peran layanan AWS Identity and Access Management (IAM) yang memberikan izin Amazon S3 untuk mereplikasi objek. Izin peran IAM mencakup izin yang diperlukan untuk mereplikasi objek yang dienkripsi.
+ Tambahkan konfigurasi replikasi ke bucket sumber. Konfigurasi replikasi menyediakan informasi yang terkait dengan replikasi objek yang dienkripsi dengan menggunakan kunci KMS.
+ Tambahkan objek terenkripsi ke bucket sumber. 
+ Uji penyiapan untuk mengonfirmasi bahwa objek terenkripsi Anda sedang direplikasi ke bucket tujuan.

Prosedur berikut memandu Anda menjalankan proses ini. 

**Untuk mereplikasi objek yang dienkripsi di sisi server (AWS CLI)**

Untuk menggunakan contoh dalam prosedur ini, ganti `user input placeholders` dengan informasi Anda sendiri.

1. Dalam contoh ini, Anda membuat bucket source (*`amzn-s3-demo-source-bucket`*) dan destination (*`amzn-s3-demo-destination-bucket`*) secara bersamaan Akun AWS. Anda juga menetapkan profil kredensial untuk AWS CLI. Contoh ini menggunakan nama profil `acctA`. 

   Untuk informasi tentang menyetel profil kredensi dan menggunakan profil bernama, lihat [Pengaturan konfigurasi dan file kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) di *AWS Command Line Interface Panduan Pengguna*. 

1. Gunakan perintah berikut untuk membuat bucket `amzn-s3-demo-source-bucket` dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucket `amzn-s3-demo-source-bucket` di Wilayah AS Timur (Virginia Utara) (`us-east-1`).

   ```
   aws s3api create-bucket \
   --bucket amzn-s3-demo-source-bucket \
   --region us-east-1 \
   --profile acctA
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket amzn-s3-demo-source-bucket \
   --versioning-configuration Status=Enabled \
   --profile acctA
   ```

1. Gunakan perintah berikut untuk membuat bucket `amzn-s3-demo-destination-bucket` dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucket `amzn-s3-demo-destination-bucket` di Wilayah AS Barat (Oregon) (`us-west-2`). 
**catatan**  
Untuk menyiapkan konfigurasi replikasi saat bucket `amzn-s3-demo-source-bucket` dan `amzn-s3-demo-destination-bucket` berada di Akun AWS yang sama, Anda menggunakan profil yang sama. Contoh ini menggunakan `acctA`. Untuk mengonfigurasi replikasi ketika bucket dimiliki oleh yang berbeda Akun AWS, Anda menentukan profil yang berbeda untuk masing-masing. 

   

   ```
   aws s3api create-bucket \
   --bucket amzn-s3-demo-destination-bucket \
   --region us-west-2 \
   --create-bucket-configuration LocationConstraint=us-west-2 \
   --profile acctA
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket amzn-s3-demo-destination-bucket \
   --versioning-configuration Status=Enabled \
   --profile acctA
   ```

1. Di samping itu, Anda membuat peran layanan IAM. Anda akan menentukan peran ini dalam konfigurasi replikasi yang Anda tambahkan ke `amzn-s3-demo-source-bucket` bucket nanti. Amazon S3 mengasumsikan peran ini untuk mereplikasi objek atas nama Anda. Anda membuat peran IAM dalam dua langkah:
   + Membuat peran layanan.
   + Lampirkan kebijakan izin pada peran tersebut.

   1. Untuk membuat peran layanan IAM, lakukan hal berikut:

      1. Salin kebijakan kepercayaan berikut dan simpan ke file bernama `s3-role-trust-policy-kmsobj.json` di direktori saat ini di komputer lokal Anda. Kebijakan ini memberikan izin utama layanan Amazon S3 untuk mengambil peran sehingga Amazon S3 dapat melakukan tugas atas nama Anda.

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

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Effect":"Allow",
                  "Principal":{
                     "Service":"s3.amazonaws.com"
                  },
                  "Action":"sts:AssumeRole"
               }
            ]
         }
         ```

------

      1. Gunakan perintah berikut ini untuk membuat peran tersebut:

         ```
         $ aws iam create-role \
         --role-name replicationRolekmsobj \
         --assume-role-policy-document file://s3-role-trust-policy-kmsobj.json  \
         --profile acctA
         ```

   1. Selanjutnya, Anda melampirkan kebijakan izin pada peran tersebut. Kebijakan ini memberikan izin untuk berbagai bucket dan tindakan objek Amazon S3. 

      1. Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama `s3-role-permissions-policykmsobj.json` di direktori saat ini di komputer lokal Anda. Anda akan membuat peran IAM dan melampirkan kebijakannya nanti. 
**penting**  
Dalam kebijakan izin, Anda menentukan AWS KMS kunci IDs yang akan digunakan untuk enkripsi `amzn-s3-demo-source-bucket` dan `amzn-s3-demo-destination-bucket` bucket. Anda harus membuat dua kunci KMS terpisah untuk `amzn-s3-demo-source-bucket` dan `amzn-s3-demo-destination-bucket` ember. AWS KMS keys tidak dibagi Wilayah AWS di luar tempat mereka diciptakan. 

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

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Action":[
                     "s3:ListBucket",
                     "s3:GetReplicationConfiguration",
                     "s3:GetObjectVersionForReplication",
                     "s3:GetObjectVersionAcl",
                     "s3:GetObjectVersionTagging"
                  ],
                  "Effect":"Allow",
                  "Resource":[
                     "arn:aws:s3:::amzn-s3-demo-source-bucket",
                     "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                  ]
               },
               {
                  "Action":[
                     "s3:ReplicateObject",
                     "s3:ReplicateDelete",
                     "s3:ReplicateTags"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLikeIfExists":{
                        "s3:x-amz-server-side-encryption":[
                           "aws:kms",
                           "AES256",
                           "aws:kms:dsse"
                        ],
                        "s3:x-amz-server-side-encryption-aws-kms-key-id":[
                           "AWS KMS key IDs(in ARN format) to use for encrypting object replicas"  
                        ]
                     }
                  },
                  "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
               },
               {
                  "Action":[
                     "kms:Decrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.us-east-1.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:us-east-1:111122223333:key/key-id" 
                  ]
               },
               {
                  "Action":[
                     "kms:Encrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.us-west-2.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:us-west-2:111122223333:key/key-id" 
                  ]
               }
            ]
         }
         ```

------

      1. Buat kebijakan dan lampirkan ke peran tersebut.

         ```
         $ aws iam put-role-policy \
         --role-name replicationRolekmsobj \
         --policy-document file://s3-role-permissions-policykmsobj.json \
         --policy-name replicationRolechangeownerPolicy \
         --profile acctA
         ```

1. Selanjutnya, tambahkan konfigurasi replikasi berikut ke bucket `amzn-s3-demo-source-bucket`. Ini memberi tahu Amazon S3 untuk mereplikasi objek dengan awalan `Tax/` ke bucket `amzn-s3-demo-destination-bucket`. 
**penting**  
Dalam konfigurasi replikasi, Anda menentukan peran IAM yang dapat diasumsikan oleh Amazon S3. Anda dapat melakukannya hanya jika Anda memiliki izin `iam:PassRole`. Profil yang Anda tentukan dalam perintah CLI harus memiliki izin ini. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *Panduan Pengguna IAM*.

   ```
    <ReplicationConfiguration>
     <Role>IAM-Role-ARN</Role>
     <Rule>
       <Priority>1</Priority>
       <DeleteMarkerReplication>
          <Status>Disabled</Status>
       </DeleteMarkerReplication>
       <Filter>
          <Prefix>Tax</Prefix>
       </Filter>
       <Status>Enabled</Status>
       <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
       </SourceSelectionCriteria>
       <Destination>
         <Bucket>arn:aws:s3:::amzn-s3-demo-destination-bucket</Bucket>
         <EncryptionConfiguration>
           <ReplicaKmsKeyID>AWS KMS key IDs to use for encrypting object replicas</ReplicaKmsKeyID>
         </EncryptionConfiguration>
       </Destination>
     </Rule>
   </ReplicationConfiguration>
   ```

   Untuk menambahkan konfigurasi replikasi ke bucket `amzn-s3-demo-source-bucket`, lakukan hal berikut:

   1. Ini AWS CLI mengharuskan Anda untuk menentukan konfigurasi replikasi sebagai JSON. Simpan JSON berikut dalam file (`replication.json`) dalam direktori saat ini di komputer lokal Anda. 

      ```
      {
         "Role":"IAM-Role-ARN",
         "Rules":[
            {
               "Status":"Enabled",
               "Priority":1,
               "DeleteMarkerReplication":{
                  "Status":"Disabled"
               },
               "Filter":{
                  "Prefix":"Tax"
               },
               "Destination":{
                  "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket",
                  "EncryptionConfiguration":{
                     "ReplicaKmsKeyID":"AWS KMS key IDs (in ARN format) to use for encrypting object replicas"
                  }
               },
               "SourceSelectionCriteria":{
                  "SseKmsEncryptedObjects":{
                     "Status":"Enabled"
                  }
               }
            }
         ]
      }
      ```

   1. Edit JSON guna memberikan nilai untuk bucket `amzn-s3-demo-destination-bucket`, `AWS KMS key IDs (in ARN format)`, dan `IAM-role-ARN`. Simpan perubahan.

   1. Gunakan perintah berikut untuk menambahkan konfigurasi replikasi ke bucket `amzn-s3-demo-source-bucket` Anda. Pastikan untuk memberikan nama bucket `amzn-s3-demo-source-bucket`.

      ```
      $ aws s3api put-bucket-replication \
      --replication-configuration file://replication.json \
      --bucket amzn-s3-demo-source-bucket \
      --profile acctA
      ```

1. Uji konfigurasi untuk memverifikasi bahwa objek terenkripsi direplikasi. Di konsol Amazon S3, lakukan berikut ini:

   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 bucket `amzn-s3-demo-source-bucket`, buat folder bernama `Tax`. 

   1. Tambahkan objek sampel ke folder. Pastikan untuk memilih opsi enkripsi dan tentukan kunci KMS Anda untuk mengenkripsi objek. 

   1. Pastikan bahwa bucket `amzn-s3-demo-destination-bucket` berisi replika objek dan dienkripsi menggunakan kunci KMS yang Anda tentukan dalam konfigurasi. Untuk informasi selengkapnya, lihat [Mendapatkan informasi status replikasi](replication-status.md).

### Menggunakan AWS SDKs
<a name="replication-ex4-sdk"></a>

Untuk contoh kode yang menunjukkan cara menambahkan konfigurasi replikasi, lihat [Menggunakan AWS SDKs](replication-walkthrough1.md#replication-ex1-sdk). Anda harus memodifikasi konfigurasi replikasi dengan tepat. 

 