Utilisation d'IAM avec des tables globales - 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.

Utilisation d'IAM avec des tables globales

Important

Cette documentation concerne la version 2017.11.29 (ancienne) des tables globales, qui doit être évitée pour les nouvelles tables globales. Les clients doivent utiliser la version 2019.11.21 (actuelle) de Global Tables dans la mesure du possible, car elle offre une plus grande flexibilité, une efficacité accrue et consomme moins de capacité d'écriture que la version 2017.11.29 (ancienne version).

Pour déterminer quelle version vous utilisez, consultez Déterminer la version de la table globale DynamoDB que vous utilisez. Pour mettre à jour les tables globales de la version 2017.11.29 (ancienne) vers la version 2019.11.21 (actuelle), consultez Mise à niveau des tables globales.

Lorsque vous créez une table globale pour la première fois, Amazon DynamoDB crée automatiquement pour vous un rôle lié à un service AWS Identity and Access Management (IAM). Ce rôle nommé AWSServiceRoleForDynamoDBReplication permet à DynamoDB de gérer pour vous la réplication entre régions pour les tables globales. Ne supprimez pas ce rôle lié à un service. Dans ce cas, la totalité de vos tables globales cessent de fonctionner.

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.

Pour créer et gérer des tables globales dans DynamoDB, vous devez disposer de l'autorisation dynamodb:CreateGlobalTable pour accéder à chacun des éléments suivants :

  • La table de réplicas que vous souhaitez ajouter.

  • Chaque réplica existant faisant déjà partie de la table globale.

  • La table globale proprement dite.

Pour mettre à jour les paramètres (UpdateGlobalTableSettings) pour une table globale dans DynamoDB, vous devez disposer des autorisations dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy et application-autoscaling:DeregisterScalableTarget.

Les autorisations application-autoscaling:DeleteScalingPolicy et application-autoscaling:DeregisterScalableTarget sont requises lors de la mise à jour d'une politique de mise à l'échelle existante. Le service de tables globales peut ainsi supprimer l'ancienne politique de mise à l'échelle avant d'attacher la nouvelle politique à la table ou à l'index secondaire.

Si vous utilisez une politique IAM pour gérer l'accès à une table de réplique, vous devez appliquer une politique identique à tous les autres réplicas au sein de cette table globale. Cette pratique vous aide à maintenir un modèle d'autorisations cohérent pour toutes les tables de réplique.

En utilisant des politiques IAM identiques sur tous les réplicas d'une table globale, vous pouvez également éviter d'accorder un accès involontaire de lecture et d'écriture aux données de votre table globale. Par exemple, considérons un utilisateur qui n'a accès qu'à un seul réplica dans une table globale. Si cet utilisateur peut écrire dans ce réplica, DynamoDB propage l'écriture à toutes les autres tables de réplique. En effet, l'utilisateur peut écrire (indirectement) dans tous les autres réplicas au sein de la table globale. Vous pouvez éviter ce scénario en utilisant des politiques IAM cohérentes sur toutes les tables de réplique.

Exemple : autoriser l' CreateGlobalTableaction

Afin de pouvoir ajouter un réplica à une table globale, vous devez disposer de l'autorisation dynamodb:CreateGlobalTable pour la table globale et pour chacune de ses tables de réplique.

La politique IAM suivante autorise l'action CreateGlobalTable sur toutes les tables.

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

Exemple : Autoriser les actions UpdateGlobalTable, DescribeLimits, application-autoscaling : et application-autoscaling : DeleteScalingPolicy DeregisterScalableTarget

Pour mettre à jour les paramètres (UpdateGlobalTableSettings) pour une table globale dans DynamoDB, vous devez disposer des autorisations dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy et application-autoscaling:DeregisterScalableTarget.

La politique IAM suivante autorise l'action UpdateGlobalTableSettings sur toutes les tables.

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

Exemple : autoriser l' CreateGlobalTable action pour un nom de table global spécifique avec des répliques autorisées dans certaines régions uniquement

La politique IAM suivante accorde des autorisations pour autoriser l'action CreateGlobalTable permettant de créer une table globale nommée Customers avec des réplicas dans deux régions.

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