Ändern des Replikat-Eigentümers - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ändern des Replikat-Eigentümers

Bei der Replikation besitzt der Eigentümer des Quellobjekts standardmäßig auch das Replikat. Wenn die Quell- und Ziel-Buckets jedoch unterschiedlichen Besitzern gehören AWS-Konten, sollten Sie möglicherweise den Besitz des Replikats ändern. Möglicherweise möchten Sie die Eigentümerschaft ändern, um den Zugriff auf Objektreplikate einzuschränken. In Ihrer Replikationskonfiguration können Sie optionale Konfigurationseinstellungen hinzufügen, um den Besitz des Replikats auf das Replikat zu übertragen AWS-Konto , dem die Ziel-Buckets gehören.

Gehen Sie wie folgt vor, um den Besitzer des Replikats zu ändern:

  • Fügen Sie der Replikationskonfiguration die Option Owner Override hinzu, um Amazon S3 anzuweisen, den Besitz des Replikats zu ändern.

  • Erteilen Sie Amazon S3 die s3:ObjectOwnerOverrideToBucketOwner Erlaubnis, den Besitz des Replikats zu ändern.

  • Fügen Sie die s3:ObjectOwnerOverrideToBucketOwner Berechtigung zur Ziel-Bucket-Richtlinie hinzu, um die Änderung des Replikatbesitzes zu ermöglichen. Die s3:ObjectOwnerOverrideToBucketOwner Berechtigung ermöglicht es dem Besitzer der Ziel-Buckets, die Inhaberschaft von Objektreplikaten zu akzeptieren.

Weitere Informationen erhalten Sie unter Überlegungen zur Option zum Außerkraftsetzen von Besitzrechten und Hinzufügen der Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration. Ein funktionierendes Beispiel mit step-by-step Anweisungen finden Sie unter. Wie ändere ich den Besitzer des Replikats

Wichtig

Anstatt die Option zum Überschreiben des Besitzers zu verwenden, können Sie die erzwungene Einstellung des Bucket-Besitzers für Objekteigentum verwenden. Wenn Sie die Replikation verwenden und Quell- und Ziel-Bucket unterschiedlichen Besitzern gehören AWS-Konten, kann der Bucket-Besitzer des Ziel-Buckets die erzwungene Einstellung des Bucket-Besitzers für Objekteigentümer verwenden, um den Besitz des Replikats auf den AWS-Konto Besitzer des Ziel-Buckets zu ändern. Diese Einstellung deaktiviert Objektzugriffskontrolllisten (). ACLs

Die Einstellung „Bucket Owner erforced“ ahmt das bestehende Verhalten beim Überschreiben des Besitzers nach, ohne dass eine entsprechende Genehmigung erforderlich ist. s3:ObjectOwnerOverrideToBucketOwner Alle Objekte, die mit der erzwungenen Einstellung des Bucket-Eigentümers in den Ziel-Bucket repliziert werden, gehören dem Eigentümer des Ziel-Buckets. Informationen zu Object Ownership finden Sie unter Kontrolle des Besitzes von Objekten und Deaktivierung ACLs für Ihren Bucket.

Überlegungen zur Option zum Außerkraftsetzen von Besitzrechten

Wenn Sie die Eigentümer-Überschreibungs-Option konfigurieren, berücksichtigen Sie die folgenden Überlegungen:

  • Standardmäßig besitzt der Eigentümer des Quellobjekts auch das Replikat. Amazon S3 repliziert die Objektversion und die ACL damit verbundene Version.

    Wenn Sie Ihrer Replikationskonfiguration die Option Owner Override hinzufügen, repliziert Amazon S3 nur die Objektversion, nicht dieACL. Darüber hinaus repliziert Amazon S3 keine nachfolgenden Änderungen am QuellobjektACL. Amazon S3 legt das ACL auf dem Replikat fest, das dem Besitzer des Ziel-Buckets die volle Kontrolle gewährt.

  • Wenn Sie eine Replikationskonfiguration aktualisieren, um die Eigentümerüberschreibung zu aktivieren oder zu deaktivieren, tritt das folgende Verhalten auf:

    • Wenn Sie die Eigentümerüberschreibungs-Option zur Replikations-Konfiguration hinzufügen

      Wenn Amazon S3 eine Objektversion repliziert, verwirft es die Version, ACL die dem Quellobjekt zugeordnet ist. Stattdessen legt Amazon S3 das ACL auf dem Replikat fest und gibt dem Besitzer des Ziel-Buckets die volle Kontrolle. Amazon S3 repliziert keine nachfolgenden Änderungen am QuellobjektACL. Diese ACL Änderung gilt jedoch nicht für Objektversionen, die repliziert wurden, bevor Sie die Option zum Überschreiben des Besitzers festgelegt haben. ACLAktualisierungen von Quellobjekten, die repliziert wurden, bevor die Besitzerüberschreibung festgelegt wurde, werden weiterhin repliziert (weil das Objekt und seine Replikate weiterhin denselben Besitzer haben).

    • Wenn Sie die Eigentümer-Überschreibungs-Option aus der Replikations-Konfiguration entfernen

      Amazon S3 repliziert neue Objekte, die im Quell-Bucket und den mit den Ziel-Buckets verknüpften ACLs Buckets erscheinen. Für Objekte, die repliziert wurden, bevor Sie die Eigentümerüberschreibung entfernt haben, repliziert Amazon S3 das nicht, ACLs da die von Amazon S3 vorgenommene Änderung des Objekteigentums weiterhin in Kraft ist. Das heißt, ACLs die Objektversion, die repliziert wurde, als die Eigentümerüberschreibung festgelegt wurde, wird weiterhin nicht repliziert.

Hinzufügen der Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration

Warnung

Fügen Sie die Option zum Überschreiben des Besitzers nur hinzu, wenn die Quell- und Ziel-Buckets unterschiedlichen Besitzern gehören. AWS-Konten Amazon S3 überprüft nicht, ob die Buckets denselben oder unterschiedlichen Konten gehören. Wenn Sie die Besitzer-Override hinzufügen, obwohl beide Buckets demselben gehören AWS-Konto, wendet Amazon S3 die Besitzer-Override an. Diese Option gewährt dem Besitzer des Ziel-Buckets volle Rechte und repliziert keine nachfolgenden Aktualisierungen der Zugriffskontrolllisten der Quellobjekte (). ACLs Der Replikatbesitzer kann die mit einem Replikat ACL verknüpften Daten mit einer PutObjectAcl Anfrage direkt ändern, jedoch nicht durch Replikation.

Um die Option zur Eigentümer-Überschreibung festzulegen, fügen Sie Folgendes zu jedem Destination-Element hinzu:

  • Das Element AccessControlTranslation, das Amazon S3 anweist, die Replikateigentümerschaft zu ändern

  • Das Account Element, das den Besitzer AWS-Konto des Ziel-Buckets angibt

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

Die folgende Beispiel-Replikationskonfiguration weist Amazon S3 an, Objekte zu replizieren, die Steuer Geben Sie dem amzn-s3-demo-destination-bucket Ziel-Bucket ein Präfix ein und ändern Sie den Besitz der Replikate. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

<?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>

Erteilen der Berechtigung zur Änderung der Replikat-Eigentümerschaft an Amazon S3

Gewähren Sie Amazon S3 S3-Berechtigungen zum Ändern des Replikatbesitzes, indem Sie in der Berechtigungsrichtlinie, die der Rolle AWS Identity and Access Management (IAM) zugeordnet ist, die Berechtigung für die s3:ObjectOwnerOverrideToBucketOwner Aktion hinzufügen. Diese Rolle haben Sie in der IAM Replikationskonfiguration angegeben, sodass Amazon S3 Objekte in Ihrem Namen übernehmen und replizieren kann. Um das folgende Beispiel zu verwenden, amzn-s3-demo-destination-bucket ersetzen Sie es durch den Namen des Ziel-Buckets.

... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ...

Hinzufügen der Berechtigung zur Ziel-Bucket-Richtlinie, um das Ändern der Replikat-Eigentümerschaft zuzulassen

Der Eigentümer des Ziel-Buckets muss dem Eigentümer des Quell-Buckets die Berechtigung zum Ändern der Replikat-Eigentümerschaft erteilen. Der Eigentümer des Ziel-Buckets erteilt dem Eigentümer des Quell-Buckets die Berechtigung für die Aktion s3:ObjectOwnerOverrideToBucketOwner. Diese Berechtigung ermöglicht es dem Besitzer des Ziel-Buckets, das Eigentum an den Objektreplikaten zu akzeptieren. Die folgende Beispielanweisung einer Bucket-Richtlinie zeigt, wie dies funktioniert: Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie user input placeholders durch Ihre Informationen.

... { "Sid":"1", "Effect":"Allow", "Principal":{"AWS":"source-bucket-account-id"}, "Action":["s3:ObjectOwnerOverrideToBucketOwner"], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ...

Wie ändere ich den Besitzer des Replikats

Wenn die Quell- und Ziel-Buckets in einer Replikationskonfiguration unterschiedlichen Besitzern gehören AWS-Konten, können Sie Amazon S3 anweisen, den Besitz des Replikats in den Besitz des AWS-Konto Ziel-Buckets zu ändern. Die folgenden Beispiele zeigen, wie Sie die Amazon S3 S3-Konsole, die AWS Command Line Interface (AWS CLI) und die verwenden, AWS SDKs um den Besitz eines Replikats zu ändern.

step-by-stepEine Anleitung finden Sie unterKonfiguration der Replikation für Buckets im selben Konto. Dieses Thema enthält Anweisungen zum Einrichten einer Replikationskonfiguration, wenn Quell- und Ziel-Buckets denselben und unterschiedlichen AWS-Konten Besitzern gehören.

Das folgende Verfahren zeigt, wie Sie den Besitz eines Replikats mithilfe von ändern können. AWS CLI In diesem Verfahren gehen Sie wie folgt vor:

  • Erstellen Sie die Quell- und Ziel-Buckets.

  • Aktivieren Sie die Versionierung für die Buckets.

  • Erstellen Sie eine AWS Identity and Access Management (IAM) -Rolle, die Amazon S3 die Berechtigung erteilt, Objekte zu replizieren.

  • Fügen Sie die Replikationskonfiguration zum Quell-Bucket hinzu.

  • In der Replikationskonfiguration weisen Sie Amazon S3 an, den Besitz des Replikats zu ändern.

  • Sie testen Ihre Replikationskonfiguration.

Um den Besitz des Replikats zu ändern, wenn der Quell- und der Ziel-Bucket different AWS-Konten () gehören AWS CLI

Um die AWS CLI Beispielbefehle in diesem Verfahren zu verwenden, ersetzen Sie die user input placeholders durch Ihre eigenen Informationen.

  1. In diesem Beispiel erstellen Sie die Quell- und Ziel-Buckets in zwei verschiedenen AWS-Konten Buckets. Um mit diesen beiden Konten zu arbeiten, konfigurieren Sie sie AWS CLI mit zwei benannten Profilen. In diesem Beispiel werden Profile mit dem Namen verwendet ACCTA and ACCTB, jeweils. Informationen zum Einrichten von Anmeldeinformationsprofilen und zur Verwendung benannter Profile finden Sie unter Konfiguration und Einstellungen für Anmeldeinformationsdateien im AWS Command Line Interface Benutzerhandbuch.

    Wichtig

    Die Profile, die Sie für dieses Verfahren verwenden, müssen über die erforderlichen Berechtigungen verfügen. In der Replikationskonfiguration geben Sie beispielsweise die IAM Rolle an, die Amazon S3 übernehmen kann. Sie können dies nur tun, wenn das von Ihnen verwendete Profil über die iam:PassRole entsprechende Berechtigung verfügt. Wenn Sie Administratoranmeldedaten verwenden, um ein benanntes Profil zu erstellen, können Sie alle Aufgaben in diesem Verfahren ausführen. Weitere Informationen finden Sie im Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle AWS-Service an einen. IAM

  2. Erstellen Sie den Quell-Bucket und aktivieren Sie das Versioning für ihn. In diesem Beispiel wird ein Quell-Bucket mit dem Namen amzn-s3-demo-source-bucket der Region USA Ost (Nord-Virginia) (us-east-1) erstellt.

    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. Erstellen Sie einen Ziel-Bucket und aktivieren Sie das Versioning für ihn. In diesem Beispiel wird ein Ziel-Bucket mit dem Namen amzn-s3-demo-destination-bucket der Region USA West (Oregon) (us-west-2) erstellt. Verwenden Sie ein AWS-Konto Profil, das sich von dem unterscheidet, das Sie für den Quell-Bucket verwendet haben.

    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. Sie müssen Ihrer Ziel-Bucket-Richtlinie Berechtigungen hinzufügen, um eine Änderung der Replikat-Eigentümerschaft zuzulassen.

    1. Speichern Sie die folgende Richtlinie in einer Datei mit dem Namendestination-bucket-policy.json. Stellen Sie sicher, dass Sie das ersetzen Platzhalter für Benutzereingaben mit Ihren eigenen Informationen.

      { "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. Fügen Sie die vorherige Richtlinie mithilfe des folgenden put-bucket-policy Befehls zum Ziel-Bucket hinzu:

      aws s3api put-bucket-policy --region $ {destination-region} --bucket $ {amzn-s3-demo-destination-bucket} --policy file://destination_bucket_policy.json
  5. Erstellen Sie eine IAM Rolle. Sie geben diese Rolle in der Replizierungskonfiguration an, die Sie später zum Quell-Bucket hinzufügen. Amazon S3 übernimmt diese Rolle, um Objekte in Ihrem Namen zu replizieren. Sie erstellen eine IAM Rolle in zwei Schritten:

    • Erstellen Sie die -Rolle.

    • Fügen Sie eine Berechtigungsrichtlinie zur Rolle hinzu.

    1. Erstellen Sie die IAM Rolle.

      1. Kopieren Sie die folgende Vertrauensrichtlinie und speichern Sie sie in einer Datei mit dem Namen s3-role-trust-policy.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. Diese Richtlinie erteilt Amazon S3 Berechtigungen für die Übernahme der Rolle.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Führen Sie den folgenden AWS CLI create-role Befehl aus, um die IAM Rolle zu erstellen:

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

        Notieren Sie sich den Amazon-Ressourcennamen (ARN) der IAM Rolle, die Sie erstellt haben. Sie werden ihn ARN in einem späteren Schritt benötigen.

    2. Fügen Sie eine Berechtigungsrichtlinie zur Rolle hinzu.

      1. Kopieren Sie die folgende Berechtigungsrichtlinie und speichern Sie sie in einer Datei mit dem Namen s3-role-perm-pol-changeowner.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. Diese Zugriffsrichtlinie erteilt Berechtigungen für verschiedene Amazon-S3-Bucket- und -Objektaktionen. In den folgenden Schritten fügen Sie diese Richtlinie der IAM Rolle hinzu, die Sie zuvor erstellt haben.

        { "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. Führen Sie den folgenden put-role-policy Befehl aus, um die vorherige Berechtigungsrichtlinie an die Rolle anzuhängen:

        $ aws iam put-role-policy \ --role-name replicationRole \ --policy-document file://s3-role-perm-pol-changeowner.json \ --policy-name replicationRolechangeownerPolicy \ --profile acctA
  6. Fügen Sie Ihrem Quell-Bucket eine Replikations-Konfiguration hinzu.

    1. Das AWS CLI erfordert die Angabe der Replikationskonfiguration alsJSON. Speichern Sie Folgendes JSON in einer Datei mit dem Namen replication.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. In der Konfiguration AccessControlTranslation gibt der die Änderung des Besitzers des Replikats vom Besitzer des Quell-Buckets zum Besitzer des Ziel-Buckets an.

      { "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. Bearbeiten Sie das, JSON indem Sie Werte für den Namen des Ziel-Buckets, die Konto-ID des Besitzers des Ziel-Buckets und den IAM-role-ARN angeben. Ersetzen IAM-Rolle- ARN mit ARN der IAM Rolle, die Sie zuvor erstellt haben. Speichern Sie die Änderungen.

    3. Führen Sie den folgenden Befehl aus, um die Replikationskonfiguration zum Quell-Bucket hinzuzufügen:

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket amzn-s3-demo-source-bucket \ --profile acctA
  7. Testen Sie Ihre Replikationskonfiguration, indem Sie in der Amazon S3 S3-Konsole den Besitz des Replikats überprüfen.

    1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/.

    2. Fügen Sie Objekte zum Quell-Bucket hinzu. Stellen Sie sicher, dass der Ziel-Bucket die Objektreplikate enthält und dass der Eigentümer der Replikate auf den Eigentümer des Ziel-Buckets übergegangen ist. AWS-Konto

Ein Codebeispiel zum Hinzufügen einer Replikationskonfiguration finden Sie unterMit dem AWS SDKs. Sie müssen die Replikationskonfiguration entsprechend ändern. Weitere konzeptuelle Informationen finden Sie unter Ändern des Replikat-Eigentümers.