Sicherheit globaler 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 globaler 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 ressourcenbasierten Richtlinien.

Wie verwenden globale Tabellen IAM AWS

Mit dem Replikationsdienst verknüpfte Rolle

Wenn Sie zum ersten Mal eine globale Tabelle erstellen, erstellt Amazon DynamoDB automatisch eine serviceverknüpfte Rolle AWS Identity and Access Management (IAM). Die Spiegelreflexkamera trägt einen Namen und ermöglicht DynamoDB AWSServiceRoleForDynamoDBReplication, die regionsübergreifende Replikation für globale Tabellen in Ihrem Namen zu verwalten.

Wenn Sie ressourcenbasierte Richtlinien auf Replikate anwenden, stellen Sie sicher, dass Sie dem SLR-Prinzipal keine der in der AWSServiceRoleForDynamoDBReplication Richtlinie definierten Berechtigungen verweigern, da dadurch die Replikation unterbrochen wird. Wenn Sie die erforderlichen SLR-Berechtigungen verweigern, wird die Replikation zu und von den betroffenen Replikaten beendet, und der Status der Replikattabelle ändert sich auf. REPLICATION_NOT_AUTHORIZED

  • Wenn ein Replikat in einer globalen Tabelle, die für Multi-Region Eventual Consistency (MREC) konfiguriert ist, länger als 20 Stunden im REPLICATION_NOT_AUTHORIZED Status verbleibt, wird das Replikat unwiderruflich in eine Single-Region-DynamoDB-Tabelle konvertiert.

  • Globale Tabellenreplikate, die für MRSC (Multi-Region Strong Consistency) -Rückgabe und für Schreib- und Strongly Consistent-Lesevorgänge konfiguriert sind. AccessDeniedException Wenn ein Replikat in einer globalen MRSC-Tabelle länger als sieben Tage im REPLICATION_NOT_AUTHORIZED Status verbleibt, kann nicht mehr auf das Replikat zugegriffen werden, und Schreib- und Strongly Consistent-Lesevorgänge schlagen weiterhin mit einem Fehler fehl. Einige Verwaltungsvorgänge wie das Löschen von Replikaten werden erfolgreich sein.

Mit dem Dienst verknüpfte Rolle automatisch skalieren

Wenn Sie eine globale Tabelle für den Modus „Bereitgestellte Kapazität“ konfigurieren, müssen Sie auch Auto Scaling für die globale Tabelle konfigurieren. 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 Scaling-Dienst erstellt eine serviceverknüpfte Rolle (SLR), die benannt ist, AWSServiceRoleForApplicationAutoScaling_DynamoDBTable um die bereitgestellte Tabellenkapazität zu verwalten und Alarme zu erstellen. CloudWatch Wenn Sie ressourcenbasierte Richtlinien auf Replikate anwenden, stellen Sie sicher, dass Sie dem SLR-Prinzipal des Application Auto Scaling Service keine der in der AWSServiceRoleForApplicationAutoScaling_DynamoDBTable Richtlinie definierten Berechtigungen verweigern, da dadurch die Auto Scaling-Funktionalität unterbrochen wird.

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

Erforderliche Berechtigungen für globale Tabellen

Um ein Replikat zu erstellen, benötigen Sie die folgenden Berechtigungen für die Tabelle oder das Replikat, zu dem Sie neue Replikate hinzufügen:

  • dynamodb:UpdateTable

Um ein Replikat zu erstellen, benötigen Sie in jeder Region, in der ein neues Replikat erstellt werden soll, die folgenden Berechtigungen:

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

Um einen Zeugen zu erstellen, benötigen Sie in der Region, in der ein neuer Zeuge erstellt werden soll, die folgenden Berechtigungen:

  • dynamodb:CreateGlobalTableWitness

Um ein Replikat zu löschen, benötigen Sie die folgenden Berechtigungen für das Replikat:

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Um einen Zeugen zu löschen, benötigen Sie die folgenden Berechtigungen für den Zeugen:

  • dynamodb:DeleteGlobalTableWitness

Um eine Richtlinie für die auto Skalierung von Replikaten mit der UpdateTableReplicaAutoScaling API zu aktualisieren, müssen Sie in allen Regionen, die Replikate enthalten, über die folgenden Berechtigungen verfügen:

  • 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

Um die Time-to-Live-Einstellungen mit der UpdateTimeToLive API zu aktualisieren, benötigen Sie die folgenden Berechtigungen für alle Replikate:

  • dynamodb:UpdateTimeToLive

IAM-Beispielrichtlinien

Beispiel: Eine globale Tabelle verwalten

Die folgende IAM-Richtlinie gewährt Berechtigungen zum Erstellen und Löschen globaler Tabellenreplikate und Zeugen für die Tabelle „Benutzer“ in drei Regionen:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManagingUsersGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:CreateGlobalTableWitness", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:DeleteGlobalTableWitness", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/users", "arn:aws:dynamodb:us-east-2:123456789012:table/users", "arn:aws:dynamodb:us-west-2:123456789012:table/users" ] } ] }

Beispiel: Schließen Sie die erforderlichen SLR-Berechtigungen aus den Richtlinien zum Ablehnen von Platzhaltern aus

Eine IAM-Richtlinie mit der folgenden Bedingung hat keine Auswirkungen auf die erforderlichen Berechtigungen für die DynamoDB-Replikations-SLR und AWS Auto Scaling SLR. Diese Bedingung kann zu ansonsten weitgehend restriktiven Richtlinien hinzugefügt werden, um zu verhindern, dass Replikation oder Auto Scaling unbeabsichtigt unterbrochen werden:

"Condition": { "StringNotEquals": { "aws:PrincipalArn": [ "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication", "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" ] } }

Wie verwenden globale Tabellen AWS KMS

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

Alle Replikate in einer globalen Tabelle müssen mit demselben Typ von KMS-Schlüssel (AWS eigener Schlüssel, AWS verwalteter Schlüssel oder vom Kunden verwalteter Schlüssel) konfiguriert werden.

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 sich der Tabellenstatus auf einem der verbleibenden Replikate ändert, und dann den Schlüssel deaktivieren oder löschen. ACTIVE

Wenn Sie bei einer globalen Tabelle, die für Multi-Region Eventual Consistency (MREC) konfiguriert ist, 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 in einer globalen MREC-Tabelle länger als 20 Stunden im INACCESSIBLE_ENCRYPTION_CREDENTIALS Status verbleibt, wird das Replikat irreversibel in eine DynamoDB-Tabelle mit einer einzigen Region konvertiert.

Wenn Sie bei einer globalen Tabelle, die für Multi-Region Strong Consistency (MRSC) konfiguriert ist, 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 gestoppt. Versuche, Schreibvorgänge oder stark konsistente Lesevorgänge für das Replikat durchzuführen, geben einen Fehler zurück, und der Replikatstatus ändert sich inINACCESSIBLE_ENCRYPTION_CREDENTIALS. Wenn ein Replikat in einer globalen MRSC-Tabelle länger als sieben Tage im INACCESSIBLE_ENCRYPTION_CREDENTIALS Status verbleibt, wird das Replikat je nach den widerrufenen spezifischen Berechtigungen archiviert oder es kann dauerhaft nicht mehr darauf zugegriffen werden.