Überlegungen zur kontenübergreifenden Integration mit CMK - 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.

Überlegungen zur kontenübergreifenden Integration mit CMK

Wenn Sie versuchen, von DynamoDB in Amazon Redshift zu integrieren, wird die erste Aktion von Amazon Redshift aus gestartet. Ohne die entsprechenden Berechtigungen könnte diese Aktion zu einem unbemerkten Fehler führen. In den folgenden Abschnitten werden die Berechtigungen beschrieben, die für diese kontenübergreifende Integration erforderlich sind.

Erforderliche AWS KMS Richtlinien und Berechtigungen

Ersetzen Sie die folgenden Platzhalter in den Beispielen:

  • REDSHIFT_ACCOUNT_ID: Die AWS-Konto ID, unter der Amazon Redshift gehostet wird

  • DYNAMODB_ACCOUNT_ID: Die AWS-Konto ID, unter der DynamoDB gehostet wird

  • REDSHIFT_ROLE_NAME: Der von Amazon Redshift verwendete IAM-Rollenname

  • REGION: Der AWS-Region Ort, an dem sich Ihre Ressourcen befinden

  • TABLE_NAME: Der Name Ihrer DynamoDB-Tabelle

  • KMS_KEY_ID: Die ID Ihres KMS-Schlüssels

KMS-Schlüsselrichtlinie im DynamoDB-Konto

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::DYNAMODB_ACCOUNT_ID:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow Redshift to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::REDSHIFT_ACCOUNT_ID:role/REDSHIFT_ROLE_NAME" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" } ] }

IAM-Richtlinie für die Amazon Redshift Redshift-Rolle (im Amazon Redshift Redshift-Konto)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBAccess", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:ParitalBatchGetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream", "dynamodb:ListStreams" ], "Resource": [ "arn:aws:dynamodb:REGION:DYNAMODB_ACCOUNT_ID:table/TABLE_NAME", "arn:aws:dynamodb:REGION:DYNAMODB_ACCOUNT_ID:table/TABLE_NAME/stream/*" ] }, { "Sid": "AllowKMSAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "arn:aws:kms:REGION:DYNAMODB_ACCOUNT_ID:key/KMS_KEY_ID" } ] }

Vertrauensverhältnis für die Amazon Redshift Redshift-Rolle

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

DynamoDB-Tabellenrichtlinie (wenn ressourcenbasierte Richtlinien verwendet werden)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRedshiftAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::REDSHIFT_ACCOUNT_ID:role/REDSHIFT_ROLE_NAME" }, "Action": [ "dynamodb:DescribeTable", "dynamodb:ParitalBatchGetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream", "dynamodb:ListStreams" ], "Resource": [ "arn:aws:dynamodb:REGION:DYNAMODB_ACCOUNT_ID:table/TABLE_NAME", "arn:aws:dynamodb:REGION:DYNAMODB_ACCOUNT_ID:table/TABLE_NAME/stream/*" ] } ] }

Wichtige Überlegungen

  1. Stellen Sie sicher, dass sich der KMS-Schlüssel in derselben Region wie Ihre DynamoDB-Tabelle befindet.

  2. Der KMS-Schlüssel muss ein vom Kunden verwalteter Schlüssel (CMK) sein, kein. Von AWS verwalteter Schlüssel

  3. Wenn Sie globale DynamoDB-Tabellen verwenden, konfigurieren Sie Berechtigungen für alle relevanten Regionen.

  4. Erwägen Sie das Hinzufügen von Bedingungsanweisungen, um den Zugriff auf der Grundlage von VPC-Endpunkten oder IP-Bereichen einzuschränken.

  5. Um die Sicherheit zu erhöhen, sollten Sie in Erwägung ziehen, aws:PrincipalOrgID Bedingungen zu verwenden, um den Zugriff auf Ihre Organisation einzuschränken.

  6. Überwachen Sie die Nutzung von KMS-Schlüsseln anhand von CloudTrail Daten und CloudWatch Kennzahlen.