Konfigurieren einer Replikation für Buckets im selben Konto - Amazon Simple Storage Service

Konfigurieren einer Replikation für Buckets im selben Konto

Eine Live-Replikation ist ein automatisches, asynchrones und Allzweck-Bucket-übergreifendes Kopieren von Objekten in derselben oder in unterschiedlichen AWS-Regionen. Eine Live-Replikation kopiert neu erstellte Objekte und Objektaktualisierungen aus einem Quell-Bucket in einen Ziel-Bucket oder mehrere Buckets. Weitere Informationen finden Sie unter Replizieren von Objekten innerhalb und zwischen Regionen.

Wenn Sie die Replikation konfigurieren, fügen Sie dem Quell-Bucket Replikationsregeln hinzu. Replikationsregeln definieren, welche Quell-Bucket-Objekte repliziert werden sollen, und den Ziel-Bucket/die Ziel-Buckets, in dem/denen die replizierten Objekte gespeichert werden sollen. Sie können eine Regel erstellen, um alle Objekte in einem Bucket oder eine Untermenge von Objekten mit einem spezifischen Schlüsselnamenpräfixen, einem oder mehreren Objekt-Markierungen oder beidem zu replizieren. Ein Ziel-Bucket kann sich im selben AWS-Konto wie der Quell-Bucket befinden, oder er kann sich in einem anderen Konto befinden.

Wenn Sie angeben, dass eine Objektversions-ID gelöscht werden soll, löscht Amazon S3 diese Objektversion im Quell-Bucket. Es repliziert die Löschung aber nicht im Ziel-Bucket. Anders ausgedrückt: Dieselbe Objektversion wird im Ziel-Bucket nicht gelöscht. Dies schützt Daten vor missbräuchlichen Löschungen.

Wenn Sie einem Bucket eine Replikationsregel hinzufügen, ist diese standardmäßig aktiviert, sodass sie ausgeführt wird, sobald Sie sie speichern.

In diesem Beispiel richten Sie eine Live-Replikation für Quell- und Ziel-Buckets ein, die demselben AWS-Konto gehören. Beispiele für die Verwendung der Amazon-S3-Konsole, der AWS Command Line Interface (AWS CLI) und der AWS SDK für Java und AWS SDK für .NET.

Voraussetzungen

Bevor Sie die folgenden Verfahren verwenden, stellen Sie sicher, dass Sie die erforderlichen Berechtigungen für die Replikation eingerichtet haben, je nachdem, ob sich Quell- und Ziel-Buckets im Eigentum desselben oder unterschiedlicher befinden. Weitere Informationen finden Sie unter Einrichten von Berechtigungen für die Live-Replikation.

Anmerkung
  • Wenn Sie verschlüsselte Objekte replizieren möchten, müssen Sie auch die erforderlichen Berechtigungen für den AWS KMS-Schlüssel (AWS Key Management Service) erteilen. Weitere Informationen finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

  • Sie müssen zwei neue Berechtigungen für den S3-Quell-Bucket in der AWS Identity and Access Management (IAM)-Rolle erteilen, mit der Sie die Replikation eingerichtet haben, um Object Lock mit Replikation verwenden zu können. Die zwei neuen Berechtigungen sind s3:GetObjectRetention und s3:GetObjectLegalHold. Wenn die Rolle über eine s3:Get*-Berechtigungsanweisung verfügt, ist die Anforderung dadurch erfüllt. Weitere Informationen finden Sie unter Verwenden von Object Lock mit der S3-Replikation.

Führen Sie die folgenden Schritte aus, um eine Replikationsregel zu konfigurieren, wenn sich der Ziel-Bucket in demselben AWS-Konto wie der Quell-Bucket befindet.

Wenn sich der Ziel-Bucket in einem anderen Konto als der Quell-Bucket befindet, müssen Sie eine Bucket-Richtlinie für den Ziel-Bucket hinzufügen, um dem Eigentümer des Quell-Bucket-Kontos die Berechtigung zum Replizieren von Objekten in der Ziel-Bucket zu erteilen. Weitere Informationen finden Sie unter (Optional) Schritt 3: Erteilen von Berechtigungen, wenn sich Quell- und Ziel-Buckets im Besitz verschiedener AWS-Konten befinden.

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

  2. Wählen Sie im linken Navigationsbereich Allzweck-Buckets aus.

  3. Wählen Sie in der Liste Buckets den Namen des von Ihnen erstellten Buckets aus.

  4. Wählen Sie die Registerkarte Verwaltung aus, scrollen Sie nach unten zu Replikationsregeln und wählen Sie dann Replikationsregel erstellen aus.

  5. Geben Sie im Abschnitt Replikationsregelkonfiguration unter Name der Replikationsregel einen Namen für Ihre Regel ein, um die Regel später leichter identifizieren zu können. Der Name ist erforderlich und muss innerhalb des Buckets eindeutig sein.

  6. In Status (Status)ist Enabled (Aktiviert) standardmäßig ausgewählt. Eine aktivierte Regel wird ausgeführt, sobald Sie speichern. Wenn Sie die Regel später aktivieren möchten, wählen Sie Deaktiviert aus.

  7. Wenn es bereits Replikationsregeln für den Bucket gibt, werden Sie angewiesen, eine Priorität für die Regel festzulegen. Sie müssen eine Priorität für die Regel festlegen, um Konflikte zu vermeiden, die durch Objekte verursacht werden, die mehreren Regeln unterliegen. Wenn sich Regeln überschneiden, verwendet Amazon S3 die Regelpriorität, um die Regel zu ermitteln, die angewendet werden muss. Je höher die Zahl, desto höher die Priorität. Weitere Informationen zur Priorität von Regeln finden Sie unter Elemente der Replikationskonfigurationsdatei.

  8. Unter Quell-Bucket stehen Ihnen folgende Optionen zum Festlegen der Replikationsquelle zur Verfügung:

    • Um den gesamten Bucket zu replizieren, wählen Sie Apply to all objects in the bucket (Auf alle Objekte im Bucket anwenden).

    • Um alle Objekte zu replizieren, die dasselbe Präfix haben, wählen Sie Limit the scope of this rule using one or more filters (Geltungsbereich dieser Regel mit einem oder mehreren Filtern einschränken). Dies beschränkt die Replikation auf alle Objekte, deren Namen mit dem von Ihnen angegebenen Präfix beginnen (z. B. pictures). Geben Sie ein Präfix in das Feld Präfix ein.

      Anmerkung

      Wenn Sie ein Präfix eingeben, das den Namen eines Ordners darstellt, müssen Sie / (Schrägstrich) als letztes Zeichen eingeben (z. B. pictures/).

    • Um alle Objekte mit einem oder mehreren Objekt-Tags zu replizieren, wählen Sie Tag hinzufügen aus und geben Sie das Schlüssel-Wert-Paar in die Felder ein. Wiederholen Sie den Vorgang, um ein weiteres Tag hinzuzufügen. Sie können ein Präfix und Markierungen kombinieren. Weitere Informationen über Objekt-Markierungen finden Sie unter Kategorisierung Ihrer Objekte mit Hilfe von Tags.

    Das neue XML-Schema für die Replikationskonfiguration unterstützt das Filtern nach Präfix und Tag und die Priorisierung von Regeln. Weitere Informationen über das neue Schema finden Sie unter Überlegungen zur Rückwärtskompatibilität. Weitere Informationen über das mit der Amazon-S3-API verwendete XML, das hinter der Benutzeroberfläche funktioniert, finden Sie unter Elemente der Replikationskonfigurationsdatei. Das neue Schema wird als XML V2 für die Replikations-Konfiguration beschrieben.

  9. Wählen Sie unter Ziel den Bucket aus, in den Amazon S3 Objekte replizieren soll.

    Anmerkung

    Die Anzahl der Ziel-Buckets ist auf die Anzahl der AWS-Regionen in einer bestimmten Partition begrenzt. Eine Partition ist eine Gruppierung von Regionen. AWS verfügt derzeit über drei Partitionen: aws (Standardregionen), aws-cn (China-Regionen) und aws-us-gov (AWS GovCloud (US) Regionen). Sie können Service Quotas verwenden, um eine Erhöhung Ihres Ziel-Bucket-Kontingents anzufordern.

    Anmerkung

    Wenn die Versioning für den Ziel-Bucket nicht aktiviert ist, erhalten Sie eine Warnmeldung, die die Schaltfläche Versioning aktivieren enthält. Wählen Sie diese Schaltfläche, um das Versioning für den Bucket zu aktivieren.

  10. Richten Sie eine AWS Identity and Access Management (IAM)-Rolle ein, die Amazon S3 annimmt, um Objekte in Ihrem Namen zu replizieren.

    Um eine IAM-Rolle einzurichten, wählen Sie im Abschnitt IAM-Rolle eine der folgenden Optionen aus der Dropdown-Liste IAM-Rolle aus:

    • Wir empfehlen Ihnen, Create new role (Neue Rolle erstellen) auszuwählen, um Amazon S3 anzuweisen, eine neue IAM-Rolle für Sie zu erstellen. Wenn Sie die Regel speichern, wird eine neue Richtlinie für die IAM-Rolle erstellt, die mit den von Ihnen ausgewählten Quell- und Ziel-Buckets übereinstimmt.

    • Sie haben auch die Möglichkeit eine vorhandene IAM-Rolle zu verwenden. In diesem Fall müssen Sie eine Rolle auswählen, die Amazon S3 die erforderlichen Berechtigungen für die Replikation gewährt. Die Replikation schlägt fehl, wenn diese Rolle Amazon S3 keine ausreichenden Berechtigungen gewährt, um Ihre Replikationsregel zu befolgen.

    Wichtig

    Wenn Sie eine Replikationsregel zu einem Bucket hinzufügen, benötigen Sie die Berechtigung iam:PassRole zum Übergeben der IAM-Rolle, die Amazon S3 Replikationsberechtigungen erteilt. Weitere Informationen finden Sie unter Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Service übergeben kann im IAM-Benutzerhandbuch.

  11. Um Objekte im Quell-Bucket zu replizieren, die mit der serverseitigen Verschlüsselung mit AWS Key Management Service (AWS KMS)-Schlüsseln (SSE-KMS) verschlüsselt sind, wählen Sie unter Verschlüsselung die Option Mit AWS KMS verschlüsselte Objekte replizieren aus. Unter AWS KMS-Schlüssel für die Verschlüsselung von Zielobjekten befinden sich die Quellschlüssel, deren Verwendung Sie der Replikation erlauben. Alle Quell-KMS-Schlüssel sind standardmäßig enthalten. Um die KMS-Schlüsselauswahl einzuschränken, können Sie einen Alias oder eine Schlüssel-ID auswählen.

    Objekte, die mit AWS KMS keys verschlüsselt sind und die Sie nicht auswählen, werden nicht repliziert. Ein KMS-Schlüssel oder eine Gruppe von KMS-Schlüsseln wird für Sie ausgewählt, aber Sie können die KMS-Schlüssel auch selbst auswählen. Informationen zur Verwendung von AWS KMS mit Replikation finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

    Wichtig

    Wenn Sie mit AWS KMS verschlüsselte Objekte replizieren, wird die AWS KMS-Anforderungsrate in der Quellregion verdoppelt und in der Zielregion um den gleichen Betrag erhöht. Diese erhöhten Aufrufraten für AWS KMS werden durch die Art der Neuverschlüsselung von Daten mittels des KMS-Schlüssels verursacht, den Sie für die Zielregion der Replikation definieren. AWS KMS besitzt ein Anforderungsratenkontingent pro Aufrufkonto und Region. Informationen zu den standardmäßigen Kontingenten finden Sie unter AWS KMS-Kontingente – Anforderungen pro Sekunde: variabel im AWS Key Management Service Entwicklerhandbuch.

    Wenn Ihre aktuelle Amazon-S3-PUT-Object-Anforderungsrate während der Replikation mehr als die Hälfte des AWS KMS-Standard-Ratenlimits für Ihr Konto beträgt, sollten Sie eine Erhöhung Ihres AWS KMS-Anforderungsratenkontingents anfordern. Wenn Sie eine Erhöhung anfordern möchten, erstellen Sie einen Fall im Support-Center unter Contact Us (Kontakt). Angenommen, Ihre aktuelle PUT-Object-Anforderungsrate beläuft sich auf 1 000 Anforderungen pro Sekunde und Sie verschlüsseln Ihre Objekte mit AWS KMS. In diesem Fall sollten Sie beim Support eine Erhöhung Ihres AWS KMS-Ratenlimits auf 2 500 Anforderungen pro Sekunde für Ihre Quell- und Zielregionen (soweit unterschiedlich) anfordern, um sicherzustellen, dass keine Drosselung durch AWS KMS erfolgt.

    Um Ihre PUT-Object-Anforderungsrate im Quell-Bucket einzusehen, sehen Sie sich PutRequests in den Amazon-CloudWatch-Anforderungsmetriken für Amazon S3 an. Informationen zum Anzeigen von CloudWatch-Metriken finden Sie unter Verwenden der S3-Konsole.

    Wenn Sie mit AWS KMS verschlüsselte Objekte replizieren möchten, gehen Sie wie folgt vor:

    1. Geben Sie unter AWS KMS key für die Verschlüsselung von Zielobjekten Ihren KMS-Schlüssel auf eine der folgenden Arten an:

      • Wenn Sie aus einer Liste verfügbarer KMS-Schlüssel auswählen möchten, wählen Sie Aus Ihren AWS KMS keys wählen und anschließend den KMS-Schlüssel in der Liste der verfügbaren Schlüssel aus.

        Sowohl der Von AWS verwalteter Schlüssel (aws/s3) als auch Ihre vom Kunden verwalteten Schlüssel werden in dieser Liste angezeigt. Weitere Informationen über vom Kunden verwaltete Schlüssel finden Sie unter Kundenschlüssel und AWS-Schlüssel im Entwicklerhandbuch zu AWS Key Management Service.

      • Wählen Sie zum Eingeben des Amazon-Ressourcennamens (ARN) des KMS-Schlüssels AWS KMS key-ARN eingeben aus und geben Sie Ihren KMS-Schlüssel-ARN in das angezeigte Feld ein. Dadurch werden die Replikate im Ziel-Bucket verschlüsselt. Sie finden den ARN für Ihren KMS-Schlüssel in der IAM-Konsole unter Verschlüsselungsschlüssel.

      • Wählen Sie zum Erstellen eines neuen vom Kunden verwalteten Schlüssels in der AWS KMS-Konsole Erstellen eines KMS-Schlüssels aus.

        Weitere Informationen zum Erstellen eines AWS KMS key finden Sie unter Creating Keys (Schlüssel erstellen) im AWS Key Management Service-Entwicklerhandbuch.

      Wichtig

      Sie können nur KMS-Schlüssel verwenden, die in derselben AWS-Region wie der Bucket aktiviert sind. Wenn Sie Aus Ihren KMS-Schlüsseln wählen auswählen, werden in der S3-Konsole nur 100 KMS-Schlüssel pro Region aufgeführt. Wenn Sie über mehr als 100 KMS-Schlüssel in derselben Region verfügen, können Sie nur die ersten 100 KMS-Schlüssel in der S3-Konsole sehen. Um einen nicht in der Konsole aufgeführten KMS-Schlüssel zu verwenden, wählen Sie AWS KMS key-ARN eingeben aus und geben Sie Ihren KMS-Schlüssel-ARN ein.

      Wenn Sie einen AWS KMS key für serverseitige Verschlüsselung in Amazon S3 verwenden, müssen Sie einen symmetrischen KMS-Verschlüsselungsschlüssel wählen. Amazon S3 unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung und keine asymmetrischen KMS-Schlüssel. Weitere Informationen finden Sie unter Erkennen von symmetrischen und asymmetrischen KMS-Schlüsseln im Entwicklerhandbuch zu AWS Key Management Service.

      Weitere Informationen zum Erstellen eines AWS KMS key finden Sie unter Creating Keys (Schlüssel erstellen) im AWS Key Management Service-Entwicklerhandbuch. Weitere Informationen zur Verwendung von AWS KMS mit Amazon S3 finden Sie unter Verwenden serverseitiger Verschlüsselung mit AWS KMS-Schlüsseln (SSE-KMS).

  12. Wenn Sie Ihre Daten in eine bestimmte Speicherklasse im Ziel replizieren wollen, wählen Sie unter Zielspeicherklasse die Option Speicherklasse für die replizierten Objekte ändern aus. Anschließend wählen Sie die Speicherklasse, die Sie für die replizierten Objekte im Ziel verwenden wollen. Wenn Sie diese Option nicht auswählen, ist die Speicherklasse für replizierte Objekte dieselbe Klasse wie für die ursprünglichen Objekte.

  13. Beim Festlegen der zusätzlichen Replikationsoptionen haben Sie folgende zusätzliche Optionen:

    Anmerkung

    Wenn Sie S3-RTC- oder S3-Replikationsmetriken verwenden, fallen zusätzliche Gebühren an.

  14. Zum Abschluss wählen Sie Save (Speichern).

  15. Nachdem Sie Ihre Regel gespeichert haben, können Sie Ihre Regel bearbeiten, aktivieren, deaktivieren oder löschen, indem Sie Ihre Regel auswählen und Edit rule (Regel bearbeiten) wählen.

Um die AWS CLI zum Einrichten der Replikation zu verwenden, wenn sich Quell- und Ziel-Bucket im Besitz desselben AWS-Konto befinden, gehen Sie wie folgt vor:

  • Erstellen Sie 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 Berechtigungen erteilt, Objekte zu replizieren.

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

Um die Einrichtung zu prüfen, testen Sie sie.

So richten Sie die Replikation ein, wenn sich die Quell- und Ziel-Buckets im Besitz desselben AWS-Kontos befinden
  1. Richten Sie das Anmeldeinformationsprofil für die ein AWS CLI. Dieses Beispiel verwendet den Profilnamen acctA. 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

    Das Profil, das Sie für dieses Beispiel verwenden, muss ü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. Weitere Informationen finden Sie unter Einem Benutzer Berechtigungen zum Übergeben einer Rolle an einen AWS-Service erteilen im Benutzerhandbuch zu IAM. Wenn Sie zur Erstellung eines benannten Profils die Anmeldeinformationen eines Administrators verwenden, können Sie alle Aufgaben durchführen.

  2. Verwenden Sie die folgenden AWS CLI-Befehle, um einen Quell-Bucket zu erstellen und die Versionsverwaltung für ihn zu aktivieren. Wenn Sie diese Befehle verwenden wollen, ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

    Mit dem folgenden create-bucket-Befehl wird ein Quell-Bucket mit dem Namen amzn-s3-demo-source-bucket in 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

    Mit dem folgenden put-bucket-versioning-Befehl wird die S3-Versionsverwaltung auf dem Bucket amzn-s3-demo-source-bucket aktiviert:

    aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-source-bucket \ --versioning-configuration Status=Enabled \ --profile acctA
  3. Verwenden Sie die folgenden AWS CLI-Befehle, um einen Ziel-Bucket zu erstellen und die Versionsverwaltung für ihn zu aktivieren. Wenn Sie diese Befehle verwenden wollen, ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

    Anmerkung

    Verwenden Sie dasselbe Profil für die Quell- und die Ziel-Buckets, um eine Replikations-Konfiguration einzurichten, wenn sich Quell- und Ziel-Bucket im selben AWS-Konto befinden. Dieses Beispiel verwendet acctA.

    Um eine Replikationskonfiguration zu testen, wenn sich die Buckets im Besitz unterschiedlicher AWS-Konten befinden, legen Sie verschiedene Profile für jedes Konto fest. Verwenden Sie beispielsweise ein acctB-Profil für den Ziel-Bucket.

    Mit dem folgenden create-bucket-Befehl wird ein Ziel-Bucket mit dem Namen amzn-s3-demo-destination-bucket in der Region USA West (Oregon) (us-west-2) erstellt:

    aws s3api create-bucket \ --bucket amzn-s3-demo-destination-bucket \ --region us-west-2 \ --create-bucket-configuration LocationConstraint=us-west-2 \ --profile acctA

    Mit dem folgenden put-bucket-versioning-Befehl wird die S3-Versionsverwaltung auf dem Bucket amzn-s3-demo-destination-bucket aktiviert:

    aws s3api put-bucket-versioning \ --bucket amzn-s3-demo-destination-bucket \ --versioning-configuration Status=Enabled \ --profile acctA
  4. 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 eine 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 dem Amazon-S3-Service Prinzipalberechtigungen, um die Rolle zu übernehmen.

        JSON
        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
      2. Führen Sie den folgenden 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-permissions-policy.json im aktuellen Verzeichnis auf Ihrem lokalen Computer. Diese Zugriffsrichtlinie erteilt Berechtigungen für verschiedene Amazon-S3-Bucket- und -Objektaktionen.

        JSON
        { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "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:ReplicateTags" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket/*" } ] }
        Anmerkung
        • Wenn Sie verschlüsselte Objekte replizieren möchten, müssen Sie auch die erforderlichen Berechtigungen für den AWS KMS-Schlüssel (AWS Key Management Service) erteilen. Weitere Informationen finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

        • Sie müssen zwei neue Berechtigungen für den S3-Quell-Bucket in der AWS Identity and Access Management (IAM)-Rolle erteilen, mit der Sie die Replikation eingerichtet haben, um Object Lock mit Replikation verwenden zu können. Die zwei neuen Berechtigungen sind s3:GetObjectRetention und s3:GetObjectLegalHold. Wenn die Rolle über eine s3:Get*-Berechtigungsanweisung verfügt, ist die Anforderung dadurch erfüllt. Weitere Informationen finden Sie unter Verwenden von Object Lock mit der S3-Replikation.

      2. Führen Sie den folgenden Befehl aus, um eine Richtlinie zu erstellen und sie der Rolle anzufügen. Ersetzen Sie user input placeholders durch Ihre Informationen.

        $ aws iam put-role-policy \ --role-name replicationRole \ --policy-document file://s3-role-permissions-policy.json \ --policy-name replicationRolePolicy \ --profile acctA
  5. Fügen Sie eine Replikationskonfiguration zum Quell-Bucket hinzu.

    1. Die Amazon-S3-API verlangt, dass Sie die Replikationskonfiguration als XML angeben, jedoch verlangt die AWS CLI, dass Sie die Replikationskonfiguration als JSON angeben. Speichern Sie den folgenden JSON-Code in einer Datei mit dem Namen replication.json im lokalen Verzeichnis auf Ihrem Computer.

      { "Role": "IAM-role-ARN", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": "Tax"}, "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket" } } ] }
    2. Aktualisieren Sie die JSON-Datei, indem Sie die Werte für den amzn-s3-demo-destination-bucket und den IAM-role-ARN durch Ihre eigenen Informationen ersetzen. Speichern Sie die Änderungen.

    3. Führen Sie den folgenden put-bucket-replication-Befehl aus, um die Replikationskonfiguration zu Ihrem Quell-Bucket hinzuzufügen. Stellen Sie sicher, dass Sie den Namen für den Quell-Bucket angeben:

      $ aws s3api put-bucket-replication \ --replication-configuration file://replication.json \ --bucket amzn-s3-demo-source-bucket \ --profile acctA

    Um die Replikationskonfiguration abzurufen, verwenden Sie den Befehl get-bucket-replication:

    $ aws s3api get-bucket-replication \ --bucket amzn-s3-demo-source-bucket \ --profile acctA
  6. Testen Sie die Einrichtung in der Amazon-S3-Konsole, indem Sie die folgenden Schritte durchführen:

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

    2. Wählen Sie im linken Navigationsbereich Buckets aus. Wählen Sie in der Liste der Allzweck-Buckets den Quell-Bucket aus.

    3. Erstellen Sie im Quell-Bucket einen Ordner mit dem Namen Tax.

    4. Fügen Sie Beispielobjekte zum Tax-Ordner im Quell-Bucket hinzu.

      Anmerkung

      Die von Amazon S3 für die Replikation eines Objekts benötigte Zeit hängt von der Größe des Objekts ab. Weitere Informationen zum Anzeigen des Replikationsstatus finden Sie unter Abrufen von Replikationsstatusinformationen.

      Überprüfen Sie im Ziel-Bucket Folgendes:

      • Dass Amazon S3 die Objekte repliziert hat.

      • Dass es sich bei den Objekten um Replikate handelt. Scrollen Sie auf der Registerkarte Properties (Eigenschaften) für Ihre Objekte nach unten zum Abschnitt Object management overview (Objektverwaltung – Übersicht). Beachten Sie unter Management configurations (Verwaltungskonfigurationen) den Wert unter Replication status (Replikationsstatus). Stellen Sie sicher, dass dieser Wert auf REPLICA festgelegt ist.

      • Und dass sich die Replikate im Besitz des Quell-Bucket-Kontos befinden. Sie können die Eigentümerschaft Ihrer Objekte auf der Registerkarte Permissions (Berechtigungen) überprüfen.

        Wenn sich der Quell- und der Ziel-Bucket im Besitz verschiedener Konten befinden, können Sie eine optionale Konfiguration hinzufügen, um Amazon S3 anzuweisen, die Replikateigentümerschaft zu dem Zielkonto zu ändern. Ein Beispiel finden Sie unter So ändern Sie den Replikateigentümer.

Verwenden Sie die folgenden Code-Beispiele, um eine Replikations-Konfiguration mit AWS SDK für Java bzw. AWS SDK für .NET zu einem Bucket hinzuzufügen.

Anmerkung
  • Wenn Sie verschlüsselte Objekte replizieren möchten, müssen Sie auch die erforderlichen Berechtigungen für den AWS KMS-Schlüssel (AWS Key Management Service) erteilen. Weitere Informationen finden Sie unter Replizieren verschlüsselter Objekte (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).

  • Sie müssen zwei neue Berechtigungen für den S3-Quell-Bucket in der AWS Identity and Access Management (IAM)-Rolle erteilen, mit der Sie die Replikation eingerichtet haben, um Object Lock mit Replikation verwenden zu können. Die zwei neuen Berechtigungen sind s3:GetObjectRetention und s3:GetObjectLegalHold. Wenn die Rolle über eine s3:Get*-Berechtigungsanweisung verfügt, ist die Anforderung dadurch erfüllt. Weitere Informationen finden Sie unter Verwenden von Object Lock mit der S3-Replikation.

Java

Um einem Bucket eine Replikationskonfiguration hinzuzufügen und dann die Konfiguration mithilfe des AWS SDK für Java abzurufen und zu überprüfen, können Sie den S3Client verwenden, um die Replikationseinstellungen programmgesteuert zu verwalten.

Beispiele für die Konfiguration der Replikation mit dem AWS SDK für Java finden Sie unter Die Replikationskonfiguration für einen Bucket festlegen in der Amazon S3-API-Referenz.

C#

Das folgende AWS SDK für .NET-Codebeispiel fügt zuerst eine Replikations-Konfiguration zu einem Bucket hinzu und ruft ihn anschließend ab. Um diesen Code zu verwenden, geben Sie die Namen für die Buckets und den Amazon-Ressourcennamen (ARN) für die IAM-Rolle an. Informationen zum Einrichten und Ausführen der Codebeispiele finden Sie unter Getting Started with the AWS SDK für .NET (Erste Schritte mit dem NET) im AWS SDK für .NET-Entwicklerhandbuch.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class CrossRegionReplicationTest { private const string sourceBucket = "*** source bucket ***"; // Bucket ARN example - arn:aws:s3:::destinationbucket private const string destinationBucketArn = "*** destination bucket ARN ***"; private const string roleArn = "*** IAM Role ARN ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint sourceBucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(sourceBucketRegion); EnableReplicationAsync().Wait(); } static async Task EnableReplicationAsync() { try { ReplicationConfiguration replConfig = new ReplicationConfiguration { Role = roleArn, Rules = { new ReplicationRule { Prefix = "Tax", Status = ReplicationRuleStatus.Enabled, Destination = new ReplicationDestination { BucketArn = destinationBucketArn } } } }; PutBucketReplicationRequest putRequest = new PutBucketReplicationRequest { BucketName = sourceBucket, Configuration = replConfig }; PutBucketReplicationResponse putResponse = await s3Client.PutBucketReplicationAsync(putRequest); // Verify configuration by retrieving it. await RetrieveReplicationConfigurationAsync(s3Client); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } private static async Task RetrieveReplicationConfigurationAsync(IAmazonS3 client) { // Retrieve the configuration. GetBucketReplicationRequest getRequest = new GetBucketReplicationRequest { BucketName = sourceBucket }; GetBucketReplicationResponse getResponse = await client.GetBucketReplicationAsync(getRequest); // Print. Console.WriteLine("Printing replication configuration information..."); Console.WriteLine("Role ARN: {0}", getResponse.Configuration.Role); foreach (var rule in getResponse.Configuration.Rules) { Console.WriteLine("ID: {0}", rule.Id); Console.WriteLine("Prefix: {0}", rule.Prefix); Console.WriteLine("Status: {0}", rule.Status); } } } }