Considérations relatives à l'intégration entre comptes avec CMK - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Considérations relatives à l'intégration entre comptes avec CMK

Lorsque vous tentez d'intégrer DynamoDB à Amazon Redshift, l'action initiale est lancée depuis Amazon Redshift. Sans les autorisations appropriées, cette action peut entraîner un échec silencieux. Les sections suivantes détaillent les autorisations requises pour cette intégration entre comptes.

AWS KMS Politiques et autorisations requises

Remplacez les espaces réservés suivants dans les exemples :

  • REDSHIFT_ACCOUNT_ID: Compte AWS ID où Amazon Redshift est hébergé

  • DYNAMODB_ACCOUNT_ID: Compte AWS ID où DynamoDB est hébergé

  • REDSHIFT_ROLE_NAME: le nom du rôle IAM utilisé par Amazon Redshift

  • REGION: L' Région AWS endroit où se trouvent vos ressources

  • TABLE_NAME: nom de votre table DynamoDB

  • KMS_KEY_ID: ID de votre clé KMS

Politique clé KMS dans le compte DynamoDB

{ "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": "*" } ] }

Politique IAM pour le rôle Amazon Redshift (dans le compte Amazon Redshift)

{ "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" } ] }

Relation de confiance pour le rôle Amazon Redshift

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

Politique de table DynamoDB (si vous utilisez des politiques basées sur les ressources)

{ "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/*" ] } ] }

Considérations Importantes

  1. Assurez-vous que la clé KMS se trouve dans la même région que votre table DynamoDB.

  2. La clé KMS doit être une clé gérée par le client (CMK) et non une Clé gérée par AWS.

  3. Si vous utilisez des tables globales DynamoDB, configurez les autorisations pour toutes les régions pertinentes.

  4. Envisagez d'ajouter des instructions de condition pour restreindre l'accès en fonction des points de terminaison VPC ou des plages d'adresses IP.

  5. Pour renforcer la sécurité, pensez à utiliser aws:PrincipalOrgID une condition pour restreindre l'accès à votre organisation.

  6. Surveillez l'utilisation des clés KMS grâce à CloudTrail des CloudWatch indicateurs.