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)
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. AWS Command Line Interface AWS SDKs 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 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.
Topik
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 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
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 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 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, 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 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. -
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 status200 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
. Amazon S3 menggunakan AWS KMS key ID yang ditentukan untuk mengenkripsi replika objek ini.Tax
<?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:::</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>
amzn-s3-demo-destination-bucket
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
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 tindakans3:GetObjectVersion
karenas3:GetObjectVersionForReplication
hanya memberi Amazon S3 izin minimum yang diperlukan untuk replikasi. Selain itu, tindakans3: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
dankms: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 izinkms: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:::
). Anda harus memperbarui kebijakan IAM Anda untuk menggunakan ARN bucket untuk konteks enkripsi:bucket_ARN
"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:::/
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 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:::
" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/
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 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:::
" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/
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:::" ] } }, "Resource":[ "
amzn-s3-demo-source-bucket
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:::" ] } }, "Resource":[ "
amzn-s3-demo-destination-bucket
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 )
-
Masuk ke AWS Management Console dan buka AWS KMS konsol di https://console.aws.amazon.com/kms
. -
Untuk mengubah Wilayah AWS, gunakan pemilih Wilayah di sudut kanan atas halaman.
-
Untuk melihat tombol di akun yang Anda buat dan kelola, di panel navigasi pilih CMK.
-
Pilih tombol KMS.
-
Di bawah bagian Konfigurasi umum, pilih tab Kebijakan kunci.
-
Gulir ke bawah ke Lainnya Akun AWS.
-
Pilih Tambahkan lainnya Akun AWS.
Kotak Akun AWS dialog Lainnya muncul.
-
Di kotak dialog, pilih Tambahkan yang lain Akun AWS. Untuk arn:aws:iam::, masukkan ID akun bucket sumber.
-
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 put-key-policypada AWS CLI Command Reference. Untuk informasi tentang operasiPutKeyPolicy
API yang mendasarinya, lihat PutKeyPolicy di Referensi API AWS Key Management Service.
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
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.
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 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 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
dengan informasi Anda sendiri.user
input placeholders
-
Dalam contoh ini, Anda membuat bucket source (
) dan destination (amzn-s3-demo-source-bucket
) secara bersamaan Akun AWS. Anda juga menetapkan profil kredensial untuk AWS CLI. Contoh ini menggunakan nama profilamzn-s3-demo-destination-bucket
.acctA
Untuk informasi tentang menyetel profil kredensi dan menggunakan profil bernama, lihat Pengaturan konfigurasi dan file kredensi di AWS Command Line Interface Panduan Pengguna.
-
Gunakan perintah berikut untuk membuat bucket
dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucketamzn-s3-demo-source-bucket
di Wilayah AS Timur (Virginia Utara) (amzn-s3-demo-source-bucket
us-east-1
).aws s3api create-bucket \ --bucket
amzn-s3-demo-source-bucket
\ --regionus-east-1
\ --profileacctA
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-source-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Gunakan perintah berikut untuk membuat bucket
dan mengaktifkan Penentuan Versi di dalamnya. Contoh perintah berikut membuat bucketamzn-s3-demo-destination-bucket
di Wilayah AS Barat (Oregon) (amzn-s3-demo-destination-bucket
us-west-2
).catatan
Untuk menyiapkan konfigurasi replikasi saat bucket
danamzn-s3-demo-source-bucket
berada di Akun AWS yang sama, Anda menggunakan profil yang sama. Contoh ini menggunakanamzn-s3-demo-destination-bucket
. Untuk mengonfigurasi replikasi ketika bucket dimiliki oleh yang berbeda Akun AWS, Anda menentukan profil yang berbeda untuk masing-masing.acctA
aws s3api create-bucket \ --bucket
amzn-s3-demo-destination-bucket
\ --regionus-west-2
\ --create-bucket-configuration LocationConstraint=us-west-2
\ --profileacctA
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-destination-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Di samping itu, Anda membuat peran layanan IAM. Anda akan menentukan peran ini dalam konfigurasi replikasi yang Anda tambahkan ke
bucket nanti. Amazon S3 mengasumsikan peran ini untuk mereplikasi objek atas nama Anda. Anda membuat peran IAM dalam dua langkah:amzn-s3-demo-source-bucket
-
Membuat peran layanan.
-
Lampirkan kebijakan izin pada peran tersebut.
-
Untuk membuat peran layanan IAM, lakukan hal berikut:
-
Salin kebijakan kepercayaan berikut dan simpan ke file bernama
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.s3-role-trust-policy-kmsobj
.json{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
-
Gunakan perintah berikut ini untuk membuat peran tersebut:
$
aws iam create-role \ --role-namereplicationRolekmsobj
\ --assume-role-policy-document file://s3-role-trust-policy-kmsobj
.json \ --profileacctA
-
-
Selanjutnya, Anda melampirkan kebijakan izin pada peran tersebut. Kebijakan ini memberikan izin untuk berbagai bucket dan tindakan objek Amazon S3.
-
Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama
di direktori saat ini di komputer lokal Anda. Anda akan membuat peran IAM dan melampirkan kebijakannya nanti.s3-role-permissions-policykmsobj
.jsonpenting
Dalam kebijakan izin, Anda menentukan AWS KMS kunci IDs yang akan digunakan untuk enkripsi
danamzn-s3-demo-source-bucket
bucket. Anda harus membuat dua kunci KMS terpisah untukamzn-s3-demo-destination-bucket
danamzn-s3-demo-source-bucket
ember. AWS KMS keys tidak dibagikan Wilayah AWS di luar tempat mereka diciptakan.amzn-s3-demo-destination-bucket
{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration", "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::
", "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":[ "amzn-s3-demo-source-bucket
AWS KMS key IDs(in ARN format) to use for encrypting object replicas
" ] } }, "Resource":"arn:aws:s3:::
/*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.amzn-s3-demo-destination-bucket
us-east-1
.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::
/*" ] } }, "Resource":[ "amzn-s3-demo-source-bucket
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:::
/*" ] } }, "Resource":[ "amzn-s3-demo-destination-bucket
AWS KMS key IDs (in ARN format) to use for encrypting object replicas
" ] } ] } -
Buat kebijakan dan lampirkan ke peran tersebut.
$
aws iam put-role-policy \ --role-namereplicationRolekmsobj
\ --policy-document file://s3-role-permissions-policykmsobj
.json \ --policy-namereplicationRolechangeownerPolicy
\ --profileacctA
-
-
-
Selanjutnya, tambahkan konfigurasi replikasi berikut ke bucket
. Ini memberi tahu Amazon S3 untuk mereplikasi objek dengan awalanamzn-s3-demo-source-bucket
ke bucketTax/
.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 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:::
</Bucket> <EncryptionConfiguration> <ReplicaKmsKeyID>amzn-s3-demo-destination-bucket
AWS KMS key IDs to use for encrypting object replicas
</ReplicaKmsKeyID> </EncryptionConfiguration> </Destination> </Rule> </ReplicationConfiguration>Untuk menambahkan konfigurasi replikasi ke bucket
, lakukan hal berikut:amzn-s3-demo-source-bucket
-
Ini AWS CLI mengharuskan Anda untuk menentukan konfigurasi replikasi sebagai JSON. Simpan JSON berikut dalam file (
) dalam direktori saat ini di komputer lokal Anda.replication
.json{ "Role":"
IAM-Role-ARN
", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ "Prefix":"Tax
" }, "Destination":{ "Bucket":"arn:aws:s3:::
", "EncryptionConfiguration":{ "ReplicaKmsKeyID":"amzn-s3-demo-destination-bucket
AWS KMS key IDs (in ARN format) to use for encrypting object replicas
" } }, "SourceSelectionCriteria":{ "SseKmsEncryptedObjects":{ "Status":"Enabled" } } } ] } -
Edit JSON guna memberikan nilai untuk bucket
,amzn-s3-demo-destination-bucket
, danAWS KMS key IDs (in ARN format)
. Simpan perubahan.IAM-role-ARN
-
Gunakan perintah berikut untuk menambahkan konfigurasi replikasi ke bucket
Anda. Pastikan untuk memberikan nama bucketamzn-s3-demo-source-bucket
.amzn-s3-demo-source-bucket
$
aws s3api put-bucket-replication \ --replication-configuration file://replication
.json \ --bucket
\ --profileamzn-s3-demo-source-bucket
acctA
-
-
Uji konfigurasi untuk memverifikasi bahwa objek terenkripsi direplikasi. Di konsol Amazon S3, lakukan berikut ini:
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Di bucket
, buat folder bernamaamzn-s3-demo-source-bucket
.Tax
-
Tambahkan objek sampel ke folder. Pastikan untuk memilih opsi enkripsi dan tentukan kunci KMS Anda untuk mengenkripsi objek.
-
Pastikan bahwa bucket
berisi replika objek dan dienkripsi menggunakan kunci KMS yang Anda tentukan dalam konfigurasi. Untuk informasi selengkapnya, lihat Mendapatkan informasi status replikasi.amzn-s3-demo-destination-bucket
Untuk contoh kode yang menunjukkan cara menambahkan konfigurasi replikasi, lihat Menggunakan AWS SDKs. Anda harus memodifikasi konfigurasi replikasi dengan tepat.