View a markdown version of this page

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

Sie können die Replikation so einrichten, dass automatisch Tabellenreplikate aus einer Quelltabelle für 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 Sie die Replikation mithilfe der Amazon S3-Konsole oder der AWS Befehlszeilenschnittstelle (AWS CLI) konfigurieren.

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

Voraussetzungen für das Einrichten 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-Buckets — Ein oder mehrere Tabellen-Buckets, in denen 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-Berechtigungen erteilt, Tabellen in Ihrem Namen zu replizieren

Erforderliche Berechtigungen

Die IAM-Identität, die Sie zum Einrichten der Replikation verwenden, muss über die folgenden Berechtigungen verfügen:

Für die Replikation auf Bucket-Ebene:
  • s3tables:PutTableBucketReplicationauf dem Quelltabellen-Bucket

  • s3tables:GetTableBucketReplicationauf dem Quelltabellen-Bucket

  • iam:PassRolefür die Replikations-IAM-Rolle

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

  • s3tables:GetTableReplicationin der Quelltabelle

  • iam:PassRolefür die Replikations-IAM-Rolle

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

Zusätzliche Anforderungen für die kontoü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 Amazon-Ressourcenname (ARN) des Table-Buckets

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

Grundlagen der Replikationskonfigurationen

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

Bucket-level Replikation

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 für alle Tabellen

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

Table-level Replikation

Eine Replikationskonfiguration auf Tabellenebene gilt für eine bestimmte Tabelle. Table-levelKonfigurationen überschreiben Konfigurationen auf Bucket-Ebene für diese bestimmte 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 beschränkt). Jede Regel enthält:

    • Ziele — Liste der Bucket-ARNs für Zieltabellen (bis zu 5 Ziele)

    • Status — Ob die Regel aktiviert oder deaktiviert ist

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

Wählen Sie zwischen Replikation auf Bucket- und Tabellenebene

Vorrang der Konfiguration

Wenn sowohl Konfigurationen auf Bucket- als auch auf Tabellenebene vorhanden sind:

  • Table-level Die Konfiguration hat für diese bestimmte Tabelle Vorrang.

  • Andere Tabellen folgen der Konfiguration auf Bucket-Ebene.

Einrichtung der Replikation mithilfe der Amazon S3-Konsole

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

Dieses Verfahren zeigt Ihnen, wie Sie mithilfe der Amazon 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-Konsole unter https://console.aws.amazon.com/s3/.

  2. Wählen Sie im Navigationsbereich Tabellen-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 Table-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 Table-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 vorhandene 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 für IAM-Rollen aus.

    3. (Optional) Wählen Sie „Anzeigen“, 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 Replikationsstatus der Tabelle überwachen. Dort werden Informationen zu jedem Ziel angezeigt, einschließlich Replikationsstatus, ARN der Zieltabelle und zuletzt replizierter Metadaten.

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

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

  2. Wählen Sie im Navigationsbereich Tabellen-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 Tabellenliste 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 der 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 Table-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 vorhandene 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 „Anzeigen“, 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 in Repliziert, sobald das Auffüllen beginnt

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

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

Einrichtung der Replikation mithilfe von AWS CLI

Dieses Verfahren zeigt Ihnen, wie Sie die Replikation mithilfe von konfigurieren AWS CLI. Ersetzen Sie die Konto-IDs, Regionen 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 übernehmen kann, um Ihre Tabellen zu replizieren.

  1. Erstellen Sie ein Dokument mit einer Vertrauensrichtlinie, das es S3 Tables ermöglicht, die Rolle zu übernehmen. Speichern Sie das alstrust-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 alsreplication-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
    Anmerkung

    Die Berechtigungsrichtlinie verwendet zwei Ressourcenbereiche, da die Aktionen auf unterschiedlichen Ebenen ablaufen. CreateTableund CreateNamespace sind Operationen auf Bucket-Ebene, die Ressourcen im Bucket erstellen, sodass sie den Bucket-ARN ohne verwenden. /table/* PutTableData, GetTableDataUpdateTableMetadataLocation, und PutTableMaintenanceConfiguration arbeiten mit vorhandenen Tabellen, daher verwenden sie den Bucket-ARN mit. /table/*

  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" ] }

(Cross-account nur) 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 das alsdestination-bucket-policy.json:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3TablesReplicationRole" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3TablesReplicationRole" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666: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 \ --resource-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 auf ähnliche Weise der KMS-Schlüsselrichtlinie für Ihr Ziel Berechtigungen 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- 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 Replikationskonfigurationsdatei. Speichern Sie das alsbucket-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: Cross-account 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 um die Replikation auf Bucket-Ebene zu überschreiben.

  1. Erstellen Sie eine Replikationskonfigurationsdatei. Speichern Sie das alstable-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" }