Sicherheit von globalen DynamoDB-Tabellen - Amazon DynamoDB

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.

Sicherheit von globalen DynamoDB-Tabellen

Globale Tabellenreplikate sind DynamoDB-Tabellen. Sie verwenden also dieselben Methoden zur Steuerung des Zugriffs auf Replikate wie für Tabellen mit einer einzelnen Region, einschließlich AWS Identity and Access Management (IAM-) Identitätsrichtlinien und ressourcenbasierter Richtlinien. In diesem Thema wird beschrieben, wie Sie globale DynamoDB-Tabellen mit mehreren Konten mithilfe von IAM-Berechtigungen und AWS Key Management Service () -Verschlüsselung sichern.AWS KMS Sie erfahren mehr über die ressourcenbasierten Richtlinien und serviceverknüpften Rollen (SLR), die eine regionsübergreifende kontenübergreifende Replikation und auto-scaling ermöglichen, sowie über die IAM-Berechtigungen, die zum Erstellen, Aktualisieren und Löschen globaler Tabellen für MREC-Tabellen (Multi-Region Eventual Consistency) erforderlich sind. Außerdem erfahren Sie mehr über Verschlüsselungsschlüssel, mit denen Sie die regionsübergreifende Replikation sicher verwalten können. AWS KMS

Es enthält detaillierte Informationen zu den ressourcenbasierten Richtlinien und Berechtigungen, die für die Einrichtung der konto- und regionsübergreifenden Tabellenreplikation erforderlich sind. Das Verständnis dieses Sicherheitsmodells ist für Kunden, die sichere, kontoübergreifende Datenreplikationslösungen implementieren müssen, von entscheidender Bedeutung.

Serviceprinzipalautorisierung für die Replikation

Die globalen Tabellen von DynamoDB mit mehreren Konten verwenden einen eigenen Autorisierungsansatz, da die Replikation über Kontogrenzen hinweg durchgeführt wird. Dies erfolgt mithilfe des Replikationsdienstprinzipals von DynamoDB:. replication.dynamodb.amazonaws.com Jedes teilnehmende Konto muss diesen Prinzipal in der Ressourcenrichtlinie der Replikattabelle explizit zulassen und ihm damit Berechtigungen geben, die durch Quellkontextbedingungen für Schlüssel wieaws:SourceAccount, aws:SourceArn usw. auf bestimmte Replikate beschränkt werden können. Weitere Informationen finden Sie unter AWS globale Bedingungsschlüssel. Die Berechtigungen sind bidirektional, was bedeutet, dass sich alle Replikate gegenseitig ausdrücklich Berechtigungen gewähren müssen, bevor die Replikation für ein bestimmtes Replikatpaar eingerichtet werden kann.

Die folgenden Dienstprinzipalberechtigungen sind für die kontenübergreifende Replikation unerlässlich:

  • dynamodb:ReadDataForReplicationgewährt die Möglichkeit, Daten für Replikationszwecke zu lesen. Mit dieser Berechtigung können Änderungen an einem Replikat gelesen und an andere Replikate weitergegeben werden.

  • dynamodb:WriteDataForReplicationermöglicht das Schreiben replizierter Daten in Zieltabellen. Mit dieser Berechtigung können Änderungen zwischen allen Replikaten in der globalen Tabelle synchronisiert werden.

  • dynamodb:ReplicateSettingsermöglicht die Synchronisation von Tabelleneinstellungen zwischen Replikaten und sorgt so für eine konsistente Konfiguration in allen beteiligten Tabellen.

Jedes Replikat muss allen anderen Replikaten und sich selbst die oben genannten Berechtigungen gewähren — d. h. die Quellkontextbedingungen müssen den gesamten Satz von Replikaten umfassen, aus dem die globale Tabelle besteht. Diese Berechtigungen werden für jedes neue Replikat überprüft, wenn es zu einer globalen Tabelle mit mehreren Konten hinzugefügt wird. Dadurch wird überprüft, ob Replikationsvorgänge nur vom autorisierten DynamoDB-Dienst und nur zwischen den vorgesehenen Tabellen ausgeführt werden.

Mit Diensten verknüpfte Rollen für globale Tabellen mit mehreren Konten

DynamoDB-Tabellen mit mehreren Konten replizieren Einstellungen über alle Replikate hinweg, sodass jedes Replikat identisch eingerichtet wird, einen konsistenten Durchsatz aufweist und ein nahtloses Failover-Erlebnis bietet. Die Replikation von Einstellungen wird über die ReplicateSettings Berechtigungen des Dienstprinzipals gesteuert, aber wir verlassen uns auch auf dienstverknüpfte Rollen (SLRs), um bestimmte kontenübergreifende Funktionen für die regionsübergreifende Replikation und auto-scaling zu verwalten. Diese Rollen werden nur einmal pro Konto eingerichtet. AWS Nach der Erstellung dienen dieselben Rollen für alle globalen Tabellen in Ihrem Konto. Weitere Informationen zu serviceverknüpften Rollen finden Sie unter Verwenden von serviceverknüpften Rollen im IAM-Benutzerhandbuch.

Mit dem Dienst verknüpfte Rolle für die Verwaltung von Einstellungen

Amazon DynamoDB erstellt automatisch die AWSService RoleForDynamo DBGlobal TableSettingsManagement serviceverknüpfte Rolle (SLR), wenn Sie Ihr erstes globales Tabellenreplikat mit mehreren Konten im Konto erstellen. Diese Rolle verwaltet die kontoübergreifende regionsübergreifende Replikation von Einstellungen für Sie.

Wenn Sie ressourcenbasierte Richtlinien auf Replikate anwenden, stellen Sie sicher, dass Sie keine der im SLR-Prinzipal definierten Berechtigungen verweigern, da dies die Einstellungsverwaltung beeinträchtigen und die Replikation beeinträchtigen könnte, wenn der Durchsatz zwischen den Replikaten nicht übereinstimmt oder. AWSServiceRoleForDynamoDBGlobalTableSettingsManagement GSIs Wenn Sie die erforderlichen SLR-Berechtigungen verweigern, wird die Replikation zu und von den betroffenen Replikaten möglicherweise beendet, und der Status der Replikattabelle ändert sich auf. REPLICATION_NOT_AUTHORIZED Wenn bei globalen Tabellen mit mehreren Konten ein Replikat länger als 20 Stunden im REPLICATION_NOT_AUTHORIZED Status verbleibt, wird das Replikat unwiderruflich in eine DynamoDB-Tabelle mit einer einzigen Region konvertiert. Die Spiegelreflexkamera hat die folgenden Berechtigungen:

  • application-autoscaling:DeleteScalingPolicy

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:RegisterScalableTarget

Mit dem Auto Scaling Service verknüpfte Rolle

Bei der Konfiguration einer globalen Tabelle für den Modus mit bereitgestellter Kapazität muss Auto Scaling für die globale Tabelle konfiguriert werden. DynamoDB Auto Scaling verwendet den AWS Application Auto Scaling Scaling-Dienst, um die bereitgestellte Durchsatzkapazität auf Ihren globalen Tabellenreplikaten dynamisch anzupassen. Der Application Auto Scaling Scaling-Dienst erstellt eine serviceverknüpfte Rolle (SLR) mit dem Namen. AWSServiceRoleForApplicationAutoScaling_DynamoDBTable Diese serviceverknüpfte Rolle wird automatisch in Ihrem AWS Konto erstellt, wenn Sie Auto Scaling für eine DynamoDB-Tabelle zum ersten Mal konfigurieren. Es ermöglicht Application Auto Scaling, die bereitgestellte Tabellenkapazität zu verwalten und CloudWatch Alarme zu erstellen.

Wenn Sie ressourcenbasierte Richtlinien auf Replikate anwenden, stellen Sie sicher, dass Sie dem Application Auto Scaling SLR-Prinzipal keine in der AWSApplicationAutoscalingDynamoDBTableRichtlinie definierten Berechtigungen verweigern, da dadurch die Auto-Scaling-Funktionalität unterbrochen wird.

AWS Wie globale Tabellen IAM verwenden

In den folgenden Abschnitten werden die erforderlichen Berechtigungen für verschiedene globale Tabellenoperationen beschrieben und Richtlinienbeispiele bereitgestellt, die Ihnen bei der Konfiguration des entsprechenden Zugriffs für Ihre Benutzer und Anwendungen helfen sollen.

Anmerkung

Alle beschriebenen Berechtigungen müssen auf die spezifische Tabellenressource ARN in den betroffenen Regionen angewendet werden. Die Tabellenressource ARN folgt dem Formatarn:aws:dynamodb:region:account-id:table/table-name, in dem Sie Ihre tatsächlichen Werte für Region, Konto-ID und Tabellennamen angeben müssen.

Die folgenden step-by-step Themen behandeln wir in den folgenden Abschnitten:

  • Globale Tabellen mit mehreren Konten erstellen und Replikate hinzufügen

  • Aktualisierung einer globalen Tabelle mit mehreren Konten

  • Löschen globaler Tabellen und Entfernen von Replikaten

Globale Tabellen erstellen und Replikate hinzufügen

Berechtigungen für die Erstellung globaler Tabellen

Wenn ein neues Replikat zu einer regionalen Tabelle hinzugefügt wird, um eine globale Tabelle mit mehreren Konten zu bilden, oder zu einer vorhandenen globalen Tabelle mit mehreren Konten, muss der IAM-Prinzipal, der die Aktion ausführt, von allen vorhandenen Mitgliedern autorisiert werden. Alle vorhandenen Mitglieder müssen in ihrer Tabellenrichtlinie die folgenden Berechtigungen erteilen, damit das Replikat erfolgreich hinzugefügt werden kann:

  • dynamodb:AssociateTableReplica- Mit dieser Berechtigung können Tabellen zu einer globalen Tabellenkonfiguration zusammengefügt werden. Dies ist die grundlegende Berechtigung, die den anfänglichen Aufbau der Replikationsbeziehung ermöglicht.

Durch diese präzise Steuerung können nur autorisierte Konten an der globalen Tabelleneinrichtung teilnehmen.

Beispiel für IAM-Richtlinien zum Erstellen globaler Tabellen

Die Einrichtung globaler Tabellen mit mehreren Konten folgt einem bestimmten Autorisierungsablauf, der eine sichere Replikation gewährleistet. Lassen Sie uns anhand eines praktischen Szenarios untersuchen, wie dies in der Praxis funktioniert, in dem ein Kunde eine globale Tabelle mit zwei Replikaten einrichten möchte. Das erste Replikat (ReplicA) befindet sich in Konto A in der Region ap-east-1, während sich das zweite Replikat (ReplicAB) in Konto B in der Region eu-south-1 befindet.

  • Im Quellkonto (Konto A) beginnt der Prozess mit der Erstellung der primären Replikattabelle. Der Kontoadministrator muss dieser Tabelle eine ressourcenbasierte Richtlinie beifügen, die dem Zielkonto (Konto B) ausdrücklich die erforderlichen Berechtigungen erteilt, um die Zuordnung durchzuführen. Diese Richtlinie autorisiert auch den DynamoDB-Replikationsdienst, wichtige Replikationsaktionen durchzuführen.

  • Das Zielkonto (Konto B) folgt einem ähnlichen Prozess, indem es beim Erstellen des Replikats eine entsprechende ressourcenbasierte Richtlinie anhängt und auf den ARN der Quelltabelle verweist, der zur Erstellung des Replikats verwendet werden soll. Diese Richtlinie spiegelt die von Konto A erteilten Berechtigungen wider und schafft so eine vertrauenswürdige bidirektionale Beziehung. Bevor die Replikation eingerichtet wird, validiert DynamoDB diese kontoübergreifenden Berechtigungen, um sicherzustellen, dass die richtige Autorisierung vorhanden ist.

So richten Sie dieses Setup ein:

  • Der Administrator von Konto A muss zuerst die ressourcenbasierte Richtlinie an ReplicAA anhängen. Diese Richtlinie gewährt Konto B und dem DynamoDB-Replikationsdienst ausdrücklich die erforderlichen Berechtigungen.

  • In ähnlicher Weise muss der Administrator von Konto B im Aufruf create table Replica B, das auf Replikat A als Quelltabelle verweist, eine entsprechende Richtlinie an Replicab anhängen, wobei die Kontoreferenzen umgekehrt werden, um Konto A die entsprechenden Berechtigungen zu gewähren.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB" ] } } }, { "Sid": "AllowTrustedAccountsToJoinThisGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:AssociateTableReplica" ], "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "Principal": {"AWS": ["444455556666"]} } ] }
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB" ] } } } ] }

In diesem Setup haben wir jeweils 3 Replikate ReplicA, Replicab und ReplicaC in Konto A, Konto B und Konto C. Replikat A ist das erste Replikat, das als regionale Tabelle beginnt und der dann Replicab und ReplicaC hinzugefügt werden.

  • Der Administrator von Konto A muss zuerst ReplicA die ressourcenbasierte Richtlinie zuordnen, sodass die Replikation mit allen Mitgliedern möglich ist und den IAM-Prinzipalen von Konto B und Konto C das Hinzufügen von Replikaten ermöglicht wird.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666", "123456789012" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB", "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC" ] } } }, { "Sid": "AllowTrustedAccountsToJoinThisGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:AssociateTableReplica" ], "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "Principal": { "AWS": [ "444455556666", "123456789012" ] } } ] }
  • Der Administrator von Konto B muss ein Replikat (Replikat B) hinzufügen, das auf Replica A als Quelle verweist. Für Replikat B gilt die folgende Richtlinie, die die Replikation zwischen allen Mitgliedern ermöglicht und es Konto C ermöglicht, ein Replikat hinzuzufügen:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666", "123456789012" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB", "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC" ] } } }, { "Sid": "AllowTrustedAccountsToJoinThisGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:AssociateTableReplica" ], "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB", "Principal": { "AWS": [ "123456789012" ] } } ] }
  • Schließlich erstellt der Administrator von Konto C ein Replikat mit der folgenden Richtlinie, die Replikationsberechtigungen zwischen allen Mitgliedern gewährt. Die Richtlinie erlaubt nicht, dass weitere Replikate hinzugefügt werden.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DynamoDBActionsNeededForSteadyStateReplication", "Effect": "Allow", "Action": [ "dynamodb:ReadDataForReplication", "dynamodb:WriteDataForReplication", "dynamodb:ReplicateSettings" ], "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC", "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]}, "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB" ] } } } ] }

Aktualisierung einer globalen Tabelle mit mehreren Konten

Um die Replikateinstellungen für eine bestehende globale Tabelle mithilfe der UpdateTable API zu ändern, benötigen Sie die folgende Berechtigung für die Tabellenressource in der Region, in der Sie den API-Aufruf tätigen: dynamodb:UpdateTable

Sie können auch andere globale Tabellenkonfigurationen aktualisieren, z. B. Richtlinien für auto Skalierung und Time-to-Live-Einstellungen. Für diese zusätzlichen Aktualisierungsvorgänge sind die folgenden Berechtigungen erforderlich:

Um die Time-to-Live-Einstellungen mit der UpdateTimeToLive API zu aktualisieren, benötigen Sie die folgenden Berechtigungen für die Tabellenressource in allen Regionen, die Replikate enthalten: dynamodb:UpdateTimeToLive

Um eine Replica-Auto-Scaling-Richtlinie mit der UpdateTableReplicaAutoScaling API zu aktualisieren, benötigen Sie die folgenden Berechtigungen für die Tabellenressource in allen Regionen, die Replikate enthalten:

  • application-autoscaling:DeleteScalingPolicy

  • application-autoscaling:DeleteScheduledAction

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DescribeScalingActivities

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DescribeScheduledActions

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:PutScheduledAction

  • application-autoscaling:RegisterScalableTarget

Anmerkung

Sie müssen dynamodb:ReplicateSettings Berechtigungen für alle Replikatregionen und Konten bereitstellen, damit die Aktualisierungstabelle erfolgreich aktualisiert werden kann. Wenn ein Replikat nicht berechtigt ist, Einstellungen auf ein beliebiges Replikat in der globalen Tabelle mit AccessDeniedException mehreren Konten zu replizieren, schlagen alle Aktualisierungsvorgänge für alle Replikate fehl, bis die Berechtigungen repariert sind.

Löschen globaler Tabellen und Entfernen von Replikaten

Um eine globale Tabelle zu löschen, müssen Sie alle Replikate entfernen. Im Gegensatz zu Global Table mit demselben Konto können Sie diese Option nicht verwenden, UpdateTable um eine Replikattabelle in einer entfernten Region zu löschen. Jedes Replikat muss über die DeleteTable API aus dem Konto gelöscht werden, das es steuert.

Berechtigungen zum Löschen globaler Tabellen und zum Entfernen von Replikaten

Die folgenden Berechtigungen sind sowohl für das Entfernen einzelner Replikate als auch für das vollständige Löschen globaler Tabellen erforderlich. Durch das Löschen einer globalen Tabellenkonfiguration wird nur die Replikationsbeziehung zwischen Tabellen in verschiedenen Regionen entfernt. Die zugrunde liegende DynamoDB-Tabelle in der letzten verbleibenden Region wird nicht gelöscht. Die Tabelle in der letzten Region existiert weiterhin als standardmäßige DynamoDB-Tabelle mit denselben Daten und Einstellungen.

Sie benötigen die folgenden Berechtigungen für die Tabellenressource in jeder Region, in der Sie ein Replikat entfernen:

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Wie verwenden globale Tabellen AWS KMS

Wie alle DynamoDB-Tabellen verschlüsseln globale Tabellenreplikate Daten im Ruhezustand immer mit Verschlüsselungsschlüsseln, die im AWS Key Management Service () gespeichert sind.AWS KMS

Anmerkung

Im Gegensatz zu globalen Tabellen mit demselben Konto können verschiedene Replikate in einer globalen Tabelle mit mehreren Konten mit unterschiedlichen Schlüsseltypen konfiguriert werden (AWS eigener Schlüssel oder vom Kunden AWS KMS verwalteter Schlüssel). Globale Tabellen mit mehreren Konten unterstützen keine verwalteten Schlüssel. AWS

Globale Tabellen mit mehreren Konten, die verwendet werden, CMKs erfordern, dass die Schlüsselrichtlinie jedes Replikats dem DynamoDB-Replikationsdienstprinzipal (replication.dynamodb.amazonaws.com) Berechtigungen für den Zugriff auf den Schlüssel für die Replikation und die Einstellungsverwaltung erteilt. Die folgenden Berechtigungen sind erforderlich:

  • kms:Decrypt

  • kms:ReEncrypt*

  • kms:GenerateDataKey*

  • kms:DescribeKey

Wichtig

DynamoDB benötigt Zugriff auf den Verschlüsselungsschlüssel des Replikats, um ein Replikat zu löschen. Wenn Sie einen vom Kunden verwalteten Schlüssel, der zur Verschlüsselung eines Replikats verwendet wird, deaktivieren oder löschen möchten, weil Sie das Replikat löschen, sollten Sie zuerst das Replikat löschen, warten, bis die Tabelle aus der Replikationsgruppe entfernt wurde, indem Sie describe in einem der anderen Replikate aufrufen, und dann den Schlüssel deaktivieren oder löschen.

Wenn Sie den Zugriff von DynamoDB auf einen vom Kunden verwalteten Schlüssel, der zur Verschlüsselung eines Replikats verwendet wird, deaktivieren oder entziehen, wird die Replikation zum und vom Replikat beendet und der Replikatstatus wird auf geändertINACCESSIBLE_ENCRYPTION_CREDENTIALS. Wenn ein Replikat länger als 20 Stunden im INACCESSIBLE_ENCRYPTION_CREDENTIALS Status verbleibt, wird das Replikat irreversibel in eine DynamoDB-Tabelle mit einer einzigen Region konvertiert.

Beispiel für eine Richtlinie AWS KMS

Die AWS KMS Richtlinie ermöglicht DynamoDB den Zugriff auf beide AWS KMS Schlüssel für die Replikation zwischen den Replikaten A und B. Die AWS KMS Schlüssel, die dem DynamoDB-Replikat in jedem Konto zugeordnet sind, müssen mit der folgenden Richtlinie aktualisiert werden:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.dynamodb.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333", "444455556666" ], "aws:SourceArn": [ "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA", "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB" ] } } } ] }