Mereplikasi objek terenkripsi (SSE-S3, SSE -, -KMS, -C) DSSE KMS SSE - Amazon Simple Storage Service

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, -C) DSSE KMS SSE

penting

Amazon S3 sekarang menerapkan enkripsi sisi server dengan kunci terkelola Amazon S3 (SSE-S3) sebagai tingkat dasar enkripsi untuk 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 AWS CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons Amazon S3 tambahan di dan. API AWS Command Line Interface AWS SDKs Untuk informasi selengkapnya, lihat Enkripsi default FAQ.

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 sisi server dengan kunci terkelola Amazon S3 (-S3) SSE

  • Enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) (-) SSE KMS

  • Enkripsi sisi server dua lapis dengan kunci (-) AWS KMS DSSE KMS

  • Enkripsi sisi server dengan kunci yang disediakan pelanggan (-C) SSE

Untuk informasi lebih lanjut tentang enkripsi di sisi server, lihat Melindungi data dengan enkripsi di sisi klien.

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 AWS Identity and Access Management (IAM) kebijakan yang memberikan izin yang diperlukan untuk mereplikasi objek terenkripsi.

Untuk contoh dengan step-by-step instruksi, lihatMengaktifkan replikasi untuk objek terenkripsi. Untuk informasi tentang pembuatan konfigurasi replikasi, lihat Mereplikasi objek di dalam dan di seluruh Wilayah.

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 di Panduan AWS Key Management Service Pengembang.

Bagaimana enkripsi bucket default memengaruhi replikasi

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 menggunakanETags, Anda harus memperbarui aplikasi tersebut untuk memperhitungkan perbedaan ini.

  • Jika objek dalam bucket sumber dienkripsi menggunakan enkripsi sisi server dengan kunci terkelola Amazon S3 (-S3), enkripsi sisi server dengan kunci (SSE) AWS Key Management Service (AWS KMS-), atau enkripsi sisi server dua lapis dengan kunci (SSE-KMS), objek replika di bucket tujuan menggunakan jenis enkripsi yang sama dengan AWS KMS objek sumber. DSSE KMS Pengaturan enkripsi default bucket tujuan tidak digunakan.

Mereplikasi objek yang dienkripsi dengan -C SSE

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 sementara 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 sisi server dengan kunci yang disediakan pelanggan (-C) SSE.

S3 Replikasi mendukung objek yang dienkripsi dengan -C. SSE Anda dapat mengonfigurasi replikasi objek SSE -C di konsol Amazon S3 atau dengan AWS SDKs cara yang sama seperti Anda mengonfigurasi replikasi untuk objek yang tidak terenkripsi. 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 dan Mereplikasi objek yang ada dengan Batch Replication.

Tidak ada biaya tambahan untuk mereplikasi objek SSE -C. Untuk detail tentang harga replikasi, lihat harga Amazon S3.

Mereplikasi objek yang dienkripsi dengan SSE -S3, -, atau - SSE KMS DSSE KMS

Secara default, Amazon S3 tidak mereplikasi objek yang dienkripsi dengan - atau -. SSE KMS 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, lihatMengaktifkan replikasi untuk objek terenkripsi. Untuk informasi tentang pembuatan konfigurasi replikasi, lihat Mereplikasi objek di dalam dan di seluruh Wilayah.

Menentukan informasi tambahan dalam konfigurasi replikasi

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.

  • Secara eksplisit ikut serta dengan mengaktifkan replikasi objek yang dienkripsi dengan menggunakan KMS kunci (- atau -). SSE KMS 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
  • KMSKuncinya harus dibuat Wilayah AWS sama dengan bucket tujuan.

  • KMSKuncinya harus valid. PutBucketReplicationAPIOperasi tidak memeriksa validitas KMS kunci. Jika Anda menggunakan KMS kunci yang tidak valid, Anda akan menerima kode HTTP 200 OK status sebagai tanggapan, 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 tersebut IAM

Untuk mereplikasi objek yang dienkripsi saat istirahat dengan menggunakan SSE -S3, SSE -, atau DSSE - KMSKMS, berikan izin tambahan berikut ke peran AWS Identity and Access Management (IAM) yang Anda tentukan dalam konfigurasi replikasi. Anda memberikan izin ini dengan memperbarui kebijakan izin yang terkait dengan peran tersebut. IAM

  • s3:GetObjectVersionForReplicationtindakan untuk objek sumber — Tindakan ini memungkinkan Amazon S3 untuk mereplikasi objek dan objek yang tidak terenkripsi yang dibuat dengan enkripsi sisi server dengan menggunakan -S3, -, atau -. SSE SSE KMS 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, s3:GetObjectVersion tindakan ini memungkinkan replikasi objek yang tidak terenkripsi dan SSE -S3 terenkripsi, tetapi bukan objek yang dienkripsi dengan menggunakan kunci (- atau -). KMS SSE KMS DSSE KMS

  • kms:Decryptdan kms:Encrypt AWS KMS tindakan untuk KMS kunci

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

  • kms:GenerateDataKeytindakan untuk mereplikasi objek plaintext — Jika Anda mereplikasi objek plaintext ke bucket dengan KMS enkripsi SSE - KMS atau DSSE - yang diaktifkan secara default, Anda harus menyertakan kms:GenerateDataKey izin untuk konteks enkripsi tujuan dan kunci dalam kebijakan. KMS IAM

Kami menyarankan Anda membatasi izin ini hanya untuk bucket tujuan dan objek dengan menggunakan AWS KMS tombol kondisi. Akun AWS Yang memiliki IAM peran harus memiliki izin untuk kms:Encrypt dan kms:Decrypt tindakan untuk KMS kunci yang tercantum dalam kebijakan. Jika KMS kunci dimiliki oleh orang lain Akun AWS, pemilik KMS kunci harus memberikan izin ini kepada Akun AWS yang memiliki peran tersebutIAM. Untuk informasi selengkapnya tentang mengelola akses ke KMS kunci ini, lihat Menggunakan IAM kebijakan dengan AWS KMS di Panduan AWS Key Management Service Pengembang.

Replikasi dan Kunci Bucket S3

Untuk menggunakan replikasi dengan Kunci Bucket S3, AWS KMS key kebijakan KMS kunci 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.

Jika Kunci Bucket S3 diaktifkan untuk bucket sumber atau tujuan, konteks enkripsi akan menjadi Amazon Resource Name (ARN) bucket, bukan objek ARN (misalnya,arn:aws:s3:::bucket_ARN). Anda harus memperbarui IAM kebijakan Anda untuk menggunakan bucket ARN untuk konteks enkripsi:

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

Untuk informasi lebih lanjut, lihat Konteks enkripsi (x-amz-server-side-encryption-context) (di bagian “Menggunakan RESTAPI”) danPerubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3.

Contoh kebijakan: Menggunakan SSE -S3 dan SSE - KMS dengan replikasi

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

contoh — Menggunakan SSE - KMS dengan ember tujuan terpisah

Contoh kebijakan berikut menunjukkan pernyataan untuk menggunakan SSE - KMS dengan bucket tujuan terpisah.

{ "Version":"2012-10-17", "Statement":[ { "Action": ["kms:Decrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] } }, "Resource": [ "List of AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-1-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket1/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Wilayah AWS as destination bucket 1). Used to encrypt object replicas created in destination bucket 1." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-2-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket2/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Wilayah AWS as destination bucket 2). Used to encrypt object replicas created in destination bucket 2." ] } ] }
contoh — Mereplikasi objek yang dibuat dengan SSE -S3 dan - SSE KMS

Berikut ini adalah IAM kebijakan lengkap yang memberikan izin yang diperlukan untuk mereplikasi objek yang 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.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-source-bucket/key-prefix1*" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-destination-bucket/prefix1*" ] } }, "Resource":[ "AWS KMS key ARNs (in the same Wilayah AWS as the destination bucket) to use for encrypting object replicas" ] } ] }
contoh – Mereplikasi objek dengan Kunci Bucket S3

Berikut ini adalah IAM kebijakan lengkap yang memberikan izin yang diperlukan untuk mereplikasi objek dengan S3 Bucket Keys.

{ "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.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-source-bucket" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] } }, "Resource":[ "AWS KMS key ARNs (in the same Wilayah AWS as the destination bucket) to use for encrypting object replicas" ] } ] }

Memberikan izin tambahan untuk skenario lintas akun

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

catatan

Jika Anda perlu mereplikasi SSE - KMS data lintas akun, maka aturan replikasi Anda harus menentukan kunci yang dikelola pelanggan AWS KMS untuk akun tujuan. Kunci yang dikelola AWSjangan izinkan penggunaan lintas akun, dan karenanya tidak dapat digunakan untuk melakukan replikasi lintas akun.

Untuk memberikan izin kepada pemilik bucket sumber untuk menggunakan KMS kunci (AWS KMS konsol)
  1. Masuk ke AWS Management Console dan buka AWS KMS konsol di https://console.aws.amazon.com/kms.

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

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

  4. Memilih kunci KMS.

  5. Di bawah bagian Konfigurasi umum, pilih tab Kebijakan kunci.

  6. Gulir ke bawah ke Lainnya Akun AWS.

  7. Pilih Tambahkan lainnya Akun AWS.

    Kotak Akun AWS dialog Lainnya muncul.

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

  9. Pilih Simpan perubahan.

Untuk memberikan izin pemilik bucket sumber untuk menggunakan KMS key (AWS CLI)

AWS KMS pertimbangan kuota transaksi

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 di Panduan Developer AWS Key Management Service .

Untuk meminta peningkatan kuota, gunakan Kuota Layanan. Untuk informasi selengkapnya, lihat Meminta peningkatan kuota. Jika Service Quotas tidak didukung di Wilayah Anda, buka kasing. AWS Support

Mengaktifkan replikasi untuk objek terenkripsi

Secara default, Amazon S3 tidak mereplikasi objek yang dienkripsi dengan menggunakan enkripsi sisi server dengan AWS Key Management Service () keys (-AWS KMS) atau enkripsi sisi server dual-layer dengan keys (SSE-KMS). AWS KMS DSSE KMS Untuk mereplikasi objek yang dienkripsi dengan SSE - KMS atau DSS -KMS, Anda harus memodifikasi konfigurasi replikasi bucket untuk memberi tahu Amazon S3 agar mereplikasi objek ini. 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 IAM kebijakan Anda untuk menggunakan bucket ARN untuk konteks enkripsi. Untuk informasi selengkapnya, lihat Replikasi dan Kunci Bucket S3.

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 di Panduan AWS Key Management Service Pengembang.

Untuk step-by-step instruksi, lihatMengkonfigurasi replikasi untuk bucket di akun yang sama. Topik ini memberikan instruksi untuk menyetel konfigurasi replikasi ketika bucket sumber dan tujuan dimiliki oleh yang sama dan berbeda. Akun AWS

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 IAM peran termasuk izin yang diperlukan untuk mereplikasi objek terenkripsi.

  • Tambahkan konfigurasi replikasi ke bucket sumber. Konfigurasi replikasi memberikan 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 kedua sumber (amzn-s3-demo-source-bucket) dan tujuan (amzn-s3-demo-destination-bucket) ember dalam hal yang sama 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 di AWS Command Line Interface Panduan Pengguna.

  2. 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
  3. 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
  4. Selanjutnya, Anda membuat peran IAM layanan. 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 IAM peran dalam dua langkah:

    • Membuat peran layanan.

    • Lampirkan kebijakan izin pada peran tersebut.

    1. Untuk membuat peran IAM layanan, 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.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. 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
    2. 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 IAM peran dan melampirkan kebijakan itu 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 KMS kunci terpisah untuk ember amzn-s3-demo-source-bucket dan amzn-s3-demo-destination-bucket ember. AWS KMS keys tidak dibagikan Wilayah AWS di luar tempat mereka diciptakan.

        { "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":[ "AWS KMS key IDs(in ARN format) used to encrypt source objects." ] }, { "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":[ "AWS KMS key IDs (in ARN format) to use for encrypting object replicas" ] } ] }
      2. 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
  5. 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 IAM peran yang dapat diasumsikan oleh Amazon S3. Anda dapat melakukannya hanya jika Anda memiliki izin iam:PassRole. Profil yang Anda tentukan dalam CLI perintah harus memiliki izin ini. Untuk informasi selengkapnya, lihat Memberikan izin pengguna untuk meneruskan peran ke Layanan AWS dalam IAMPanduan Pengguna.

    <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 sebagaiJSON. Simpan berikut ini JSON dalam file (replication.json) di 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" } } } ] }
    2. Edit JSON file untuk memberikan nilai untuk amzn-s3-demo-destination-bucket bucket,AWS KMS key IDs (in ARN format), danIAM-role-ARN. Simpan perubahan.

    3. 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
  6. Uji konfigurasi untuk memverifikasi bahwa objek terenkripsi direplikasi. Di konsol Amazon S3, lakukan berikut ini:

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

    2. Di bucket amzn-s3-demo-source-bucket, buat folder bernama Tax.

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

    4. Verifikasi bahwa amzn-s3-demo-destination-bucket bucket berisi replika objek dan dienkripsi dengan menggunakan KMS kunci yang Anda tentukan dalam konfigurasi. Untuk informasi selengkapnya, lihat Mendapatkan informasi status replikasi.

Untuk contoh kode yang menunjukkan cara menambahkan konfigurasi replikasi, lihat Menggunakan AWS SDKs. Anda harus memodifikasi konfigurasi replikasi dengan tepat.