Verwenden von IAM mit globalen 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.

Verwenden von IAM mit globalen Tabellen

Wichtig

Diese Dokumentation bezieht sich auf globale Tabellen der Version 2017.11.29 (veraltet), die für neue globale Tabellen vermieden werden sollte. Kunden sollten nach Möglichkeit Global Tables Version 2019.11.21 (aktuell) verwenden, da sie mehr Flexibilität und höhere Effizienz bietet und weniger Schreibkapazität verbraucht als 2017.11.29 (veraltet).

Informationen dazu, welche Version Sie verwenden, finden Sie unter Ermitteln der verwendeten Version der globalen Tabellen. Informationen zur Aktualisierung globaler Tabellen von Version 2017.11.29 (veraltet) auf Version 2019.11.21 (aktuell) finden Sie unter Aktualisieren globaler Tabellen.

Beim ersten Erstellen einer globalen Tabelle generiert Amazon DynamoDB automatisch eine mit dem AWS Identity and Access Management-(IAM)-Service verknüpfte Rolle für Sie. Diese Rolle trägt den Namen AWSServiceRoleForDynamoDBReplication und ermöglicht DynamoDB, die regionsübergreifende Replikation für globale Tabellen in Ihrem Namen zu verwalten. Löschen Sie diese serviceverknüpfte Rolle nicht. Andernfalls funktionieren alle globalen Tabellen nicht mehr.

Weitere Informationen zu serviceverknüpften Rollen finden Sie unter Verwenden serviceverknüpfter Rollen im IAM-Benutzerhandbuch.

Zum Erstellen und Verwalten globaler Tabellen in DynamoDB müssen Sie über die dynamodb:CreateGlobalTable-Berechtigung für den Zugriff auf die folgenden Komponenten verfügen:

  • Die Replikattabelle, die Sie hinzufügen möchten.

  • Jedes vorhandene Replikat, das bereits Teil der globalen Tabelle ist.

  • Die globale Tabelle selbst.

Zum Aktualisieren der Einstellungen (UpdateGlobalTableSettings) für eine globale Tabelle in DynamoDB benötigen Sie die Berechtigungen dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy und application-autoscaling:DeregisterScalableTarget.

Die application-autoscaling:DeleteScalingPolicy und application-autoscaling:DeregisterScalableTarget-Berechtigungen sind erforderlich, wenn eine vorhandene Skalierungsrichtlinie aktualisiert wird. Dadurch kann der globale Tabellendienst die alte Skalierungsrichtlinie entfernen, bevor die neue Richtlinie an die Tabelle oder den sekundären Index anfügt.

Wenn Sie eine IAM-Richtlinie verwenden, um den Zugriff auf eine Replikattabelle zu verwalten, sollten Sie eine identische Richtlinie auf alle anderen Replikate innerhalb dieser globalen Tabelle anwenden. Auf diese Weise wird ein einheitliches Berechtigungsmodell für alle Replikattabellen aufrechterhalten.

Durch die Verwendung identischer IAM-Richtlinien für alle Replikate in einer globalen Tabelle können Sie auch vermeiden, unbeabsichtigten Lese- und Schreibzugriff auf Ihre globalen Tabellendaten zu gewähren. Nehmen wir als Beispiel einen Benutzer, der nur Zugriff auf ein Replikat in einer globalen Tabelle hat. Wenn dieser Benutzer in dieses Replikat schreiben kann, übertragt DynamoDB den Schreibvorgang auf alle anderen Replikattabellen. Der Benutzer kann so (indirekt) in alle anderen Replikate der globalen Tabelle schreiben. Dieses Szenario kann mit konsistenten IAM-Richtlinien für alle Replikattabellen vermieden werden.

Beispiel: Zulassen der CreateGlobalTable Aktion

Bevor Sie einer globalen Tabelle ein Replikat hinzufügen können, müssen Sie über die dynamodb:CreateGlobalTable-Berechtigung für die globale Tabelle und für alle zugehörigen Replikattabellen verfügen.

Mit der folgenden IAM-Richtlinie werden die Berechtigungen zum Zulassen der Aktion CreateGlobalTable für alle Tabellen erteilt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["dynamodb:CreateGlobalTable"], "Resource": "*" } ] }

Beispiel: Erlauben Sie die Aktionen UpdateGlobalTable, DescribeLimits, application-autoscaling: DeleteScalingPolicyund application-autoscaling:DeregisterScalableTarget actions

Zum Aktualisieren der Einstellungen (UpdateGlobalTableSettings) für eine globale Tabelle in DynamoDB benötigen Sie die Berechtigungen dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy und application-autoscaling:DeregisterScalableTarget.

Mit der folgenden IAM-Richtlinie werden die Berechtigungen zum Zulassen der Aktion UpdateGlobalTableSettings für alle Tabellen erteilt.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateGlobalTable", "dynamodb:DescribeLimits", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

Beispiel: Erlauben der CreateGlobalTable Aktion für einen bestimmten globalen Tabellennamen mit Replikaten, die nur in bestimmten Regionen zulässig sind

Die folgende IAM-Richtlinie erteilt Berechtigungen, damit die CreateGlobalTable-Aktion eine globale Tabelle namens Customers mit Replikaten in zwei Regionen erstellen kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:CreateGlobalTable", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Customers", "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers" ] } ] }