Ä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 Quell- und Ziel-Buckets unterschiedlichen Besitzern gehören AWS-Konten und Sie den Besitz des Replikats auf den Besitzer der Ziel-Buckets ändern möchten AWS-Konto , können Sie optionale Konfigurationseinstellungen hinzufügen, um den Besitz des Replikats auf den Eigentümer der AWS-Konto Ziel-Buckets zu ändern. Sie können dies z. B. tun, um den Zugriff auf Objektreplikate einzuschränken. Dies wird auch als die Eigentümer-Überschreibungs-Option der Replikationskonfiguration bezeichnet. Weitere Informationen zur Besitzer-Überschreibungs-Option finden Sie unter Hinzufügen der Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration. Weitere Informationen zum Einrichten der Replikationskonfiguration finden Sie unter Überblick über das Replizieren von Objekten.

Um die Eigentümer-Überschreibung zu konfigurieren, gehen Sie wie folgt vor:

  • Fügen Sie die Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration hinzu, um Amazon S3 anzuweisen, die Replikat-Eigentümerschaft zu ändern.

  • Erteilen Sie Amazon-S3-Berechtigungen zum Ändern der Replikat-Eigentümerschaft.

  • Fügen Sie in der Richtlinie für die Ziel-Buckets die Berechtigung zum Ändern der Replikat-Eigentümerschaft hinzu. So kann der Eigentümer der Ziel-Buckets die Eigentümerschaft von Objektreplikaten annehmen.

Weitere Informationen finden Sie unter Hinzufügen der Eigentümer-Überschreibungs-Option zur Replikations-Konfiguration. Ein funktionierendes Beispiel mit Anweisungen finden Sie unter. step-by-step Wie ändert man den Besitzer des Replikats

Vom Bucket-Eigentümer erzwungene Einstellung für Object Ownership

Wenn Sie die Amazon S3 S3-Replikation verwenden und die Quell- und Ziel-Buckets unterschiedlichen Besitzern gehören AWS-Konten, kann der Bucket-Besitzer des Ziel-Buckets deaktivieren ACLs (wobei die Einstellung des Bucket-Besitzers für Objekteigentümer erzwungen wird), um den Besitz des Replikats auf den AWS-Konto Besitzer des Ziel-Buckets zu ändern. Diese Einstellung ahmt das Verhalten der bestehenden Besitzerüberschreibung nach, ohne dass eine s3:ObjectOwnerOverrideToBucketOwner-Berechtigung erforderlich ist. Dies bedeutet, dass alle Objekte, die mit der erzwungenen Einstellung des Bucket-Eigentümers in den Ziel-Bucket repliziert werden, dem Eigentümer des Ziel-Buckets gehören. Informationen zu Object Ownership finden Sie unter Kontrolle des Besitzes von Objekten und Deaktivierung ACLs für Ihren Bucket.

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 Eigentümern 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. Es gewährt dem Besitzer des Ziel-Buckets volle Rechte und repliziert keine nachfolgenden Aktualisierungen der Zugriffskontrollliste für Quellobjekte ()ACL. Der Besitzer des Replikats kann die einem Replikat ACL zugewiesenen Daten mit einer PUT ACL 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 mit dem Schlüsselpräfix Tax in den Ziel-Bucket zu replizieren und die Replikateigentümerschaft zu ändern.

<?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:::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 mit der IAM Rolle verknüpften Berechtigungsrichtlinie die Berechtigung für die s3:ObjectOwnerOverrideToBucketOwner Aktion hinzufügen. Dies ist die IAM Rolle, die Sie in der Replikationskonfiguration angegeben haben und die es Amazon S3 ermöglicht, Objekte in Ihrem Namen anzunehmen und zu replizieren.

... { "Effect":"Allow", "Action":[ "s3:ObjectOwnerOverrideToBucketOwner" ], "Resource":"arn:aws:s3:::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. Dies ermöglicht dem Eigentümer des Ziel-Buckets, die Eigentümerschaft von Objektreplikaten anzunehmen. Die folgende Beispielanweisung einer Bucket-Richtlinie zeigt, wie dies funktioniert:

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

Weitere Überlegungen

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 die Besitzer-Überschreibung 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 Replikations-Konfiguration ändern und die Eigentümerüberschreibung aktivieren oder deaktivieren, geschieht Folgendes:

     

    • 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 wird das ACL auf dem Replikat festgelegt, sodass der Besitzer des Ziel-Buckets die volle Kontrolle hat. Nachfolgende Änderungen am Quellobjekt werden nicht repliziert. ACL 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.

Wie ändert man den Besitzer des Replikats

Wenn source and destination Buckets in einer Replikationskonfiguration gehören anderen. Sie können Amazon S3 anweisen AWS-Konten, den Besitz des Replikats auf das zu ändern AWS-Konto , dem das gehört destination Bucket. In diesem Beispiel wird erklärt, wie Sie die Amazon S3 S3-Konsole verwenden und AWS CLI den Besitz eines Replikats ändern. Weitere Informationen finden Sie unter Ändern des Replikat-Eigentümers.

Anmerkung

Wenn Sie die S3-Replikation verwenden und Quell- und Ziel-Bucket unterschiedlichen Besitzern gehören AWS-Konten, kann der Bucket-Besitzer des Ziel-Buckets deaktivieren ACLs (wobei die Einstellung des Bucket-Besitzers für Objekteigentümer erzwungen wird), um den Besitz des Replikats auf den AWS-Konto Besitzer des Ziel-Buckets zu ändern. Diese Einstellung ahmt das Verhalten der bestehenden Besitzerüberschreibung nach, ohne dass eine s3:ObjectOwnerOverrideToBucketOwner-Berechtigung erforderlich ist. Dies bedeutet, dass alle Objekte, die mit der erzwungenen Einstellung des Bucket-Eigentümers in den Ziel-Bucket repliziert werden, dem Eigentümer des Ziel-Buckets gehören. Informationen zu Object Ownership finden Sie unter Kontrolle des Besitzes von Objekten und Deaktivierung ACLs für Ihren Bucket.

Weitere Informationen zur Konfiguration der Replikation mit serverseitiger Verschlüsselung AWS Key Management Service in kontoübergreifenden Szenarien finden Sie unter. Erteilen von zusätzlichen Berechtigungen für kontenübergreifende Szenarien

step-by-step Anweisungen finden Sie unter. Konfigurieren der Replikation für Quell- und Ziel-Buckets im Eigentum desselben Kontos Dieses Thema enthält Anweisungen zum Einrichten der Replikationskonfiguration, wenn Buckets denselben oder unterschiedlichen AWS-Konten Benutzern gehören.

Um den Besitz von Replikaten mithilfe von zu ändern AWS CLI, erstellen Sie Buckets, aktivieren die Versionsverwaltung für die Buckets, erstellen eine IAM Rolle, die Amazon S3 die Berechtigung erteilt, Objekte zu replizieren, und fügen die Replikationskonfiguration zum Quell-Bucket hinzu. In der Replikations-Konfiguration weisen Sie Amazon S3 an, den Replikatseigentümer zu ändern. Sie testen außerdem die Einrichtung.

Um den Besitz des Replikats zu ändern, wenn Quell- und Ziel-Buckets unterschiedlichen () gehören AWS-KontenAWS CLI
  1. In diesem Beispiel erstellen Sie source and destination Eimer in zwei verschiedenen AWS-Konten. Konfigurieren Sie das AWS CLI mit zwei benannten Profilen. Bei diesem Beispiel werden die Profile acctA bzw. acctBverwendet. Weitere Informationen zum Einrichten der Anmeldeinformations-Profile finden Sie unter Named Profiles (Benannte Profile) im AWS Command Line Interface -Benutzerhandbuch.

    Wichtig

    Die Profile, die Sie für diese Übung verwenden, müssen über die nötigen Berechtigungen verfügen. In der Replikationskonfiguration geben Sie beispielsweise die IAM Rolle an, die Amazon S3 übernehmen kann. Dies können Sie nur tun, 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 durchführen. Weitere Informationen finden Sie im Benutzerhandbuch unter Gewährung von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS Dienst. IAM

    Sie müssen sicherstellen, dass diese Profile über die nötigen Berechtigungen verfügen. Die Replikationskonfiguration beinhaltet beispielsweise eine IAM Rolle, die Amazon S3 übernehmen kann. Das benannte Profil, mit dem Sie eine solche Konfiguration einem Bucket anfügen, kann dies nur tun, wenn es über die iam:PassRole-Berechtigung verfügt. Wenn Sie zur Erstellung dieser benannten Profile die Benutzer-Anmeldeinformationen eines Administrators verwenden, haben diese alle Berechtigungen. Weitere Informationen finden Sie unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS Service im IAMBenutzerhandbuch.

  2. Erstellen Sie den source Bucket und aktivieren Sie die Versionierung. In diesem Beispiel wird der source Eimer in der Region USA Ost (Nord-Virginia) (us-east-1).

    aws s3api create-bucket \ --bucket source \ --region us-east-1 \ --profile acctA
    aws s3api put-bucket-versioning \ --bucket source \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Erstellen Sie ein destination Bucket und aktiviere die Versionierung. In diesem Beispiel wird der destination Eimer in der Region USA West (Oregon) (US-West-2). Verwenden Sie ein anderes AWS-Konto Profil als das, das Sie für source Eimer.

    aws s3api create-bucket \ --bucket destination \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctB
    aws s3api put-bucket-versioning \ --bucket destination \ --versioning-configuration Status=Enabled \ --profile acctB
  4. Sie müssen Berechtigungen zu Ihrem hinzufügen destination Bucket-Richtlinie, die es ermöglicht, den Besitz des Replikats zu ändern.

    1. Speichern Sie die folgende Richtlinie in destination-bucket-policy.json.

      { "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:::destination/*" ] } ] }
    2. Setzen Sie die obige Richtlinie auf destination Eimer:

      aws s3api put-bucket-policy --region $ {destination_region} --bucket $ {destination} --policy file://destination_bucket_policy.json
  5. Erstellen Sie eine IAM-Rolle. Sie geben diese Rolle in der Replikationskonfiguration an, die Sie zur source Bucket später. Amazon S3 übernimmt diese Rolle, um Objekte in Ihrem Namen zu replizieren. Sie erstellen eine IAM Rolle in zwei Schritten:

    • Erstellen Sie eine Rolle.

    • Fügen Sie eine Berechtigungsrichtlinie zur Rolle hinzu.

    1. Erstellen Sie eine 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 Befehl aus, um eine Rolle zu erstellen.

        $ aws iam create-role \ --role-name replicationRole \ --assume-role-policy-document file://s3-role-trust-policy.json \ --profile acctA
    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 erstellen Sie eine IAM Rolle und fügen diese Richtlinie der Rolle hinzu.

        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::source/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "Resource":[ "arn:aws:s3:::source" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ObjectOwnerOverrideToBucketOwner", "s3:ReplicateTags", "s3:GetObjectVersionTagging" ], "Resource":"arn:aws:s3:::destination/*" } ] }
      2. Um eine Richtlinie zu erstellen und sie an die Rolle anzufügen, führen Sie den folgenden Befehl aus:

        $ 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. Fügen Sie in der Konfiguration AccessControlTranslation hinzu, um eine Änderung in der Replikateigentümerschaft anzugeben.

      { "Role":"IAM-role-ARN", "Rules":[ { "Status":"Enabled", "Priority":1, "DeleteMarkerReplication":{ "Status":"Disabled" }, "Filter":{ }, "Status":"Enabled", "Destination":{ "Bucket":"arn:aws:s3:::destination", "Account":"destination-bucket-owner-account-id", "AccessControlTranslation":{ "Owner":"Destination" } } } ] }
    2. Bearbeiten Sie die, JSON indem Sie Werte für die angeben destination Konto-ID des Bucket-Besitzers und IAM-role-ARN. Speichern Sie die Änderungen.

    3. Um die Replikations-Konfiguration zum Quell-Bucket hinzuzufügen, führen Sie den folgenden Befehl aus. Geben Sie die source Name des Buckets.

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket source \ --profile acctA
  7. Prüfen Sie die Replikat-Eigentümerschaft in der Amazon-S3-Konsole.

    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 hinzu source Eimer. Stellen Sie sicher, dass destination Der Bucket enthält die Objektreplikate und der Besitzer der Replikate hat sich in den Besitzer AWS-Konto der destination Bucket.

Ein Code-Beispiel zum Hinzufügen einer Replikationskonfiguration finden Sie unter Verwenden Sie den AWS SDKs. Sie müssen die Replikations-Konfiguration entsprechend ändern. Weitere konzeptuelle Informationen finden Sie unter Ändern des Replikat-Eigentümers.