Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, SSE-KMS) - 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, SSE-KMS)

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 AWS CloudTrail log, S3 Inventory, S3 Storage Lens, konsol Amazon S3, dan sebagai header respons API Amazon S3 tambahan di dan SDK. AWS Command Line Interface AWS Untuk informasi selengkapnya, lihat FAQ enkripsi default.

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.

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, lihatMengaktifkan replikasi untuk objek terenkripsi. Untuk informasi tentang pembuatan konfigurasi replikasi, lihat Mereplikasi ikhtisar objek.

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

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 (ETag) dari objek sumber berbeda dari ETag objek replika. Jika Anda memiliki aplikasi yang menggunakan ETag, 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.

Mereplikasi objek yang dienkripsi dengan SSE-C

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

S3 Replikasi mendukung objek yang dienkripsi dengan SSE-C. Anda dapat mengonfigurasi replikasi objek SSE-C di konsol Amazon S3 atau dengan AWS SDK, dengan 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 replikasi langsung dan Mereplikasi objek yang ada dengan Replikasi Batch S3.

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

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

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, lihatMengaktifkan replikasi untuk objek terenkripsi. Untuk informasi tentang pembuatan konfigurasi replikasi, lihat Mereplikasi ikhtisar objek.

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.

  • 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 ember 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 ID AWS KMS key tertentu 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:::example-s3-destination-bucket</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>AWS KMS key ARN or Key Alias ARN that's in the same Wilayah AWS as the destination bucket. (S3 uses this key to encrypt object replicas.)</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> <SourceSelectionCriteria> <SseKmsEncryptedObjects> <Status>Enabled</Status> </SseKmsEncryptedObjects> </SourceSelectionCriteria> </Rule> </ReplicationConfiguration>

Memberikan izin tambahan untuk peran IAM

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:Decryptdan 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.

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

Replikasi dan Kunci Bucket S3

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.

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) (di bagian “Menggunakan API REST”) dan Perubahan yang perlu diperhatikan sebelum mengaktifkan Kunci Bucket S3.

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

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

contoh – Menggunakan SSE-KMS dengan bucket 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:::example-s3-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:::example-s3-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:::example-s3-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 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:::example-s3-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::example-s3-source-bucket/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::example-s3-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:::example-s3-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:::example-s3-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 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:::example-s3-source-bucket" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::example-s3-source-bucket/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::example-s3-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:::example-s3-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:::example-s3-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 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 untuk akun tujuan. AWS KMS 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 kunci KMS (konsol AWS KMS )
  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. Pilih tombol 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 kepada pemilik bucket sumber untuk menggunakan kunci KMS (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 () 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.

Untuk informasi selengkapnya, lihat Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, SSE-KMS).

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.

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

Untuk step-by-step instruksi, lihatMengonfigurasi replikasi untuk bucket sumber dan tujuan yang dimiliki oleh akun yang sama. Topik ini memberikan instruksi untuk mengatur konfigurasi replikasi ketika bucket 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 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)
  1. Dalam contoh ini, Anda membuat bucket example-s3-source-bucket dan example-s3-destination-bucket dalam Akun AWS yang sama. Anda juga menetapkan profil kredensial untuk AWS CLI. Contoh ini menggunakan nama profil acctA.

    Untuk informasi selengkapnya tentang menyetel profil kredensi, lihat Profil Bernama di Panduan AWS Command Line Interface Pengguna. Untuk menggunakan contoh dalam perintah ini, ganti user input placeholders dengan informasi Anda sendiri.

  2. Gunakan perintah berikut untuk membuat bucket DOC-EXAMPLE-SOURCE-BUCKET dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucket DOC-EXAMPLE-SOURCE-BUCKET di Wilayah AS Timur (Virginia Utara) (us-east-1).

    aws s3api create-bucket \ --bucket DOC-EXAMPLE-SOURCE-BUCKET \ --region us-east-1 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket DOC-EXAMPLE-SOURCE-BUCKET \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Gunakan perintah berikut untuk membuat bucket DOC-EXAMPLE-DESTINATION-BUCKET dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucket DOC-EXAMPLE-DESTINATION-BUCKET di Wilayah AS Barat (Oregon) (us-west-2).

    catatan

    Untuk mengatur konfigurasi replikasi saat keduanya DOC-EXAMPLE-SOURCE-BUCKETdan DOC-EXAMPLE-DESTINATION-BUCKETbucket berada dalam kondisi yang sama Akun AWS, Anda menggunakan profil yang sama. Dalam contoh ini, kami menggunakan acctA. Untuk mengonfigurasi replikasi ketika bucket dimiliki oleh Akun AWS yang berbeda, Anda menentukan profil yang berbeda untuk masing-masing bucket.

    aws s3api create-bucket \ --bucket DOC-EXAMPLE-DESTINATION-BUCKET \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket DOC-EXAMPLE-DESTINATION-BUCKET \ --versioning-configuration Status=Enabled \ --profile acctA
  4. Di samping itu, Anda membuat peran layanan IAM. Anda akan menentukan peran ini dalam konfigurasi replikasi yang Anda tambahkan ke bucket DOC-EXAMPLE-SOURCE-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 memberi Amazon S3 izin pengguna utama layanan untuk mengasumsikan 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 peran IAM dan melampirkan kebijakannya nanti.

        penting

        Dalam kebijakan izin, Anda menentukan ID AWS KMS kunci yang akan digunakan untuk enkripsi example-s3-source-bucket dan example-s3-destination-bucket bucket. Anda harus membuat dua kunci KMS terpisah untuk bucket example-s3-source-bucket dan example-s3-destination-bucket. AWS KMS keys tidak dibagi 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:::example-s3-source-bucket", "arn:aws:s3:::example-s3-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:::example-s3-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:::example-s3-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:::example-s3-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 example-s3-source-bucket. Ini memberi tahu Amazon S3 untuk mereplikasi objek dengan awalan Tax/ ke bucket example-s3-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 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:::example-s3-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 example-s3-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:::example-s3-destination-bucket", "EncryptionConfiguration":{ "ReplicaKmsKeyID":"AWS KMS key IDs (in ARN format) to use for encrypting object replicas" } }, "SourceSelectionCriteria":{ "SseKmsEncryptedObjects":{ "Status":"Enabled" } } } ] }
    2. Edit JSON guna memberikan nilai untuk bucket example-s3-destination-bucket, AWS KMS key IDs (in ARN format), dan IAM-role-ARN. Simpan perubahan.

    3. Gunakan perintah berikut untuk menambahkan konfigurasi replikasi ke bucket example-s3-source-bucket Anda. Pastikan untuk memberikan nama bucket example-s3-source-bucket.

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket example-s3-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 example-s3-source-bucket, buat folder bernama Tax.

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

    4. Pastikan bahwa bucket example-s3-destination-bucket berisi replika objek dan dienkripsi menggunakan kunci KMS 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 SDK. Anda harus memodifikasi konfigurasi replikasi dengan tepat.

Untuk informasi konseptual, lihat Mereplikasi objek terenkripsi (SSE-S3, SSE-KMS, SSE-KMS).