Sécurité des tables globales DynamoDB - 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.

Sécurité des tables globales DynamoDB

Les répliques de tables globales étant des tables DynamoDB, vous utilisez les mêmes méthodes pour contrôler l'accès aux répliques que pour les tables à région unique, AWS notamment les politiques d'identité Identity and Access Management (IAM) et les politiques basées sur les ressources.

Comment les tables globales utilisent AWS IAM

Rôle lié au service de réplication

Lorsque vous créez une table globale pour la première fois, Amazon DynamoDB crée automatiquement un rôle lié à AWS un service (SLR) Identity and Access Management (IAM). Le SLR porte un nom AWSServiceRoleForDynamoDBReplicationet permet à DynamoDB de gérer la réplication entre régions pour les tables globales en votre nom.

Lorsque vous appliquez des politiques basées sur les ressources à des répliques, assurez-vous de ne refuser aucune des autorisations définies dans la AWSServiceRoleForDynamoDBReplication politique au principal du SLR, car cela interrompra la réplication. Si vous refusez les autorisations SLR requises, la réplication vers et depuis les répliques concernées s'arrêtera et le statut de la table de répliques passera à. REPLICATION_NOT_AUTHORIZED

  • Si une réplique d'une table globale configurée pour la cohérence finale multirégionale (MREC) reste en REPLICATION_NOT_AUTHORIZED l'état pendant plus de 20 heures, la réplique est convertie de manière irréversible en une table DynamoDB à région unique.

  • Les répliques de tables globales configurées pour une cohérence multirégionale (MRSC) renvoient un AccessDeniedException pour les opérations d'écriture et de lecture fortement cohérentes. Si une réplique d'une table globale MRSC reste dans REPLICATION_NOT_AUTHORIZED cet état pendant plus de sept jours, elle devient définitivement inaccessible, et les opérations d'écriture et de lecture hautement cohérentes continueront d'échouer avec une erreur. Certaines opérations de gestion, telles que la suppression des répliques, seront couronnées de succès.

Rôle lié au service Auto Scaling

Lorsque vous configurez une table globale pour le mode capacité allouée, vous devez également configurer le dimensionnement automatique pour la table globale. DynamoDB Auto Scaling AWS utilise le service Application Auto Scaling pour ajuster dynamiquement la capacité de débit allouée sur vos répliques de tables globales. Le service Application Auto Scaling crée un rôle lié au service (SLR) nommé AWSServiceRoleForApplicationAutoScaling_DynamoDBTable pour gérer la capacité des tables provisionnées et créer des alarmes. CloudWatch Lorsque vous appliquez des politiques basées sur les ressources à des répliques, assurez-vous de ne refuser aucune des autorisations définies dans la AWSServiceRoleForApplicationAutoScaling_DynamoDBTable politique au principal du SLR Application Auto Scaling Service, car cela interromprait la fonctionnalité de dimensionnement automatique.

Pour plus d’informations sur l’utilisation des rôles liés à un service, consultez Utilisation des rôles liés à un service dans le Guide de l’utilisateur IAM.

Autorisations requises pour les tables globales

Pour créer une réplique, vous devez disposer de l'autorisation suivante sur la table ou la réplique à laquelle vous ajoutez de nouvelles répliques :

  • dynamodb:UpdateTable

Pour créer une réplique, vous devez disposer des autorisations suivantes dans chaque région où une nouvelle réplique sera créée :

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

Pour créer un témoin, vous devez disposer de l'autorisation suivante dans la région où un nouveau témoin sera créé :

  • dynamodb:CreateGlobalTableWitness

Pour supprimer un réplica, vous devez disposer des autorisations suivantes sur le réplica :

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Pour supprimer un témoin, vous devez disposer des autorisations suivantes sur celui-ci :

  • dynamodb:DeleteGlobalTableWitness

Pour mettre à jour une politique de dimensionnement automatique des répliques avec l'UpdateTableReplicaAutoScalingAPI, vous devez disposer des autorisations suivantes dans toutes les régions contenant des répliques :

  • 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

Pour mettre à jour les paramètres Time to Live avec l'UpdateTimeToLiveAPI, vous devez disposer des autorisations suivantes sur toutes les répliques :

  • dynamodb:UpdateTimeToLive

Exemple de politiques IAM

Exemple : gestion d'une table globale

La politique IAM suivante autorise la création et la suppression de répliques de tables globales et de témoins pour la table « utilisateurs » dans trois régions :

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

Exemple : exclure les autorisations SLR requises des politiques de refus des caractères génériques

Une politique IAM présentant la condition suivante n'a aucune incidence sur les autorisations requises pour le SLR de réplication DynamoDB et AWS le SLR Auto Scaling. Cette condition peut être ajoutée à des politiques par ailleurs largement restrictives afin d'éviter d'interrompre involontairement la réplication ou le dimensionnement automatique :

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

Utilisation des tables globales AWS KMS

Comme toutes les tables DynamoDB, les répliques de tables globales chiffrent toujours les données au repos à l'aide de clés de chiffrement stockées AWS dans Key Management Service ().AWS KMS

Toutes les répliques d'une table globale doivent être configurées avec le même type de clé KMS (cléAWS détenue, clé AWS gérée ou clé gérée par le client).

Important

DynamoDB a besoin d'accéder à la clé de chiffrement du réplica pour supprimer un réplica. Si vous souhaitez désactiver ou supprimer une clé gérée par le client utilisée pour chiffrer une réplique parce que vous supprimez la réplique, vous devez d'abord supprimer la réplique, attendre que le statut de la table de l'une des répliques restantes soit changéACTIVE, puis désactiver ou supprimer la clé.

Dans le cas d'une table globale configurée pour une cohérence finale multirégionale (MREC), si vous désactivez ou révoquez l'accès de DynamoDB à une clé gérée par le client utilisée pour chiffrer une réplique, la réplication vers et depuis la réplique s'arrêtera et le statut de la réplique passera à. INACCESSIBLE_ENCRYPTION_CREDENTIALS Si une réplique d'une table globale MREC reste en l'INACCESSIBLE_ENCRYPTION_CREDENTIALSétat pendant plus de 20 heures, elle est convertie de manière irréversible en une table DynamoDB à région unique.

Pour une table globale configurée pour une cohérence multirégionale (MRSC), si vous désactivez ou révoquez l'accès de DynamoDB à une clé gérée par le client utilisée pour chiffrer une réplique, la réplication vers et depuis la réplique s'arrêtera, les tentatives d'écriture ou de lecture hautement cohérente de la réplique renverront une erreur et le statut de la réplique passera à. INACCESSIBLE_ENCRYPTION_CREDENTIALS Si une réplique d'une table globale MRSC reste dans l'INACCESSIBLE_ENCRYPTION_CREDENTIALSétat pendant plus de sept jours, en fonction des autorisations spécifiques révoquées, la réplique sera archivée ou deviendra définitivement inaccessible.