Einrichtung der Replikation von S3-Tabellen - 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.

Einrichtung der Replikation von S3-Tabellen

Sie können die Replikation so einrichten, dass automatisch Tabellenreplikate aus einer Quelltabelle in bis zu fünf Zieltabellen-Buckets erstellt werden. Die Replikation kann auf Bucket-Ebene (gilt für alle Tabellen im Bucket) oder auf Tabellenebene (für bestimmte Tabellen) konfiguriert werden. In diesem Thema wird erklärt, wie die Replikation mithilfe der Amazon S3 S3-Konsole oder der AWS Befehlszeilenschnittstelle (AWS CLI) konfiguriert wird.

Weitere Informationen zum Einrichten der Replikation finden Sie in den folgenden Themen.

Voraussetzungen für die Einrichtung der Replikation

Bevor Sie die Replikation konfigurieren, stellen Sie sicher, dass Sie über Folgendes verfügen:

Erforderliche -Ressourcen

  • Quelltabellen-Bucket — Der Tabellen-Bucket, der die Tabelle (n) enthält, die Sie replizieren möchten

  • Zieltabellen-Bucket (s) — Ein oder mehrere Tabellen-Buckets, in die Sie Ihre Tabellen replizieren möchten (bis zu 5 Zieltabellen-Buckets)

  • Quelltabelle (n) — Bestehende Tabellen in Ihrem Quelltabellen-Bucket, die repliziert werden sollen

  • IAM-Rolle (n) — Eine IAM-Rolle, die Amazon S3 S3-Berechtigungen erteilt, Tabellen in Ihrem Namen zu replizieren

Erforderliche Berechtigungen

Die IAM-Identität, mit der Sie die Replikation einrichten, muss über die folgenden Berechtigungen verfügen:

Für die Replikation auf Bucket-Ebene:
  • s3tables:PutTableBucketReplicationim Bucket der Quelltabelle

  • s3tables:GetTableBucketReplicationauf dem Quelltabellen-Bucket

  • iam:PassRolefür die IAM-Rolle für die Replikation

Für die Replikation auf Tabellenebene:
  • s3tables:PutTableReplicationin der Quelltabelle

  • s3tables:GetTableReplicationin der Quelltabelle

  • iam:PassRolefür die IAM-Rolle für die Replikation

Für die kontenübergreifende Replikation:
  • Berechtigungen aus der Bucket-Richtlinie des Zielkontos

Zusätzliche Anforderungen für die kontenübergreifende Replikation

Wenn sich Ihre Quell- und Zieltabellen-Buckets in unterschiedlichen AWS Konten befinden, benötigen Sie außerdem:

  • Eine Bucket-Richtlinie für den Zieltabellen-Bucket, die dem Quellkonto Berechtigungen zum Replizieren von Tabellen gewährt

  • Die Zielkonto-ID und der Tabellen-Bucket Amazon Resource Name (ARN)

Zusätzliche Anforderungen für verschlüsselte Tabellen

Wenn Sie Replikattabellen verschlüsseln möchten mit: AWS KMS

  • Ein KMS-Schlüssel in der Zielregion

  • Berechtigungen zur Verwendung des KMS-Schlüssels in Ihrer IAM-Replikationsrolle

  • Eine KMS-Schlüsselrichtlinie, die es der Replikationsrolle ermöglicht, Daten zu verschlüsseln

Erläuterungen zu Replikationskonfigur

Eine Replikationskonfiguration definiert, wie Amazon S3 Tabellen aus Ihrem Quelltabellen-Bucket repliziert. Die Replikation kann auf zwei Ebenen konfiguriert werden:

Replikation auf Bucket-Ebene

Eine Replikationskonfiguration auf Bucket-Ebene gilt für alle Tabellen im Quelltabellen-Bucket. Wenn Sie die Replikation auf Bucket-Ebene konfigurieren, repliziert Amazon S3 automatisch alle vorhandenen Tabellen und alle neuen Tabellen, die im Bucket erstellt wurden.

Verwenden Sie die Replikation auf Bucket-Ebene, wenn:

  • Sie möchten alle Tabellen in einem Bucket replizieren

  • Sie möchten ein konsistentes Replikationsverhalten in allen Tabellen

  • Sie möchten die Verwaltung vereinfachen, indem Sie eine einzige Konfiguration verwenden

Replikation auf Tabellenebene

Eine Replikationskonfiguration auf Tabellenebene gilt für eine bestimmte Tabelle. Konfigurationen auf Tabellenebene haben Vorrang vor Konfigurationen auf Bucket-Ebene für diese spezifische Tabelle.

Verwenden Sie die Replikation auf Tabellenebene, wenn:

  • Sie möchten nur bestimmte Tabellen replizieren

  • Sie benötigen unterschiedliche Replikationsziele für verschiedene Tabellen

  • Sie möchten eine Konfiguration auf Bucket-Ebene für bestimmte Tabellen überschreiben

Elemente der Replikationskonfiguration

Jede Replikationskonfiguration enthält:

  • IAM-Rolle — Die Rolle, die Amazon S3 zur Durchführung von Replikationsvorgängen übernimmt

  • Regeln — Eine oder mehrere Replikationsregeln (beim Start auf eine Regel begrenzt). Jede Regel enthält:

    • Destinationen — Liste der ARNs Ziel-Tabellen-Buckets (bis zu 5 Ziele)

    • Status — Gibt an, ob die Regel aktiviert oder deaktiviert ist

  • Versionstoken — Ein Token, das verwendet wird, um Schreibkonflikte beim Aktualisieren von Konfigurationen zu verhindern

Wahl zwischen Replikation auf Bucket- und Tabellenebene

Vorrang bei der Konfiguration

Wenn sowohl Konfigurationen auf Bucket- als auch auf Tabellenebene existieren:

  • Die Konfiguration auf Tabellenebene hat für diese spezifische Tabelle Vorrang.

  • Andere Tabellen folgen der Konfiguration auf Bucket-Ebene.

Einrichtung der Replikation mithilfe der Amazon S3 S3-Konsole

Dieses Verfahren zeigt Ihnen, wie Sie die Replikation mit der Amazon S3 S3-Konsole konfigurieren.

Dieses Verfahren zeigt Ihnen, wie Sie mit der Amazon S3 S3-Konsole eine Tabellen-Bucket-Replikationskonfiguration erstellen. Eine Tabellen-Bucket-Replikationskonfiguration gilt für alle Tabellen im Quelltabellen-Bucket.

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

  2. Wählen Sie im Navigationsbereich Table Buckets aus.

  3. Wählen Sie in der Liste Tabellen-Buckets den Namen des Tabellen-Buckets aus, für den Sie die Replikation konfigurieren möchten.

  4. Wählen Sie den Tab Management.

  5. Wählen Sie im Abschnitt Konfiguration der Tabellen-Bucket-Replikation die Option Tabellen-Bucket-Replikationskonfiguration erstellen aus.

  6. Konfigurieren Sie im Abschnitt Ziel Ihre Replikationsziele:

    1. Geben Sie im Feld Tabellen-Bucket ARN den ARN des Zieltabellen-Buckets ein. Das Format ist:arn:aws:s3tables:region:account-id:bucket/table-bucket-name

      Wählen Sie alternativ Browse S3, um einen Tabellen-Bucket aus Ihrem Konto auszuwählen.

    2. (Optional) Um weitere Ziele hinzuzufügen, wählen Sie Ziel hinzufügen. Sie können bis zu 4 weitere Tabellen-Buckets für insgesamt 5 Ziele hinzufügen.

  7. Konfigurieren Sie im Abschnitt „IAM-Rolle“ die Replikationsrolle:

    1. Wählen Sie für die IAM-Rollenauswahlmethode eine der folgenden Optionen aus:

      • Neue IAM-Rolle erstellen — Amazon S3 erstellt eine neue Rolle mit den erforderlichen Berechtigungen für die Replikation.

      • Wählen Sie aus vorhandenen IAM-Rollen — Wählen Sie eine bestehende Rolle aus, die über die erforderlichen Replikationsberechtigungen verfügt.

      • IAM-Rollen-ARN eingeben — Geben Sie den ARN einer vorhandenen IAM-Rolle manuell ein.

    2. Wenn Sie Aus vorhandenen IAM-Rollen auswählen ausgewählt haben, wählen Sie eine Rolle aus der Dropdownliste der IAM-Rolle aus.

    3. (Optional) Wählen Sie „Ansicht“, um die Berechtigungen der ausgewählten Rolle in der IAM-Konsole zu überprüfen.

  8. Wählen Sie Replikationskonfiguration erstellen aus.

    Nachdem Sie die Replikationskonfiguration erstellt haben, beginnt Amazon S3 mit dem ersten Backfill-Prozess. Sie können den Replikationsstatus im Abschnitt Tabellenreplikationsstatus überwachen, in dem Informationen zu jedem Ziel angezeigt werden, einschließlich Replikationsstatus, Zieltabellen-ARN und zuletzt replizierten Metadaten.

Dieses Verfahren zeigt Ihnen, wie Sie mit der Amazon S3 S3-Konsole eine Replikationskonfiguration auf Tabellenebene erstellen. Eine Konfiguration für die Tabellenreplikation gilt für eine bestimmte Tabelle und überschreibt alle Replikationskonfigurationen auf Bucket-Ebene für diese Tabelle.

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

  2. Wählen Sie im Navigationsbereich Table Buckets aus.

  3. Wählen Sie in der Liste Tabellen-Buckets den Namen des Tabellen-Buckets aus, der die Tabelle enthält, die Sie replizieren möchten.

  4. Wählen Sie die Registerkarte Tables (Tabellen).

  5. Wählen Sie in der Liste Tabellen den Namen der Tabelle aus, die Sie replizieren möchten.

  6. Wählen Sie den Tab Management.

  7. Wählen Sie im Abschnitt Konfiguration der Tabellenreplikation die Option Konfiguration für die Tabellenreplikation erstellen aus.

  8. Konfigurieren Sie im Abschnitt Ziel Ihre Replikationsziele:

    1. Geben Sie im Feld Tabellen-Bucket ARN den ARN des Zieltabellen-Buckets ein. Das Format ist:arn:aws:s3tables:region:account-id:bucket/table-bucket-name

      Wählen Sie alternativ Browse S3, um einen Tabellen-Bucket aus Ihrem Konto auszuwählen.

    2. (Optional) Um weitere Ziele hinzuzufügen, wählen Sie Ziel hinzufügen. Sie können bis zu 4 weitere Tabellen-Buckets für insgesamt 5 Ziele hinzufügen.

  9. Konfigurieren Sie im Abschnitt „IAM-Rolle“ die Replikationsrolle:

    1. Wählen Sie für die IAM-Rollenauswahlmethode eine der folgenden Optionen aus:

      • Neue IAM-Rolle erstellen — Amazon S3 erstellt eine neue Rolle mit den erforderlichen Berechtigungen für die Replikation.

      • Wählen Sie aus vorhandenen IAM-Rollen — Wählen Sie eine bestehende Rolle aus, die über die erforderlichen Replikationsberechtigungen verfügt.

      • IAM-Rollen-ARN eingeben — Geben Sie den ARN einer vorhandenen IAM-Rolle manuell ein.

    2. Wenn Sie Aus vorhandenen IAM-Rollen auswählen ausgewählt haben, wählen Sie eine Rolle aus der IAM-Rollenliste aus.

    3. (Optional) Wählen Sie „Ansicht“, um die Berechtigungen der ausgewählten Rolle in der IAM-Konsole zu überprüfen.

  10. Wählen Sie Replikationskonfiguration erstellen aus.

Was passiert als Nächstes?

Nachdem Sie die Replikationskonfiguration erstellt haben:

  • Amazon S3 beginnt mit dem ersten Backfill-Prozess und erstellt Replikattabellen in jedem Ziel-Bucket

  • Der Replikationsstatus ändert sich zu Replizieren, sobald das Auffüllen beginnt

  • Sie können den Replikationsfortschritt auf der Registerkarte Management überwachen

  • Die anfängliche Replikationszeit hängt von der Größe Ihrer Quelltabelle ab

Einrichtung der Replikation mit dem AWS CLI

Dieses Verfahren zeigt Ihnen, wie Sie die Replikation mit dem konfigurieren AWS CLI. Ersetzen Sie die Konto- IDs, Regions- und Bucket-Namen durch Ihre tatsächlichen Werte. Fügen Sie alle Ziel-Buckets zu den Berechtigungen hinzu.

Schritt 1: Erstellen Sie eine IAM-Rolle für die Replikation

Erstellen Sie zunächst eine IAM-Rolle, die Amazon S3 für die Replikation Ihrer Tabellen übernehmen kann.

  1. Erstellen Sie ein Dokument mit Vertrauensrichtlinien, das es S3 Tables ermöglicht, die Rolle zu übernehmen. Speichern Sie das untertrust-policy.json:

    { "Version": "2012-10-17" "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.s3tables.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie die IAM-Rolle:

    aws iam create-role \ --role-name S3TablesReplicationRole \ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication"
  3. Erstellen Sie eine Berechtigungsrichtlinie, die Replikationsberechtigungen gewährt. Speichern Sie das unterreplication-permissions.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableData" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source/table/*" }, { "Effect": "Allow", "Action": [ "s3tables:ListTables" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source" }, { "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination" }, { "Effect": "Allow", "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination/table/*" } ] }
  4. Hängen Sie die Berechtigungsrichtlinie an die Rolle an:

    aws iam put-role-policy \ --role-name S3TablesReplicationRole \ --policy-name S3TablesReplicationPermissions \ --policy-document file://replication-permissions.json
  5. (Optional) Wenn Sie die KMS-Verschlüsselung verwenden, fügen Sie Ihrer Richtlinie KMS-Berechtigungen hinzu:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" ] }

(Nur kontoübergreifend) Schritt 2: Konfigurieren Sie die Ziel-Bucket-Richtlinie

Wenn Sie auf ein anderes AWS Konto replizieren, muss das Zielkonto dem Quellkonto Berechtigungen gewähren.

  1. Erstellen Sie im Zielkonto eine Bucket-Richtlinie für den Zieltabellen-Bucket. Speichern Sie dies alsdestination-bucket-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination" } ] }
  2. Wenden Sie die Richtlinie mithilfe der S3 Tables-API an:

    aws s3tables put-table-bucket-policy \ --table-bucket-arn arn:aws:s3tables:us-west-2:444455556666:bucket/amzn-s3-demo-table-bucket-cross-account-destination \ --policy file://destination-bucket-policy.json \ --profile destination-account
  3. Ändern Sie Ihren KMS-Quellschlüssel, um die Replikation und Wartung von S3-Tabellen zu ermöglichen:

    { "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "allow replication to decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" } ] }
  4. Fügen Sie in ähnlicher Weise Berechtigungen zu Ihrer KMS-Schlüsselrichtlinie für Ihr Ziel hinzu

    { "Version": "2012-10-17", "Id": "key-policy-3", "Statement": [ { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" }, { "Sid": "allow replication to encrypt/decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" } ]

Schritt 3: Erstellen Sie eine Replikationskonfiguration

Sie können die verwenden AWS CLI , um eine Replikationskonfiguration auf Tabellen-Bucket-Ebene oder Tabellenebene zu erstellen. Weitere Informationen finden Sie in den folgenden Verfahren.

Verwenden Sie diesen Ansatz, um alle Tabellen in einem Bucket zu replizieren.

  1. Erstellen Sie eine Konfigurationsdatei für die Replikation. Speichern Sie das unterbucket-replication-config.json:

    Beispiel : Einzelnes Ziel im selben Konto
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" } ] } ] }
    Beispiel : Mehrere Ziele in verschiedenen Regionen
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" }, { "destinationTableBucketARN": "arn:aws:s3tables:ap-south-1:111122223333:bucket/amzn-s3-demo-table-bucket-apac" } ] } ] }
    Beispiel : Kontenübergreifende Replikation
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-east-1:444455556666:bucket/amzn-s3-demo-table-bucket-partner" } ] } ] }
  2. Wenden Sie die Replikationskonfiguration auf Bucket-Ebene an:

    aws s3tables put-table-bucket-replication \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --configuration file://bucket-replication-config.json

    Erwartete Ausgabe:

    { "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }

Verwenden Sie diesen Ansatz, um bestimmte Tabellen zu replizieren oder die Replikation auf Bucket-Ebene außer Kraft zu setzen.

  1. Erstellen Sie eine Konfigurationsdatei für die Replikation. Speichern Sie das untertable-replication-config.json:

    Beispiel : Replikation einzelner Tabellen
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-analytics-bucket" } ] } ] }
    Beispiel : Tabelle mit mehreren Zielen
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" } ] } ] }
  2. Wenden Sie die Replikationskonfiguration auf Tabellenebene an:

    aws s3tables put-table-replication \ --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table-bucket-sales-data \ --configuration file://table-replication-config.json

    Erwartete Ausgabe:

    { "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }