Mengubah pemilik replika - Amazon Simple Storage Service

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:ObjectOwnerOverrideToBucketOwnerIzin 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

  • AccountElemen, 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 Pajak key prefix ke bucket amzn-s3-demo-destination-bucket tujuan dan ubah kepemilikan replika. Untuk menggunakan contoh ini, ganti user input placeholders dengan informasi Anda sendiri.

<?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 amzn-s3-demo-destination-bucket dengan nama bucket tujuan.

... { "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 user input placeholders dengan informasi Anda sendiri.

... { "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 user input placeholders dengan informasi Anda sendiri.

  1. 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 ACCTA and ACCTB, 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.

    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.

  2. Buat bucket sumber dan aktifkan Penentuan Versi. Contoh ini membuat bucket sumber bernama amzn-s3-demo-source-bucket di Wilayah AS Timur (Virginia N.) (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. Buat bucket tujuan dan aktifkan Penentuan Versi. Contoh ini membuat bucket tujuan bernama amzn-s3-demo-destination-bucket di Wilayah AS Barat (Oregon) (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 \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctB
    aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-destination-bucket \ --versioning-configuration Status=Enabled \ --profile acctB
  4. Anda harus menambahkan izin dalam kebijakan bucket tujuan untuk memungkinkan perubahan kepemilikan replika.

    1. Simpan kebijakan berikut ke file bernamadestination-bucket-policy.json. Pastikan untuk mengganti placeholder masukan pengguna dengan informasi Anda sendiri.

      { "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/*" ] } ] }
    2. 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
  5. 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.

    1. Buat IAM peran.

      1. Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama s3-role-trust-policy.json di direktori saat ini di komputer lokal Anda. Kebijakan ini memberi Amazon S3 izin untuk mengasumsikan peran tersebut.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Jalankan AWS CLI create-role perintah berikut untuk membuat IAM peran:

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

        Catat Amazon Resource Name (ARN) dari IAM peran yang Anda buat. Anda akan membutuhkan ini ARN di langkah selanjutnya.

    2. Lampirkan kebijakan izin pada peran tersebut.

      1. Salin kebijakan kepercayaan berikut dan simpan di berkas dengan nama s3-role-perm-pol-changeowner.json 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.

        { "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/*" } ] }
      2. Untuk melampirkan kebijakan izin sebelumnya ke peran, jalankan perintah berikut: put-role-policy

        $ aws iam put-role-policy \ --role-name replicationRole \ --policy-document file://s3-role-perm-pol-changeowner.json \ --policy-name replicationRolechangeownerPolicy \ --profile acctA
  6. Menambahkan konfigurasi replikasi ke bucket sumber.

    1. AWS CLI Memerlukan menentukan konfigurasi replikasi sebagai. JSON Simpan berikut ini JSON dalam file bernama replication.json di direktori saat ini di komputer lokal Anda. Dalam konfigurasi, AccessControlTranslation 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" } } } ] }
    2. Edit JSON dengan memberikan nilai untuk nama bucket tujuan, ID akun pemilik bucket tujuan, danIAM-role-ARN. Ganti IAM-peran- ARN dengan ARN IAM peran yang Anda buat sebelumnya. Simpan perubahan.

    3. Untuk menambahkan konfigurasi replikasi ke bucket sumber, jalankan perintah berikut:

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket amzn-s3-demo-source-bucket \ --profile acctA
  7. Uji konfigurasi replikasi Anda dengan memeriksa kepemilikan replika di konsol Amazon S3.

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

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