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