Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengubah pemilik replika
Dalam replikasi, pemilik objek sumber juga memiliki replika secara default. Namun, ketika bucket sumber dan tujuan dimiliki oleh yang berbeda Akun AWS, Anda mungkin ingin mengubah kepemilikan replika. Misalnya, Anda mungkin ingin mengubah kepemilikan untuk membatasi akses ke replika objek. Dalam konfigurasi replikasi Anda, Anda dapat menambahkan pengaturan konfigurasi opsional untuk mengubah kepemilikan replika ke bucket Akun AWS yang memiliki tujuan.
Untuk mengubah pemilik replika, Anda melakukan hal berikut:
-
Tambahkan opsi penggantian pemilik ke konfigurasi replikasi untuk memberi tahu Amazon S3 agar mengubah kepemilikan replika.
-
Berikan Amazon S3
s3:ObjectOwnerOverrideToBucketOwner
izin untuk mengubah kepemilikan replika. -
Tambahkan
s3:ObjectOwnerOverrideToBucketOwner
izin dalam kebijakan bucket tujuan untuk mengizinkan perubahan kepemilikan replika.s3:ObjectOwnerOverrideToBucketOwner
Izin tersebut memungkinkan pemilik bucket tujuan untuk menerima kepemilikan replika objek.
Untuk informasi selengkapnya, silakan lihat Pertimbangan untuk opsi penggantian kepemilikan dan Menambahkan opsi penggantian pemilik ke konfigurasi replikasi. Untuk contoh kerja dengan step-by-step instruksi, lihatCara mengganti pemilik replika.
penting
Alih-alih menggunakan opsi penggantian pemilik, Anda dapat menggunakan setelan yang diberlakukan pemilik bucket untuk Kepemilikan Objek. Saat Anda menggunakan replikasi dan bucket sumber dan tujuan dimiliki oleh berbeda Akun AWS, pemilik bucket bucket tujuan dapat menggunakan pengaturan yang diberlakukan pemilik bucket untuk Kepemilikan Objek untuk mengubah kepemilikan replika ke bucket Akun AWS yang memiliki tujuan. Pengaturan ini menonaktifkan daftar kontrol akses objek (ACLs).
Setelan yang diberlakukan pemilik bucket meniru perilaku override pemilik yang ada tanpa memerlukan izin. s3:ObjectOwnerOverrideToBucketOwner
Semua objek yang direplikasi ke bucket tujuan dengan pengaturan yang diberlakukan pemilik bucket dimiliki oleh pemilik bucket tujuan. Untuk informasi selengkapnya tentang Kepemilikan Objek, lihat Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda.
Pertimbangan untuk opsi penggantian kepemilikan
Ketika Anda mengonfigurasi opsi penggantian kepemilikan, pertimbangan berikut berlaku:
-
Secara default, pemilik objek sumber juga memiliki replika. Amazon S3 mereplikasi versi objek dan yang ACL terkait dengannya.
Jika Anda menambahkan opsi penggantian pemilik ke konfigurasi replikasi Anda, Amazon S3 hanya mereplikasi versi objek, bukan versi. ACL Selain itu, Amazon S3 tidak mereplikasi perubahan selanjutnya pada objek sumber. ACL Amazon S3 menetapkan replika yang memberikan kontrol penuh kepada pemilik bucket tujuan. ACL
-
Saat Anda memperbarui konfigurasi replikasi untuk mengaktifkan atau menonaktifkan penggantian pemilik, perilaku berikut akan terjadi:
-
Jika Anda menambahkan opsi penggantian pemilik ke konfigurasi replikasi:
Saat Amazon S3 mereplikasi versi objek, Amazon S3 akan membuang ACL yang terkait dengan objek sumber. Sebagai gantinya, Amazon S3 menetapkan replika, memberikan kontrol penuh kepada pemilik bucket tujuan. ACL Amazon S3 tidak mereplikasi perubahan selanjutnya pada objek sumber. ACL Namun, ACL perubahan ini tidak berlaku untuk versi objek yang direplikasi sebelum Anda menyetel opsi penggantian pemilik. ACLpembaruan pada objek sumber yang direplikasi sebelum penggantian pemilik disetel terus direplikasi (karena objek dan replika terus memiliki pemilik yang sama).
-
Jika Anda menghapus opsi penggantian pemilik dari konfigurasi replikasi:
Amazon S3 mereplikasi objek baru yang muncul di bucket sumber dan yang ACLs terkait dengan bucket tujuan. Untuk objek yang direplikasi sebelum Anda menghapus penggantian pemilik, Amazon S3 tidak mereplikasi ACLs karena perubahan kepemilikan objek yang dibuat Amazon S3 tetap berlaku. Artinya, ACLs letakkan pada versi objek yang direplikasi ketika override pemilik disetel terus tidak direplikasi.
-
Menambahkan opsi penggantian pemilik ke konfigurasi replikasi
Awas
Tambahkan opsi penggantian pemilik hanya jika bucket sumber dan tujuan dimiliki oleh yang berbeda. Akun AWS Amazon S3 tidak memeriksa apakah bucket dimiliki oleh akun yang sama atau berbeda. Jika Anda menambahkan override pemilik saat kedua bucket dimiliki oleh yang sama Akun AWS, Amazon S3 menerapkan penggantian pemilik. Opsi ini memberikan izin penuh kepada pemilik bucket tujuan dan tidak mereplikasi pembaruan berikutnya ke daftar kontrol akses objek sumber (). ACLs Pemilik replika dapat langsung mengubah yang ACL terkait dengan replika dengan PutObjectAcl
permintaan, tetapi tidak melalui replikasi.
Untuk menentukan opsi penggantian pemilik, tambahkan berikut ini ke setiap elemen Destination
:
-
Elemen
AccessControlTranslation
, yang memberi tahu Amazon S3 untuk mengubah kepemilikan replika -
Account
Elemen, yang menentukan Akun AWS pemilik bucket tujuan
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> ... <Destination> ... <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> <Account>
destination-bucket-owner-account-id
</Account> </Destination> </Rule> </ReplicationConfiguration>
Contoh konfigurasi replikasi berikut memberitahu Amazon S3 untuk mereplikasi objek yang memiliki
key prefix ke bucket Pajak
tujuan dan ubah kepemilikan replika. Untuk menggunakan contoh ini, ganti amzn-s3-demo-destination-bucket
dengan informasi Anda sendiri.user input
placeholders
<?xml version="1.0" encoding="UTF-8"?> <ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <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> <Account>destination-bucket-owner-account-id
</Account> <AccessControlTranslation> <Owner>Destination</Owner> </AccessControlTranslation> </Destination> </Rule> </ReplicationConfiguration>
Memberi Amazon S3 izin untuk mengubah kepemilikan replika
Berikan izin Amazon S3 untuk mengubah kepemilikan replika dengan menambahkan izin untuk s3:ObjectOwnerOverrideToBucketOwner
tindakan dalam kebijakan izin yang terkait dengan peran (). AWS Identity and Access Management IAM Peran ini adalah IAM peran yang Anda tentukan dalam konfigurasi replikasi yang memungkinkan Amazon S3 untuk mengasumsikan dan mereplikasi objek atas nama Anda. Untuk menggunakan contoh berikut, ganti
dengan nama bucket tujuan.amzn-s3-demo-destination-bucket
... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::
amzn-s3-demo-destination-bucket
/*" } ...
Menambahkan izin dalam kebijakan bucket tujuan untuk memungkinkan perubahan kepemilikan replika
Pemilik bucket tujuan harus memberikan izin bucket sumber untuk mengubah kepemilikan replika. Pemilik bucket tujuan memberi pemilik bucket sumber izin untuk tindakan s3:ObjectOwnerOverrideToBucketOwner
. Izin ini memungkinkan pemilik bucket tujuan untuk menerima kepemilikan replika objek. Contoh pernyataan kebijakan bucket berikut menunjukkan cara melakukannya. Untuk menggunakan contoh ini, ganti
dengan informasi Anda sendiri.user input placeholders
... { "Sid":"1", "Effect":"Allow", "Principal":{"AWS":"
source-bucket-account-id
"}, "Action":["s3:ObjectOwnerOverrideToBucketOwner"], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ...
Cara mengganti pemilik replika
Jika bucket sumber dan tujuan dalam konfigurasi replikasi dimiliki oleh berbeda Akun AWS, Anda dapat memberi tahu Amazon S3 untuk mengubah kepemilikan replika ke bucket yang memiliki tujuan. Akun AWS Contoh berikut menunjukkan cara menggunakan konsol Amazon S3, AWS Command Line Interface (AWS CLI), dan AWS SDKs untuk mengubah kepemilikan replika.
Untuk step-by-step instruksi, lihatMengkonfigurasi replikasi untuk bucket di akun yang sama. Topik ini memberikan instruksi untuk menyiapkan konfigurasi replikasi ketika bucket sumber dan tujuan dimiliki oleh yang sama dan berbeda. Akun AWS
Prosedur berikut menunjukkan cara mengubah kepemilikan replika dengan menggunakan. AWS CLI Dalam prosedur ini, Anda melakukan hal berikut:
-
Buat ember sumber dan tujuan.
-
Aktifkan pembuatan versi pada ember.
-
Buat peran AWS Identity and Access Management (IAM) yang memberikan izin Amazon S3 untuk mereplikasi objek.
-
Tambahkan konfigurasi replikasi ke bucket sumber.
-
Dalam konfigurasi replikasi, Anda mengarahkan Amazon S3 untuk mengubah kepemilikan replika.
-
Anda menguji konfigurasi replikasi Anda.
Untuk mengubah kepemilikan replika saat bucket sumber dan tujuan dimiliki oleh different Akun AWS ()AWS CLI
Untuk menggunakan contoh AWS CLI perintah dalam prosedur ini, ganti
dengan informasi Anda sendiri. user input placeholders
-
Dalam contoh ini, Anda membuat bucket sumber dan tujuan dalam dua yang berbeda Akun AWS. Untuk bekerja dengan dua akun ini, konfigurasikan AWS CLI dengan dua profil bernama. Contoh ini menggunakan profil bernama
andACCTA
, masing-masing. Untuk informasi tentang menyetel profil kredensi dan menggunakan profil bernama, lihat Pengaturan konfigurasi dan file kredensi di AWS Command Line Interface Panduan Pengguna.ACCTB
penting
Profil yang Anda gunakan untuk prosedur ini harus memiliki izin yang diperlukan. Misalnya, dalam konfigurasi replikasi, Anda menentukan IAM peran yang dapat diasumsikan oleh Amazon S3. Anda dapat melakukan ini hanya jika profil yang Anda gunakan memiliki
iam:PassRole
izin. Jika Anda menggunakan kredensi pengguna administrator untuk membuat profil bernama, maka Anda dapat melakukan semua tugas dalam prosedur ini. Untuk informasi selengkapnya, lihat Memberikan izin pengguna untuk meneruskan peran ke Layanan AWS dalam IAMPanduan Pengguna. -
Buat bucket sumber dan aktifkan Penentuan Versi. Contoh ini membuat bucket sumber bernama
di Wilayah AS Timur (Virginia N.) (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
-
Buat bucket tujuan dan aktifkan Penentuan Versi. Contoh ini membuat bucket tujuan bernama
di Wilayah AS Barat (Oregon) (amzn-s3-demo-destination-bucket
us-west-2
). Gunakan Akun AWS profil yang berbeda dari yang Anda gunakan untuk bucket sumber.aws s3api create-bucket \ --bucket
amzn-s3-demo-destination-bucket
\ --regionus-west-2
\ --create-bucket-configuration LocationConstraint=us-west-2
\ --profileacctB
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-destination-bucket
\ --versioning-configuration Status=Enabled \ --profileacctB
-
Anda harus menambahkan izin dalam kebijakan bucket tujuan untuk memungkinkan perubahan kepemilikan replika.
-
Simpan kebijakan berikut ke file bernama
. Pastikan untuk menggantidestination-bucket-policy
.json
dengan informasi Anda sendiri.placeholder masukan pengguna
{ "Version": "2012-10-17", "Statement": [ { "Sid":
"destination_bucket_policy_sid"
, "Principal": { "AWS":"source-bucket-owner-account-id"
}, "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] } -
Tambahkan kebijakan sebelumnya ke bucket tujuan dengan menggunakan perintah berikut:
put-bucket-policy
aws s3api put-bucket-policy --region
$
{destination-region
} --bucket$
{amzn-s3-demo-destination-bucket
} --policy file://destination_bucket_policy
.json
-
-
Buat IAM peran. Anda menentukan peran ini dalam konfigurasi replikasi yang Anda tambahkan ke bucket sumber nanti. Amazon S3 mengasumsikan peran ini untuk mereplikasi objek atas nama Anda. Anda membuat IAM peran dalam dua langkah:
-
Buat peran.
-
Lampirkan kebijakan izin pada peran tersebut.
-
Buat IAM peran.
-
Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama
di direktori saat ini di komputer lokal Anda. Kebijakan ini memberi Amazon S3 izin untuk mengasumsikan peran tersebut.s3-role-trust-policy
.json{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
-
Jalankan AWS CLI
create-role
perintah berikut untuk membuat IAM peran:$
aws iam create-role \ --role-namereplicationRole
\ --assume-role-policy-document file://s3-role-trust-policy
.json \ --profileacctA
Catat Amazon Resource Name (ARN) dari IAM peran yang Anda buat. Anda akan membutuhkan ini ARN di langkah selanjutnya.
-
-
Lampirkan kebijakan izin pada peran tersebut.
-
Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama
di direktori saat ini di komputer lokal Anda. Kebijakan ini memberikan izin untuk berbagai bucket dan tindakan objek Amazon S3. Pada langkah-langkah berikut, Anda melampirkan kebijakan ini ke IAM peran yang Anda buat sebelumnya.s3-role-perm-pol-changeowner
.json{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket
" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] } -
Untuk melampirkan kebijakan izin sebelumnya ke peran, jalankan perintah berikut:
put-role-policy
$
aws iam put-role-policy \ --role-namereplicationRole
\ --policy-document file://s3-role-perm-pol-changeowner
.json \ --policy-namereplicationRolechangeownerPolicy
\ --profileacctA
-
-
-
Menambahkan konfigurasi replikasi ke bucket sumber.
-
AWS CLI Memerlukan menentukan konfigurasi replikasi sebagai. JSON Simpan berikut ini JSON dalam file bernama
di direktori saat ini di komputer lokal Anda. Dalam konfigurasi,replication
.jsonAccessControlTranslation
menentukan perubahan kepemilikan replika dari pemilik bucket sumber ke pemilik bucket tujuan.{ "Role":"
IAM-role-ARN
", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ }, "Status":"Enabled", "Destination":{ "Bucket":"arn:aws:s3:::amzn-s3-demo-destination-bucket
", "Account":"destination-bucket-owner-account-id
", "AccessControlTranslation":{ "Owner":"Destination" } } } ] } -
Edit JSON dengan memberikan nilai untuk nama bucket tujuan, ID akun pemilik bucket tujuan, dan
. GantiIAM-role-ARN
dengan ARN IAM peran yang Anda buat sebelumnya. Simpan perubahan.IAM-peran- ARN
-
Untuk menambahkan konfigurasi replikasi ke bucket sumber, jalankan perintah berikut:
$
aws s3api put-bucket-replication \ --replication-configuration file://replication
.json \ --bucketamzn-s3-demo-source-bucket
\ --profileacctA
-
-
Uji konfigurasi replikasi Anda dengan memeriksa kepemilikan replika di konsol Amazon S3.
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Tambahkan objek ke bucket sumber. Verifikasi bahwa bucket tujuan berisi replika objek dan kepemilikan replika telah berubah menjadi bucket Akun AWS yang memiliki tujuan.
Untuk contoh kode untuk menambahkan konfigurasi replikasi, lihatMenggunakan AWS SDKs. Anda harus memodifikasi konfigurasi replikasi dengan tepat. Untuk informasi konseptual, lihat Mengubah pemilik replika.