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
Replikate globaler Tabellen sind DynamoDB-Tabellen. Sie verwenden daher dieselben Methoden zur Steuerung des Zugriffs auf Replikate wie für Tabellen mit einzelnen Regionen, 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 () -Verschlüsselung sichern. AWS Key Management Service AWS KMS Sie erfahren mehr über die ressourcenbasierten Richtlinien und Service Linked Roles (SLR), die eine regionsübergreifende kontoübergreifende Replikation und automatische Skalierung ermöglichen. Dabei handelt es sich um die IAM-Berechtigungen, die zum Erstellen, Aktualisieren und Löschen globaler Tabellen erforderlich sind, um MREC-Tabellen (Multiregion Eventual Consistency) zu erstellen. Außerdem lernen Sie die Verschlüsselungsschlüssel kennen, 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 einer 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.
Autorisierung durch den Service-Principal zur 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 Replikationsdienstprinzips von DynamoDB:. replication.dynamodb.amazonaws.com Jedes teilnehmende Konto muss diesen Prinzipal in der Ressourcenrichtlinie der Replikattabelle explizit zulassen und ihm Berechtigungen gewähren, die durch Quellkontextbedingungen für Schlüssel wie aws:SourceAccount usw. auf bestimmte Replikate beschränkt werden können. Weitere Informationen finden Sie unter AWS Globale Bedingungsschlüssel. aws:SourceArn Die Berechtigungen sind bidirektional, was bedeutet, dass sich alle Replikate gegenseitig explizit Berechtigungen gewähren müssen, bevor die Replikation für ein bestimmtes Replikatpaar eingerichtet werden kann.
Die folgenden Service Principal-Berechtigungen sind für die kontoübergreifende Replikation unerlässlich:
-
dynamodb:ReadDataForReplicationgewährt die Möglichkeit, Daten für Replikationszwecke zu lesen. Mit dieser Berechtigung können Änderungen in einem Replikat gelesen und auf andere Replikate übertragen werden. -
dynamodb:WriteDataForReplicationermöglicht das Schreiben replizierter Daten in Zieltabellen. Mit dieser Berechtigung können Änderungen für alle Replikate in der globalen Tabelle synchronisiert werden. -
dynamodb:ReplicateSettingsermöglicht die Replikatübergreifende Synchronisation von Tabelleneinstellungen und gewährleistet so eine konsistente Konfiguration für alle teilnehmenden Tabellen.
Jedes Replikat muss allen anderen Replikaten und sich selbst die oben genannten Berechtigungen gewähren — d. h., die Bedingungen im Quellkontext müssen den vollständigen Satz von Replikaten enthalten, 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 sichergestellt, dass Replikationsvorgänge nur vom autorisierten DynamoDB-Dienst und nur zwischen den vorgesehenen Tabellen ausgeführt werden.
Service-linked Rollen für globale Tabellen mit mehreren Konten
DynamoDB-Tabellen mit mehreren Konten replizieren Einstellungen für alle Replikate, sodass jedes Replikat identisch eingerichtet ist, einen konsistenten Durchsatz bietet und ein nahtloses Failover-Erlebnis bietet. Die Replikation der Einstellungen wird durch die ReplicateSettings Genehmigung des Service Principal gesteuert, aber wir verlassen uns auch auf Service Linked Roles (SLRs), um bestimmte kontoübergreifende Funktionen für regionsübergreifende Replikation und automatische Skalierung zu verwalten. Diese Rollen werden nur einmal pro Konto eingerichtet. AWS Einmal erstellt, werden dieselben Rollen für alle globalen Tabellen in Ihrem Konto verwendet. Weitere Informationen zu serviceverknüpften Rollen finden Sie im IAM-Benutzerhandbuch unter Verwenden von serviceverknüpften Rollen.
Verwaltung der Einstellungen — dienstgebundene Rolle
Amazon DynamoDB erstellt automatisch die AWSServiceRoleForDynamoDBGlobalTableSettingsManagement 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 dem SLR-Prinzipal keine der im SLR-Prinzipal definierten Berechtigungen verweigern, da dies die Verwaltung der Einstellungen beeinträchtigen und die Replikation beeinträchtigen kann, wenn der Durchsatz zwischen den Replikaten oder GSIs nicht übereinstimmt. AWSServiceRoleForDynamoDBGlobalTableSettingsManagement 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 in. 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 irreversibel in eine DynamoDB-Tabelle mit einer einzelnen 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 „Bereitgestellte Kapazität“ muss Auto Scaling für die globale Tabelle konfiguriert werden. DynamoDB Auto Scaling verwendet den AWS Application Auto Scaling Service, um die bereitgestellte Durchsatzkapazität auf Ihren globalen Tabellenreplikaten dynamisch anzupassen. Der Application Auto Scaling-Dienst erstellt eine dienstverknüpfte Rolle (SLR) mit dem Namen _DynamoDbTable. AWSServiceRoleForApplicationAutoScaling Diese serviceverknüpfte Rolle wird automatisch in Ihrem AWS Konto erstellt, wenn Sie Auto Scaling zum ersten Mal für eine DynamoDB-Tabelle konfigurieren. Sie ermöglicht Application Auto Scaling, die bereitgestellte Tabellenkapazität zu verwalten und Alarme zu erzeugen. CloudWatch
Wenn Sie ressourcenbasierte Richtlinien auf Replikate anwenden, stellen Sie sicher, dass Sie dem Application Auto Scaling SLR-Principal keine der AWSApplicationAutoscalingDynamoDBTablePolicy im SLR-Prinzipal von Application definierten Berechtigungen verweigern, da dadurch die Auto-Scaling-Funktionalität unterbrochen wird.
Wie verwenden globale Tabellen AWS IAM
In den folgenden Abschnitten werden die erforderlichen Berechtigungen für verschiedene Operationen mit globalen Tabellen beschrieben. Außerdem finden Sie Richtlinienbeispiele, die Ihnen bei der Konfiguration des entsprechenden Zugriffs für Ihre Benutzer und Anwendungen helfen.
Anmerkung
Alle beschriebenen Berechtigungen müssen auf den spezifischen ARN der Tabellenressource in den betroffenen Regionen angewendet werden. Der ARN der Tabellenressource folgt dem Formatarn:aws:dynamodb:region:account-id:table/table-name, in dem Sie Ihre tatsächlichen Werte für Region, Konto-ID und Tabellenname angeben müssen.
Im Folgenden finden Sie die Themen, die wir Schritt für Schritt in den folgenden Abschnitten behandeln:
-
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 einer regionalen Tabelle ein neues Replikat hinzugefügt wird, um eine globale Tabelle mit mehreren Konten zu bilden, oder zu einer vorhandenen globalen Tabelle mit mehreren Konten, muss der IAM-Principal, der die Aktion ausführt, von allen vorhandenen Mitgliedern autorisiert werden. Alle vorhandenen Mitglieder müssen in ihrer Tabellenrichtlinie die folgende Erlaubnis erteilen, damit das Replikat erfolgreich hinzugefügt werden kann:
-
dynamodb:AssociateTableReplica— Mit dieser Berechtigung können Tabellen zu einer globalen Tabelleneinrichtung zusammengefügt werden. Dies ist die grundlegende Berechtigung, die die anfängliche Einrichtung der Replikationsbeziehung ermöglicht.
Diese präzise Steuerung ermöglicht es nur autorisierten Konten, an der globalen Tabelleneinrichtung teilzunehmen.
Beispiel für IAM-Richtlinien für die Erstellung globaler Tabellen
Die Einrichtung globaler Tabellen mit mehreren Konten folgt einem bestimmten Autorisierungsablauf, der eine sichere Replikation gewährleistet. Lassen Sie uns untersuchen, wie das in der Praxis funktioniert, indem wir ein praktisches Szenario durchgehen, in dem ein Kunde eine globale Tabelle mit zwei Replikaten einrichten möchte. Das erste Replikat (ReplicaA) 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 hinzufügen, die dem Zielkonto (Konto B) ausdrücklich die erforderlichen Berechtigungen gewährt, 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 zum Erstellen des Replikats verwendet werden soll. Diese Richtlinie spiegelt die von Konto A erteilten Berechtigungen wider und stellt eine vertrauenswürdige bidirektionale Beziehung her. Bevor die Replikation eingerichtet wird, validiert DynamoDB diese kontoübergreifenden Berechtigungen, um sicherzustellen, dass die korrekte 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 explizit die erforderlichen Berechtigungen.
-
In ähnlicher Weise muss der Administrator von Konto B Replicab eine entsprechende Richtlinie an Replicab anhängen, wobei die Kontoverweise umgekehrt werden, um Konto A die entsprechenden Berechtigungen zu gewähren. Dies geschieht beim Aufruf zum Erstellen von Replikat B, das Replikat A als Quelltabelle referenziert.
In diesem Setup haben wir 3 Replikate ReplicaA, RepliCab und ReplicaC in Konto A, Konto B bzw. Konto C. Replica A ist das erste Replikat, das als regionale Tabelle beginnt, und dann werden Replicab und ReplicaC hinzugefügt.
-
Der Administrator von Konto A muss zuerst die ressourcenbasierte Richtlinie an ReplicaA anhängen, sodass die Replikation mit allen Mitgliedern möglich ist und die IAM-Prinzipale von Konto B und Konto C Replikate hinzufügen können.
-
Der Administrator von Konto B muss ein Replikat (Replikat B) hinzufügen, das auf ReplicaA als Quelle verweist. Für Replikat B gilt die folgende Richtlinie, die die Replikation zwischen allen Mitgliedern ermöglicht und Konto C das Hinzufügen eines Replikats ermöglicht:
-
Schließlich erstellt der Administrator von Konto C ein Replikat mit der folgenden Richtlinie, die Replikationsberechtigungen zwischen allen Mitgliedern zulässt. Die Richtlinie erlaubt nicht, dass weitere Replikate hinzugefügt werden.
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. Auto-Scaling-Richtlinien 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 folgende Berechtigung für die Tabellenressource in allen Regionen, die Replikate enthalten: dynamodb:UpdateTimeToLive
Um eine Richtlinie für die automatische Skalierung von Replikaten 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 ist. Wenn ein Replikat keine Berechtigungen zum Replizieren von Einstellungen auf ein Replikat in der globalen Tabelle mit AccessDeniedException mehreren Konten bietet, schlagen alle Aktualisierungsvorgänge für alle Replikate fehl, bis die Berechtigungen behoben 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 UpdateTable Sie eine Replikattabelle in einer entfernten Region nicht löschen, und jedes Replikat muss über die DeleteTable API aus dem Konto gelöscht werden, das es verwaltet.
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 Standard-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
So 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 einem anderen Schlüsseltyp konfiguriert werden (AWS eigener Schlüssel oder vom Kunden AWS KMS verwalteter Schlüssel). Multi-account Globale Tabellen unterstützen keine verwalteten Schlüssel. AWS
Multi-account Globale Tabellen, die CMKs verwenden, erfordern, dass die Schlüsselrichtlinie der einzelnen Replikate dem DynamoDB-Replikationsdienstprinzipal (replication.dynamodb.amazonaws.com) Berechtigungen für den Zugriff auf den Schlüssel für die Replikation und 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 zum Verschlüsseln eines Replikats verwendet wird, deaktivieren oder löschen möchten, weil Sie das Replikat löschen, sollten Sie zuerst das Replikat löschen und warten, bis die Tabelle aus der Replikationsgruppe entfernt wird, indem Sie in einem der anderen Replikate describe aufrufen, und dann den Schlüssel deaktivieren oder löschen.
Wenn Sie DynamoDB den Zugriff auf einen vom Kunden verwalteten Schlüssel, der zum Verschlüsseln eines Replikats verwendet wird, deaktivieren oder entziehen, wird die Replikation zum und vom Replikat gestoppt und der Replikatstatus ändert sich inINACCESSIBLE_ENCRYPTION_CREDENTIALS. Wenn ein Replikat länger als 20 Stunden in diesem INACCESSIBLE_ENCRYPTION_CREDENTIALS Status verbleibt, wird das Replikat irreversibel in eine DynamoDB-Tabelle mit einer einzelnen Region konvertiert.
Beispiel AWS KMS policy
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: