Ä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 Eigentümern gehören AWS-Konten, möchten Sie möglicherweise den Besitz des Replikats ändern. Vielleicht möchten Sie beispielsweise 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 ändern AWS-Konto , dem die Ziel-Buckets gehören.

Gehen Sie wie folgt vor, um den Replikateigentümer zu ändern:

  • Fügen Sie die Option zum Überschreiben des Eigentümers zur Replikationskonfiguration hinzu, um Amazon S3 anzuweisen, die Replikat-Eigentümerschaft zu ändern.

  • Erteilen Sie Amazon S3 die Berechtigung s3:ObjectOwnerOverrideToBucketOwner zum Ändern der Replikat-Eigentümerschaft.

  • Fügen Sie die Berechtigung s3:ObjectOwnerOverrideToBucketOwner zur Richtlinie für den Ziel-Bucket hinzu, um das Ändern der Replikateigentümerschaft zuzulassen. Die Berechtigung s3:ObjectOwnerOverrideToBucketOwner ermöglicht es dem Eigentümer der Ziel-Buckets, die Eigentümerschaft von Objektreplikaten anzunehmen.

Weitere Informationen erhalten Sie unter Überlegungen zur Option zum Überschreiben der Eigentümerschaft und Hinzufügen der Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration. Ein funktionierendes Beispiel mit step-by-step Anweisungen finden Sie unter. So ändern Sie den Replikateigentümer

Wichtig

Anstatt die Option zum Überschreiben des Eigentümers zu verwenden, können Sie die Einstellung zum Erzwingen des Bucket-Eigentümers für die Objekteigentümerschaft 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 vom Bucket-Besitzer erzwungene Einstellung 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 zum Erzwingen des Bucket-Eigentümers ahmt das Verhalten der Überschreibung des bestehenden Eigentümers nach, ohne dass eine s3:ObjectOwnerOverrideToBucketOwner-Berechtigung erforderlich ist. Alle Objekte, die mit der Einstellung „Bucket-Eigentümer erzwungen“ 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 Überschreiben der Eigentümerschaft

Wenn Sie die Option zum Überschreiben der Eigentümerschaft 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 damit verbundene ACL.

    Wenn Sie die Option zum Überschreiben der Eigentümerschaft zu Ihrer Replikationskonfiguration hinzufügen, repliziert Amazon S3 nur die Objektversion, nicht die ACL. Darüber hinaus repliziert Amazon S3 keine nachfolgenden Änderungen an der ACL des Quellobjekts. Amazon S3 legt die ACL für das Replikat fest, das dem Ziel-Bucket-Eigentümer Vollzugriff erteilt.

  • Wenn Sie eine Replikationskonfiguration ändern, um die Option zum Überschreiben der Eigentümerschaft zu aktivieren oder zu deaktivieren, tritt folgendes Verhalten ein:

    • Wenn Sie die Option zur Überschreibung des Eigentümers zur Replikationskonfiguration hinzufügen

      Wenn Amazon S3 eine Objektversion repliziert, verwirft es die ACL, die mit dem Quellobjekt verknüpft ist. Amazon S3 legt stattdessen die ACL für das Replikat fest, sodass der Ziel-Bucket-Eigentümer vollständige Kontrolle erhält. Amazon S3 repliziert keine nachfolgenden Änderungen an der ACL des Quellobjekts. Diese Änderung der ACL gilt nicht für Objektversionen, die repliziert wurden, bevor Sie die Eigentümer-Überschreibungs-Option festgelegt haben. ACL-Aktualisierungen an den Quellobjekten, die repliziert wurden, bevor die Eigentümer-Überschreibungs-Option festgelegt wurde, werden weiterhin repliziert (da das Objekt und seine Replikate weiterhin denselben Eigentümer 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 der Objekteigentümerschaft 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 im Besitz von gleichen oder unterschiedlichen Konten sind. 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 Replikateigentümer kann die ACL, die mit einem Replikat mit einer PutObjectAcl-Anforderung verknüpft ist, direkt ändern, aber nicht über eine 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-Replikations-Konfiguration weist Amazon S3 an, Objekte mit dem Schlüsselpräfix Tax in den Ziel-Bucket amzn-s3-demo-destination-bucket zu replizieren und die Replikat-Eigentümerschaft zu ändern. Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) 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 mit der AWS Identity and Access Management (IAM-) Rolle verknüpft ist, die Berechtigung für die s3:ObjectOwnerOverrideToBucketOwner Aktion hinzufügen. Diese Rolle ist die IAM-Rolle, die Sie in der Replikations-Konfiguration festgelegt haben und die es Amazon S3 gestattet, Objekte in Ihrem Namen anzunehmen und zu replizieren. Um das folgende Beispiel zu verwenden, ersetzen Sie amzn-s3-demo-destination-bucket 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 dem Eigentümer des Ziel-Buckets, die Eigentümerschaft von Objektreplikaten anzunehmen. Die folgende Beispielanweisung einer Bucket-Richtlinie zeigt, wie dies funktioniert: Wenn Sie dieses Beispiel verwenden möchten, ersetzen Sie die user input placeholders (Platzhalter für Benutzereingaben) 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/*" } ...

So ändern Sie den Replikateigentümer

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 unterKonfigurieren einer 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 folgenden Verfahren zeigt, wie Sie die Replikat-Eigentümerschaft mithilfe der AWS CLIändern können. In diesem Verfahren gehen Sie wie folgt vor:

  • Erstellen Sie die Quell- und Ziel-Buckets.

  • Aktivieren Sie die Versionsverwaltung 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, die Eigentümerschaft für das Replikat zu ändern.

  • Testen Sie Ihre Replikationskonfiguration.

Um den Besitz des Replikats zu ändern, wenn der Quell- und der Ziel-Bucket different () gehören AWS-KontenAWS 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 die AWS CLI mit zwei benannten Profilen. Bei diesem Beispiel werden die Profile acctA bzw. acctBverwendet. Informationen zum Einrichten der Anmeldeinformations-Profile und der Verwendung benannter Profile finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei im Benutzerhandbuch zur AWS Command Line Interface .

    Wichtig

    Die Profile, die Sie für dieses Verfahren verwenden, müssen über die nötigen Berechtigungen verfügen. Beispielsweise legen Sie in der Replikations-Konfiguration die IAM-Rolle fest, die Amazon S3 annehmen kann. Dies gelingt Ihnen nur, wenn das verwendete Profil über die iam:PassRole-Berechtigung verfügt. Wenn Sie zur Erstellung eines benannten Profils die Benutzer-Anmeldeinformationen eines Administrators verwenden, können Sie alle Aufgaben in diesem Verfahren durchführen. Weitere Informationen finden Sie unter Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Serviceübergeben kann im IAM-Benutzerhandbuch.

  2. Erstellen Sie den Quell-Bucket und aktivieren Sie das Versioning für ihn. In diesem Beispiel erstellen wir einen Quell-Bucket mit dem Namen amzn-s3-demo-source-bucket in der Region USA Ost (Nord-Virginia) (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. Erstellen Sie einen Ziel-Bucket und aktivieren Sie das Versioning für ihn. In diesem Beispiel erstellen wir einen Ziel-Bucket mit dem Namen amzn-s3-demo-destination-bucket in der Region USA West (Oregon) (us-west-2). Verwenden Sie ein anderes AWS-Konto -Profil als das, 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 eine Datei mit dem Namen destination-bucket-policy.json. Ersetzen Sie user input placeholders durch Ihre 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 von Ihnen erstellten IAM-Rolle. Sie werden diesen 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. Verwenden Sie den folgenden put-role-policy-Befehl, um die vorherige Berechtigungsrichtlinie der Rolle hinzuzufügen.

        $ 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 als JSON. Speichern Sie den folgenden JSON-Code in einer Datei mit dem Namen replication.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. In der Konfiguration legt AccessControlTranslation die Änderung der Eigentümerschaft des Replikats vom Eigentümer des Quell-Buckets zum Eigentümer des Ziel-Buckets fest.

      { "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 die JSON-Datei, indem Sie Werte für den Namen des Ziel-Buckets, die Konto-ID des Eigentümers des Ziel-Buckets und den IAM-role-ARN angeben. Ersetzen Sie IAM-role-ARN durch den ARN des Buckets, den Sie zuvor erstellt haben. Speichern Sie die Änderungen.

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

      $ 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 die Replikateigentümerschaft in der Amazon-S3-Konsole ü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. Vergewissern Sie sich, 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 Code-Beispiel zum Hinzufügen einer Replikationskonfiguration finden Sie unter Verwenden Sie den AWS SDKs. Sie müssen die Replikationskonfiguration entsprechend ändern. Weitere konzeptuelle Informationen finden Sie unter Ändern des Replikat-Eigentümers.