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 sont des tables DynamoDB. Vous utilisez donc les mêmes méthodes pour contrôler l'accès aux répliques que pour les tables à région unique, y compris les politiques d'identité Gestion des identités et des accès AWS (IAM) et les politiques basées sur les ressources. Cette rubrique explique comment sécuriser les tables globales multicomptes DynamoDB à l'aide des autorisations IAM et AWS Key Management Service du chiffrement ().AWS KMS Vous découvrirez les politiques basées sur les ressources et les rôles liés aux services (SLR) qui permettent la réplication entre comptes entre régions et la mise à l'échelle automatique, ainsi que les autorisations IAM nécessaires pour créer, mettre à jour et supprimer des tables globales, pour une éventuelle cohérence multirégionale (MREC). Vous découvrirez également les clés de AWS KMS chiffrement permettant de gérer la réplication entre régions en toute sécurité.
Il fournit des informations détaillées sur les politiques basées sur les ressources et les autorisations requises pour établir la réplication de tables entre comptes et entre régions. Comprendre ce modèle de sécurité est essentiel pour les clients qui ont besoin de mettre en œuvre des solutions sécurisées de réplication de données entre comptes.
Autorisation du principal de service pour la réplication
Les tables globales multicomptes de DynamoDB utilisent une approche d'autorisation distincte car la réplication s'effectue au-delà des limites des comptes. Pour ce faire, utilisez le principal du service de réplication de DynamoDB :. replication.dynamodb.amazonaws.com Chaque compte participant doit explicitement autoriser ce principal dans la politique de ressources de la table de répliques, en lui donnant des autorisations qui peuvent être limitées à des répliques spécifiques en fonction des conditions du contexte source sur des clés telles que aws:SourceAccountaws:SourceArn, etc. — voir les clés de condition AWS globales pour plus de détails. Les autorisations sont bidirectionnelles, ce qui signifie que toutes les répliques doivent s'accorder explicitement des autorisations les unes aux autres avant que la réplication puisse être établie sur une paire de répliques donnée.
Les autorisations principales de service suivantes sont essentielles pour la réplication entre comptes :
-
dynamodb:ReadDataForReplicationpermet de lire les données à des fins de réplication. Cette autorisation permet de lire les modifications apportées à un réplica et de les propager à d'autres répliques. -
dynamodb:WriteDataForReplicationpermet l'écriture de données répliquées dans les tables de destination. Cette autorisation permet de synchroniser les modifications entre toutes les répliques de la table globale. -
dynamodb:ReplicateSettingspermet la synchronisation des paramètres des tables entre les répliques, fournissant ainsi une configuration cohérente pour toutes les tables participantes.
Chaque réplica doit accorder les autorisations ci-dessus à toutes les autres répliques et à lui-même, c'est-à-dire que les conditions du contexte source doivent inclure l'ensemble complet des répliques qui composent la table globale. Ces autorisations sont vérifiées pour chaque nouveau réplica lorsqu'il est ajouté à une table globale multi-comptes. Cela permet de vérifier que les opérations de réplication sont effectuées uniquement par le service DynamoDB autorisé et uniquement entre les tables prévues.
Service-linked rôles pour les tables globales multicomptes
Les tables globales multicomptes DynamoDB répliquent les paramètres de toutes les répliques afin que chaque réplica soit configurée de manière identique avec un débit constant et offrent une expérience de basculement fluide. La réplication des paramètres est contrôlée par l'ReplicateSettingsautorisation du principal du service, mais nous nous appuyons également sur des rôles liés aux services (SLR) pour gérer certaines fonctionnalités de réplication interrégionale et de dimensionnement automatique entre comptes. Ces rôles ne sont configurés qu'une seule fois par AWS compte. Une fois créés, les mêmes rôles sont utilisés dans toutes les tables globales de votre compte. Pour plus d'informations sur les rôles liés à un service, consultez la section Utilisation des rôles liés à un service dans le Guide de l'utilisateur IAM.
Rôle lié au service de gestion des paramètres
Amazon DynamoDB crée automatiquement le rôle AWSServiceRoleForDynamoDBGlobalTableSettingsManagement lié aux services (SLR) lorsque vous créez votre première réplique de table globale multi-comptes dans le compte. Ce rôle gère pour vous la réplication interrégionale des paramètres entre comptes.
Lorsque vous appliquez des politiques basées sur les ressources aux répliques, vérifiez que vous ne refusez aucune des autorisations définies dans le principal du SLR, car cela pourrait interférer avec la gestion des paramètres et nuire AWSServiceRoleForDynamoDBGlobalTableSettingsManagement à la réplication si le débit ne correspond pas entre les répliques ou les GSI. Si vous refusez les autorisations requises pour le reflex, la réplication depuis et vers les répliques concernées peut s'arrêter et le statut de la table de répliques passe à. REPLICATION_NOT_AUTHORIZED Pour les tables globales multicomptes, si un réplica reste dans REPLICATION_NOT_AUTHORIZED cet état pendant plus de 20 heures, il est converti de manière irréversible en une table DynamoDB à région unique. Le reflex dispose des autorisations suivantes :
-
application-autoscaling:DeleteScalingPolicy -
application-autoscaling:DescribeScalableTargets -
application-autoscaling:DescribeScalingPolicies -
application-autoscaling:DeregisterScalableTarget -
application-autoscaling:PutScalingPolicy -
application-autoscaling:RegisterScalableTarget
Rôle lié à un service pour l’autoscaling
Lors de la configuration d'une table globale pour le mode de capacité provisionnée, la mise à l'échelle automatique doit être configurée pour la table globale. La mise à l'échelle automatique de DynamoDB utilise le service AWS Application Auto Scaling pour ajuster dynamiquement la capacité de débit provisionnée sur vos répliques de tables globales. Le service Application Auto Scaling crée un rôle lié à un service (SLR) nommé _DynamoDBTable. AWSServiceRoleForApplicationAutoScaling Ce rôle lié à un service est automatiquement créé dans votre AWS compte lorsque vous configurez pour la première fois le dimensionnement automatique pour une table DynamoDB. Il permet à Application Auto Scaling de gérer la capacité des tables provisionnées et de créer des CloudWatch alarmes.
Lorsque vous appliquez des politiques basées sur les ressources à des répliques, vérifiez que vous ne refusez aucune autorisation définie dans le principal de l'AWSApplicationAutoscalingDynamoDBTablePolicyapplication Auto Scaling SLR, car cela interromprait la fonctionnalité de dimensionnement automatique.
Utilisation des tables globales AWS IAM
Les sections suivantes décrivent les autorisations requises pour différentes opérations sur les tables globales et fournissent des exemples de politiques pour vous aider à configurer l'accès approprié pour vos utilisateurs et applications.
Note
Toutes les autorisations décrites doivent être appliquées à l'ARN de ressource de table spécifique dans la ou les régions concernées. L'ARN de la ressource de table suit le formatarn:aws:dynamodb:region:account-id:table/table-name, dans lequel vous devez spécifier les valeurs réelles de votre région, de votre identifiant de compte et de votre nom de table.
Les sujets suivants sont abordés étape par étape dans les sections ci-dessous :
-
Création de tables globales multicomptes et ajout de répliques
-
Mettre à jour une table globale multicomptes
-
Suppression de tables globales et suppression de répliques
Création de tables globales et ajout de répliques
Autorisations pour créer des tables globales
Lorsqu'un nouveau réplica est ajouté à une table régionale pour former une table globale multi-comptes ou à une table globale multi-comptes existante, le principal IAM effectuant l'action doit être autorisé par tous les membres existants. Tous les membres existants doivent accorder l'autorisation suivante dans leur politique de table pour que l'ajout de répliques réussisse :
-
dynamodb:AssociateTableReplica- Cette autorisation permet de joindre des tables dans une configuration de table globale. Il s'agit de l'autorisation fondamentale qui permet l'établissement initial de la relation de réplication.
Ce contrôle précis permet uniquement aux comptes autorisés de participer à la configuration globale de la table.
Exemples de politiques IAM pour la création de tables globales
La configuration des tables globales multicomptes suit un flux d'autorisation spécifique qui assure une réplication sécurisée. Examinons comment cela fonctionne dans la pratique en présentant un scénario pratique dans lequel un client souhaite établir une table globale avec deux répliques. Le premier réplica (RepliCaa) se trouve sur le compte A dans la région ap-east-1, tandis que le second réplica (RepliCab) se trouve sur le compte B dans la région eu-south-1.
-
Dans le compte source (compte A), le processus commence par la création de la table de répliques principale. L'administrateur du compte doit joindre à ce tableau une politique basée sur les ressources qui accorde explicitement les autorisations nécessaires au compte de destination (compte B) pour effectuer l'association. Cette politique autorise également le service de réplication DynamoDB à effectuer les actions de réplication essentielles.
-
Le compte de destination (compte B) suit un processus similaire en joignant une politique basée sur les ressources correspondante lors de la création du réplica et en référençant l'ARN de la table source à utiliser pour créer le réplica. Cette politique reflète les autorisations accordées par le compte A, créant ainsi une relation bidirectionnelle de confiance. Avant d'établir la réplication, DynamoDB valide ces autorisations entre comptes pour vérifier que les autorisations appropriées sont en place.
Pour établir cette configuration, procédez comme suit :
-
L'administrateur du compte A doit d'abord associer la politique basée sur les ressources à ReplicAA. Cette politique accorde explicitement les autorisations nécessaires au compte B et au service de réplication DynamoDB.
-
De même, l'administrateur du compte B doit associer une politique correspondante à RepliLab, les références de compte étant inversées pour accorder les autorisations correspondantes au compte A, dans l'appel de création de table pour créer un réplica B en faisant référence au réplica A comme table source.
Dans cette configuration, nous avons 3 répliques ReplicAA, ReplicAB et ReplicaC dans le compte A, le compte B et le compte C, respectivement. Le réplica A est le premier réplica, qui commence par une table régionale, puis Replicab et ReplicaC y sont ajoutés.
-
L'administrateur du compte A doit d'abord associer la politique basée sur les ressources à ReplicAA afin de permettre la réplication avec tous les membres et de permettre aux responsables IAM des comptes B et C d'ajouter des répliques.
-
L'administrateur du compte B doit ajouter un réplica (réplica B) pointant vers ReplicAA comme source. Le réplica B applique la politique suivante, qui autorise la réplication entre tous les membres et autorise le compte C à ajouter un réplica :
-
Enfin, l'administrateur du compte C crée une réplique avec la politique suivante qui autorise les autorisations de réplication entre tous les membres. La politique n'autorise pas l'ajout de répliques supplémentaires.
Mettre à jour une table globale multicomptes
Pour modifier les paramètres de réplication d'une table globale existante à l'aide de l' UpdateTable API, vous devez disposer de l'autorisation suivante sur la ressource de table de la région où vous effectuez l'appel d'API : dynamodb:UpdateTable
Vous pouvez également mettre à jour d'autres configurations de tables globales, telles que les politiques de dimensionnement automatique et les paramètres Time to Live. Les autorisations suivantes sont requises pour ces opérations de mise à jour supplémentaires :
Pour mettre à jour les paramètres Time to Live à l'aide de l'UpdateTimeToLiveAPI, vous devez disposer de l'autorisation suivante sur la ressource de table dans toutes les régions contenant des répliques : dynamodb:UpdateTimeToLive
Pour mettre à jour la politique de dimensionnement automatique d'une réplique avec l'UpdateTableReplicaAutoScalingAPI, vous devez disposer des autorisations suivantes sur la ressource de table 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
Note
Vous devez fournir des dynamodb:ReplicateSettings autorisations pour toutes les régions et tous les comptes de réplica pour que la table de mise à jour réussisse. Si un réplica ne fournit pas les autorisations nécessaires pour répliquer les paramètres sur un réplica de la table globale multi-comptes, toutes les opérations de mise à jour sur tous les répliques échoueront tant que les autorisations ne AccessDeniedException seront pas corrigées.
Suppression de tables globales et suppression de répliques
Pour supprimer une table globale, vous devez supprimer toutes les répliques. Contrairement à Global Table pour un même compte, vous ne pouvez pas UpdateTable supprimer une table de répliques dans une région distante et chaque réplique doit être supprimée via l'DeleteTableAPI du compte qui la contrôle.
Autorisations pour supprimer des tables globales et supprimer des répliques
Les autorisations suivantes sont requises à la fois pour supprimer des répliques individuelles et pour supprimer complètement des tables globales. La suppression d'une configuration de table globale supprime uniquement la relation de réplication entre les tables de différentes régions. Elle ne supprime pas la table DynamoDB sous-jacente dans la dernière région restante. La table de la dernière région continue d'exister en tant que table DynamoDB standard avec les mêmes données et paramètres.
Vous devez disposer des autorisations suivantes sur la ressource de table dans chaque région où vous supprimez une réplique :
-
dynamodb:DeleteTable -
dynamodb:DeleteTableReplica
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 dans AWS Key Management Service ().AWS KMS
Note
Contrairement à une table globale pour un même compte, différentes répliques d'une table globale multi-comptes peuvent être configurées avec un type de AWS KMS clé différent (cléAWS détenue ou clé gérée par le client). Multi-account les tables globales ne prennent pas en charge les clés AWS gérées.
Multi-account les tables globales qui utilisent des CMK nécessitent la politique de clés de chaque réplica pour autoriser le principal du service de réplication DynamoDB (replication.dynamodb.amazonaws.com) à accéder à la clé pour la réplication et la gestion des paramètres. Les autorisations suivantes sont requises :
-
kms:Decrypt -
kms:ReEncrypt* -
kms:GenerateDataKey* -
kms:DescribeKey
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 la table soit supprimée du groupe de réplication en appelant describe dans l'une des autres répliques, puis désactiver ou supprimer la clé.
Si vous désactivez ou révoquez l'accès de DynamoDB à une clé gérée par le client utilisée pour chiffrer un réplica, la réplication depuis et vers le réplica s'arrête et le statut du réplica passe à. INACCESSIBLE_ENCRYPTION_CREDENTIALS Si un réplica reste dans INACCESSIBLE_ENCRYPTION_CREDENTIALS cet état pendant plus de 20 heures, il est converti de manière irréversible en une table DynamoDB à région unique.
Exemple AWS KMS policy
La AWS KMS politique permet à DynamoDB d'accéder aux deux AWS KMS clés pour la réplication entre les répliques A et B. Les AWS KMS clés associées au réplica DynamoDB dans chaque compte doivent être mises à jour conformément à la politique suivante :