

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.

# Tableaux globaux multicomptes DynamoDB
<a name="globaltables-MultiAccount"></a>

Les tables globales multicomptes répliquent automatiquement les données de vos tables DynamoDB sur plusieurs AWS régions et plusieurs AWS comptes afin d'améliorer la résilience, d'isoler les charges de travail au niveau du compte et d'appliquer des contrôles de sécurité et de gouvernance distincts. Chaque table de réplication réside dans un AWS compte distinct, ce qui permet d'isoler les défaillances au niveau de la région et du compte. Vous pouvez également aligner les répliques sur votre structure AWS organisationnelle. Les tables globales multi-comptes offrent des avantages supplémentaires en termes d'isolation, de gouvernance et de sécurité par rapport aux tables globales pour comptes identiques.

Les tables globales multi-comptes offrent les avantages suivants :
+ Répliquez automatiquement les données des tables DynamoDB sur les comptes et les régions de votre choix AWS 
+ Améliorez la sécurité et la gouvernance en répliquant les données entre les comptes avec des politiques, des garde-fous et des limites de conformité distincts
+ Améliorez la résilience opérationnelle et l'isolation des défaillances au niveau des comptes en plaçant les répliques dans des comptes distincts AWS 
+ Alignez les charges de travail par unité commerciale ou par propriétaire lors de l'utilisation d'une stratégie multi-comptes
+ Simplifiez l'attribution des coûts en facturant chaque réplique à son AWS compte respectif

Pour plus d'informations, consultez la section [Avantages liés à l'utilisation de plusieurs AWS comptes](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/benefits-of-using-multiple-aws-accounts.html). Si vos charges de travail ne nécessitent pas de réplication multicompte ou si vous souhaitez simplifier la gestion des répliques avec des remplacements locaux, vous pouvez continuer à utiliser des tables globales pour les mêmes comptes.

Vous pouvez configurer des tables globales multi-comptes avec[Cohérence à terme multirégionale (MREC)](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes.mrec). Les tables globales configurées pour [Forte cohérence multirégionale (MRSC)](V2globaltables_HowItWorks.md#V2globaltables_HowItWorks.consistency-modes.mrsc) ne prennent pas en charge le modèle multi-comptes.

**Topics**
+ [Fonctionnement des tables globales DynamoDB](V2globaltables_MA_HowItWorks.md)
+ [Tutoriels : Création de tables globales multi-comptes](V2globaltables_MA.tutorial.md)
+ [Sécurité des tables globales DynamoDB](globaltables_MA_security.md)

# Fonctionnement des tables globales DynamoDB
<a name="V2globaltables_MA_HowItWorks"></a>

Les tables globales multicomptes étendent les fonctionnalités multirégionales et multiactives des tables globales DynamoDB entièrement gérées, sans serveur, à plusieurs régions et à plusieurs comptes. AWS Les tables globales multi-comptes répliquent les données entre AWS les régions et les comptes, fournissant les mêmes fonctionnalités active-active que les tables globales pour les mêmes comptes. Lorsque vous écrivez sur une réplique, DynamoDB réplique les données sur toutes les autres répliques.

Les principales différences par rapport aux tables globales pour comptes identiques sont les suivantes :
+ La réplication multicompte est prise en charge pour les tables globales de cohérence éventuelle multirégionale (MREC).
+ Vous ne pouvez ajouter des répliques qu'en commençant par une table à région unique. La conversion d'une table globale existante pour un même compte en une configuration multi-comptes n'est pas prise en charge. Pour effectuer la migration, vous devez supprimer les répliques existantes pour revenir à une table à région unique avant de créer une nouvelle table globale multi-comptes.
+ Chaque réplique doit résider dans un AWS compte distinct. Pour une table globale multi-comptes comportant *N* répliques, vous devez disposer de *N* comptes.
+ Les tables globales multicomptes utilisent par défaut des paramètres de table unifiés pour toutes les répliques. Toutes les répliques partagent automatiquement la même configuration (comme le mode débit et le TTL) et, contrairement aux tables globales de même compte, ces paramètres ne peuvent pas être remplacés par réplique.
+ Les clients doivent fournir des autorisations de réplication au principal du service de tables globales DynamoDB dans leurs politiques de ressources.

Les tables globales à comptes multiples utilisent la même technologie de réplication sous-jacente que les tables globales à compte identique. Les paramètres de table sont répliqués automatiquement sur toutes les répliques régionales, et les clients ne peuvent pas modifier ou personnaliser les paramètres par réplique. Cela garantit une configuration cohérente et un comportement prévisible sur plusieurs AWS comptes participant à la même table globale.

Les paramètres des tables globales DynamoDB définissent le comportement d'une table et la manière dont les données sont répliquées entre les régions. Ces paramètres sont configurés via le APIs plan de contrôle DynamoDB lors de la création de la table ou lors de l'ajout d'une nouvelle réplique régionale.

Lors de la création d'un tableau global multi-comptes, les clients doivent le définir `GlobalTableSettingsReplicationMode = ENABLED` pour chaque réplique régionale. Cela garantit que les modifications de configuration apportées dans une région se propagent automatiquement à toutes les autres régions qui participent au tableau global.

Vous pouvez activer la réplication des paramètres après la création de la table. Cela prend en charge le scénario dans lequel une table est initialement créée en tant que table régionale puis mise à niveau vers une table globale multi-comptes.

**Réglages synchronisés**

Les paramètres de table suivants sont toujours synchronisés entre toutes les répliques d'une table globale multi-comptes :

**Note**  
Contrairement aux tables globales à comptes identiques, les tables globales à comptes multiples n'autorisent pas le remplacement de ces paramètres par région. La seule exception est que les remplacements pour les politiques d'auto-scaling en lecture (tables GSIs et) sont autorisés car il s'agit de ressources externes distinctes.
+ Mode capacité (capacité provisionnée ou à la demande)
+ Capacité de lecture et d'écriture allouée aux tables
+ Mise à l'échelle automatique en lecture et en écriture de tableaux
+ Définition de l'index secondaire local (LSI)
+ Définition de l’index secondaire global (GSI)
+ Capacité de lecture et d'écriture allouée par GSI
+ Mise à l'échelle automatique de lecture et d'écriture GSI
+ Définition des flux en mode MREC
+ Durée de vie (TTL)
+ Débit chaud
+ Débit de lecture et d'écriture maximal à la demande

**Réglages non synchronisés**

Les paramètres suivants ne sont pas synchronisés entre les répliques et doivent être configurés indépendamment pour chaque table de répliques dans chaque région.
+ Classe de table
+ Type de chiffrement côté serveur (SSE)
+ Point-in-time Récupération
+ ID de clé KMS de chiffrement côté serveur (SSE)
+ Protection contre la suppression
+ Kinesis Data Streams (KDSD)
+ Étiquettes
+ Stratégie de ressources
+ Tableau Cloudwatch-Contributor Insights (CCI)
+ Informations sur les contributeurs de GSI Cloudwatch (CCI)

## Contrôle
<a name="V2globaltables_MA_HowItWorks.monitoring"></a>

Les tables globales configurées pour la cohérence finale multirégionale (MREC) publient la [`ReplicationLatency`](metrics-dimensions.md#ReplicationLatency)métrique dans. CloudWatch Cette métrique suit le temps écoulé entre le moment où un élément est écrit dans une table de réplicas et celui où il apparaît dans un autre réplica dans la table globale. `ReplicationLatency` est exprimé en millisecondes et est émis pour chaque paire région source/région de destination dans une table globale.

Les `ReplicationLatency` valeurs typiques dépendent de la distance entre les AWS régions que vous avez choisies, ainsi que d'autres variables telles que le type de charge de travail et le débit. Par exemple, un réplica source située dans la région USA Ouest (Californie du Nord) (us-west-1) a une `ReplicationLatency` inférieure dans la région USA Ouest (Oregon) (us-west-2) par rapport à la région Afrique (Le Cap) (af-south-1).

Une valeur croissante pour `ReplicationLatency` peut indiquer que les mises à jour d’un réplica ne sont pas propagées vers d’autres tables de réplica dans un délai raisonnable. Dans ce cas, vous pouvez rediriger temporairement les activités de lecture et d'écriture de votre application vers une autre AWS région.

**Gestion des problèmes de latence de réplication dans les tables globales multi-comptes**

Si `ReplicationLatency` le délai dépasse 3 heures en raison de problèmes provoqués par le client sur une table de réplication, DynamoDB envoie une notification demandant au client de résoudre le problème sous-jacent. Les problèmes courants provoqués par le client susceptibles d'empêcher la réplication sont notamment les suivants :
+ Suppression des autorisations requises de la politique de ressources de la table de réplication
+ Se désinscrire d'une AWS région hébergeant une réplique de la table globale multi-comptes
+ Refuser les autorisations relatives AWS à la clé KMS de la table requises pour déchiffrer les données

DynamoDB envoie une notification initiale dans les 3 heures suivant une latence de réplication élevée, suivie d'une seconde notification après 20 heures si le problème n'est toujours pas résolu. Si le problème n'est pas résolu dans le délai imparti, DynamoDB dissociera automatiquement le réplica de la table globale. La réplique affectée sera ensuite convertie en table régionale.

# Tutoriels : Création de tables globales multi-comptes
<a name="V2globaltables_MA.tutorial"></a>

Cette section fournit des step-by-step instructions pour créer des tables globales DynamoDB qui s'étendent sur plusieurs comptes. AWS 

## Création d'une table globale multi-comptes à l'aide de la console DynamoDB
<a name="create-ma-gt-console"></a>

Procédez comme suit pour créer une table globale multi-comptes à l'aide du AWS Management Console. L'exemple suivant crée une table globale avec des répliques de tables aux États-Unis d'Amérique.

1. Connectez-vous à la console DynamoDB AWS Management Console et ouvrez-la à l'adresse correspondant [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)au premier compte (par exemple). *111122223333*

1. Pour cet exemple, choisissez **USA Est (Ohio)** dans le sélecteur de région dans la barre de navigation.

1. Dans le volet de navigation sur le côté gauche de la console, choisissez **Tables**.

1. Choisissez **Créer une table**.

1. Sur la page **Créer un tableau** :

   1. Sous **Nom du tableau**, saisissez **MusicTable**.

   1. Pour **Clé de partition**, saisissez **Artist**.

   1. Pour **Clé de tri**, entrez **SongTitle**.

   1. Conservez les autres paramètres par défaut et choisissez **Créer une table**.

1. Ajoutez la politique de ressources suivante au tableau

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
           "Effect": "Allow",
           "Action": [
               "dynamodb:ReadDataForReplication",
               "dynamodb:WriteDataForReplication",
               "dynamodb:ReplicateSettings"
           ],
           "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
           "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
           "Condition": {
               "StringEquals": {
                   "aws:SourceAccount": ["444455556666","111122223333"],
                   "aws:SourceArn": [
                       "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                       "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                   ]
               }
           }
       },
       {
           "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
           "Effect": "Allow",
           "Action": [
               "dynamodb:AssociateTableReplica"
           ],
           "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
           "Principal": {"AWS": ["444455556666"]}
       }
   ]
   }
   ```

------

1. La nouvelle table sert de première table de réplica dans une nouvelle table globale. Il s’agit du prototype pour d’autres tables de réplica que vous ajouterez ultérieurement.

1. Attendez que la table soit **active**. Pour la table nouvellement créée, dans l'onglet **Tableaux globaux**, accédez à **Réglages > Réplication**, puis cliquez sur **Activer**.

1. Déconnectez-vous de ce compte (*111122223333*ici).

1. Connectez-vous au AWS Management Console et ouvrez-le sur la console [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)DynamoDB pour le deuxième compte (par exemple). *444455556666*

1. Pour cet exemple, choisissez **USA East (Virginie du Nord)** dans le sélecteur de région de la barre de navigation.

1. La console vérifie qu’il n’existe pas de table du même nom dans la région sélectionnée. (Si une table du même nom existe, vous devez la supprimer avant de pouvoir créer une nouvelle table de réplicas dans cette région.)

1. Dans le menu déroulant situé près de **Créer une table**, choisissez **Créer depuis un autre compte**

1. Dans le **tableau Créer depuis un autre compte** :

   1. Ajoutez **arn:aws:dynamodb:us-east-2:*111122223333*:table/MusicTable** en tant qu'arn de table pour la table source.

   1. Dans la **table de réplication ARNs**, ajoutez à nouveau l'ARN de la table source**arn:aws:dynamodb:us-east-2:*111122223333*:table/MusicTable**. Si plusieurs répliques existent déjà dans le cadre d'une table globale multi-comptes, vous devez ajouter chaque réplique existante à l' ReplicaTableARN.

   1. Conservez les autres paramètres par défaut et choisissez **Soumettre**.

1. L'onglet **Tables globales** de la table Music (et de toute autre table répliquée) indique que la table a été répliquée dans plusieurs régions.

1. Pour tester la réplication :

   1. Vous pouvez utiliser n'importe quelle région dans laquelle une réplique existe pour cette table

   1. Choisissez **Explorer les éléments de la table**.

   1. Choisissez **Créer un élément**.

   1. Entrez **item\$11** pour **Artiste** et **Song Value 1** pour **SongTitle**.

   1. Choisissez **Créer un élément**.

   1. Vérifiez la réplication en passant aux autres régions :

   1. Vérifiez que le tableau Musique contient l’élément que vous avez créé.

## Créez un tableau global multi-comptes à l'aide du AWS CLI
<a name="ma-gt-cli"></a>

Les exemples suivants montrent comment créer une table globale multi-comptes à l'aide du AWS CLI. Ces exemples illustrent le flux de travail complet pour configurer la réplication entre comptes.

------
#### [ CLI ]

Utilisez les AWS CLI commandes suivantes pour créer une table globale multi-comptes avec réplication entre comptes.

```
# STEP 1: Setting resource policy for the table in account 111122223333

cat > /tmp/source-resource-policy.json << 'EOF'
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": ["444455556666","111122223333"],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                        "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                    ]
                }
            }
        },
        {
            "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:AssociateTableReplica"
            ],
            "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
            "Principal": {"AWS": ["444455556666"]}
        }
    ]
}
EOF

# Step 2: Create a new table (MusicTable) in US East (Ohio), 
#   with DynamoDB Streams enabled (NEW_AND_OLD_IMAGES),
#   and Settings Replication ENABLED on the account 111122223333

aws dynamodb create-table \
    --table-name MusicTable \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode PAY_PER_REQUEST \
    --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
    --global-table-settings-replication-mode ENABLED \
    --resource-policy file:///tmp/source-resource-policy.json \
    --region us-east-2 


# Step 3: Creating replica table in account 444455556666

# Resource policy for account 444455556666
cat > /tmp/dest-resource-policy.json << 'EOF'
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": ["444455556666","111122223333"],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                        "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                    ]
                }
            }
        }
    ]
}
EOF

# Execute the replica table creation
aws dynamodb create-table \
    --table-name MusicTable \
    --global-table-source-arn "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" \
    --resource-policy file:///tmp/dest-resource-policy.json \
    --global-table-settings-replication-mode ENABLED \
    --region us-east-1

# Step 4: View the list of replicas created using describe-table
aws dynamodb describe-table \
    --table-name MusicTable \
    --region us-east-2 \
    --query 'Table.{TableName:TableName,TableStatus:TableStatus,MultiRegionConsistency:MultiRegionConsistency,Replicas:Replicas[*].{Region:RegionName,Status:ReplicaStatus}}'

# Step 5: To verify that replication is working, add a new item to the Music table in US East (Ohio)
aws dynamodb put-item \
    --table-name MusicTable \
    --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-2

# Step 6: Wait for a few seconds, and then check to see whether the item has been 
# successfully replicated to US East (N. Virginia) and Europe (Ireland)
aws dynamodb get-item \
    --table-name MusicTable \
    --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-1

aws dynamodb get-item \
    --table-name MusicTable \
    --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-2

# Step 7: Delete the replica table in US East (N. Virginia) Region
aws dynamodb delete-table \
    --table-name MusicTable \
    --region us-east-1

# Clean up: Delete the primary table
aws dynamodb delete-table \
    --table-name MusicTable \
    --region us-east-2
```

------

# Sécurité des tables globales DynamoDB
<a name="globaltables_MA_security"></a>

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, Gestion des identités et des accès AWS y compris les politiques d'identité (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 du chiffrement (). AWS Key Management Service 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 l'auto-scaling, ainsi que les autorisations IAM nécessaires pour créer, mettre à jour et supprimer des tables globales, pour des tables de cohérence finale multirégionales (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 une réplication de tables entre comptes et entre régions. La compréhension de ce modèle de sécurité est essentielle pour les clients qui ont besoin de mettre en œuvre des solutions sécurisées de réplication de données entre comptes.

## Autorisation principale du service pour la réplication
<a name="globaltables_MA_service_principal"></a>

Les tables globales multicomptes de DynamoDB utilisent une approche d'autorisation distincte, car la réplication s'effectue au-delà des limites des comptes. Cela se fait à l'aide du 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 accordant 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:SourceAccount``aws:SourceArn`, etc. — voir les [clés de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 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 en particulier.

Les autorisations principales de service suivantes sont essentielles pour la réplication entre comptes :
+ `dynamodb:ReadDataForReplication`permet de lire des données à des fins de réplication. Cette autorisation permet de lire les modifications apportées à une réplique et de les propager à d'autres répliques.
+ `dynamodb:WriteDataForReplication`permet d'écrire des 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:ReplicateSettings`permet de synchroniser les paramètres des tables entre les répliques, fournissant ainsi une configuration cohérente entre toutes les tables participantes.

Chaque réplique doit accorder les autorisations ci-dessus à toutes les autres répliques et à elle-même, c'est-à-dire que les conditions du contexte source doivent inclure l'ensemble complet des répliques composant la table globale. Ces autorisations sont vérifiées pour chaque nouvelle réplique lorsqu'elle est ajoutée à 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.

## Rôles liés à un service pour les tables globales multi-comptes
<a name="globaltables_MA_service_linked_roles"></a>

Les tables globales multicomptes DynamoDB répliquent les paramètres de toutes les répliques afin que chaque réplique soit configurée de manière identique avec un débit constant et offre une expérience de basculement fluide. La réplication des paramètres est contrôlée par l'`ReplicateSettings`autorisation accordée au principal du service, mais nous nous appuyons également sur les rôles liés au service (SLRs) pour gérer certaines fonctionnalités de réplication entre comptes et entre régions et d'auto-scaling. Ces rôles ne sont définis qu'une seule fois par AWS compte. Une fois créés, les mêmes rôles sont utilisés pour 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) IAM.

### Rôle lié au service de gestion des paramètres
<a name="globaltables_MA_settings_management_slr"></a>

Amazon DynamoDB crée automatiquement le rôle lié AWSService RoleForDynamo DBGlobal TableSettingsManagement au service (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 des paramètres entre comptes et entre régions.

Lorsque vous appliquez des politiques basées sur les ressources aux répliques, assurez-vous de ne refuser aucune des autorisations définies dans le `AWSServiceRoleForDynamoDBGlobalTableSettingsManagement` SLR principal, car cela pourrait interférer avec la gestion des paramètres et entraver la réplication si le débit ne correspond pas entre les répliques ou. GSIs Si vous refusez les autorisations SLR requises, la réplication vers et depuis les répliques concernées peut s'arrêter et le statut de la table de répliques passera à. `REPLICATION_NOT_AUTHORIZED` Pour les tables globales multicomptes, si une réplique reste dans l'`REPLICATION_NOT_AUTHORIZED`état pendant plus de 20 heures, elle est convertie de manière irréversible en table DynamoDB à région unique. Le SLR 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
<a name="globaltables_MA_autoscaling_slr"></a>

Lors de la configuration d'une table globale pour le mode capacité allouée, le dimensionnement automatique doit être configuré 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\$1DynamoDBTable](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) 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 la [AWSApplicationAutoscalingDynamoDBTablepolitique](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSApplicationAutoscalingDynamoDBTablePolicy.html) au principal Application Auto Scaling SLR, car cela interromprait la fonctionnalité d'auto-scaling.

## Comment les tables globales utilisent AWS IAM
<a name="globaltables_MA_iam"></a>

Les sections suivantes décrivent les autorisations requises pour les 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 la ressource de table spécifique dans la ou les régions concernées. L'ARN de la ressource de table suit le format `arn: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 du nom de la table.

Les step-by-step sujets que nous abordons dans les sections ci-dessous sont les suivants :
+ Création de tables globales multi-comptes et ajout de répliques
+ Mettre à jour un tableau global multi-comptes
+ Supprimer des tables globales et supprimer des répliques

### Création de tables globales et ajout de répliques
<a name="globaltables_MA_creating"></a>

#### Autorisations pour créer des tables globales
<a name="globaltables_MA_creating_permissions"></a>

Lorsqu'une nouvelle réplique est ajoutée à une table régionale pour former une table globale multi-comptes ou à une table globale multi-comptes existante, le principal IAM qui exécute l'action doit être autorisé par tous les membres existants. Tous les membres existants doivent donner 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 du tableau.

#### Exemples de politiques IAM pour créer des tables globales
<a name="globaltables_MA_creating_examples"></a>

##### Exemples de politiques IAM pour une configuration à 2 répliques
<a name="globaltables_MA_2replica_example"></a>

La configuration des tables globales multi-comptes suit un flux d'autorisation spécifique qui assure une réplication sécurisée. Voyons comment cela fonctionne dans la pratique en passant en revue un scénario pratique dans lequel un client souhaite établir une table globale avec deux répliques. La première réplique (réplicAA) se trouve dans le compte A dans la région ap-east-1, tandis que la seconde réplique (réplicAB) se trouve dans 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éplication principale. L'administrateur du compte doit associer à 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 des 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 de la réplique et en référençant l'ARN de la table source à utiliser pour créer la réplique. 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 afin de 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 à Replicab, avec des références de compte inversées pour accorder les autorisations correspondantes au compte A, lors de l'appel de création de table pour créer une réplique B référençant la réplique A comme table source.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [ "111122223333", "444455556666" ],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                        "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB"
                    ]
                }
            }
        },
        {
            "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:AssociateTableReplica"
            ],
            "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
            "Principal": {"AWS": ["444455556666"]}
        }
    ]
}
```

------

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [ "111122223333", "444455556666" ],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                        "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB"
                    ]
                }
            }
        }
    ]
}
```

------

##### Exemple de politiques IAM pour une configuration à 3 répliques
<a name="globaltables_MA_3replica_example"></a>

Dans cette configuration, nous avons 3 répliques Replica A, Replicab et ReplicAC dans le compte A, le compte B et le compte C, respectivement. La réplique A est la première réplique, qui commence sous la forme d'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 pour permettre la réplication avec tous les membres et autoriser les principaux IAM du compte B et du compte C à ajouter des répliques.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [ "111122223333", "444455556666", "123456789012" ],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                        "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB",
                        "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC"
                    ]
                }
            }
        },
        {
            "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:AssociateTableReplica"
            ],
            "Resource": "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
            "Principal": { "AWS": [ "444455556666", "123456789012" ] }
        }
    ]
}
```

------
+ L'administrateur du compte B doit ajouter une réplique (réplique B) pointant vers la réplique A comme source. La réplique B applique la politique suivante autorisant la réplication entre tous les membres et autorisant le compte C à ajouter une réplique :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [ "111122223333", "444455556666", "123456789012" ],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                        "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB",
                        "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC"
                    ]
                }
            }
        },
        {
            "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:AssociateTableReplica"
            ],
            "Resource": "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB",
            "Principal": { "AWS": [ "123456789012" ] }
        }
    ]
}
```

------
+ Enfin, l'administrateur du compte C crée une réplique avec la politique suivante autorisant les autorisations de réplication entre tous les membres. La politique n'autorise pas l'ajout de répliques supplémentaires.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/ReplicaC",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": [ "111122223333", "444455556666" ],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                        "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB"
                    ]
                }
            }
        }
    ]
}
```

------

### Mettre à jour un tableau global multi-comptes
<a name="globaltables_MA_updating"></a>

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 dans la région dans laquelle vous effectuez l'appel d'API : `dynamodb:UpdateTable`

Vous pouvez également mettre à jour d'autres configurations de table 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 avec l'`UpdateTimeToLive`API, 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 une politique de dimensionnement automatique des répliques avec l'`UpdateTableReplicaAutoScaling`API, 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éplication pour que la table de mise à jour réussisse. Si aucune réplique ne fournit l'autorisation de répliquer les paramètres vers une réplique de la table globale multicompte, toutes les opérations de mise à jour sur toutes les répliques échoueront `AccessDeniedException` jusqu'à ce que les autorisations soient corrigées.

### Supprimer des tables globales et supprimer des répliques
<a name="globaltables_MA_deleting"></a>

Pour supprimer une table globale, vous devez supprimer toutes les répliques. Contrairement à la table globale de même compte, vous ne pouvez pas l'utiliser `UpdateTable` pour supprimer une réplique de table dans une région distante et chaque réplique doit être supprimée via l'`DeleteTable`API depuis le compte qui la contrôle.

#### Autorisations pour supprimer des tables globales et supprimer des répliques
<a name="globaltables_MA_deleting_permissions"></a>

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. Cela 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 dans laquelle vous supprimez une réplique :
+ `dynamodb:DeleteTable`
+ `dynamodb:DeleteTableReplica`

## Utilisation des tables globales AWS KMS
<a name="globaltables_MA_kms"></a>

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

**Note**  
Contrairement à une table globale à comptes identiques, les différentes répliques d'une table globale à comptes multiples 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). Les tables globales multicomptes ne prennent pas en charge les clés AWS gérées.

Les tables globales multicomptes utilisées CMKs nécessitent que la politique des clés de chaque réplique donne au principal du service de réplication DynamoDB `replication.dynamodb.amazonaws.com` () l'autorisation d'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 une réplique, la réplication vers et depuis la réplique s'arrête et le statut de la réplique 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 de politique
<a name="globaltables_MA_kms_example"></a>

La AWS KMS politique permet à DynamoDB d'accéder aux AWS KMS deux clés pour la réplication entre les répliques A et B. Les clés associées à AWS KMS la réplique DynamoDB dans chaque compte doivent être mises à jour conformément à la politique suivante :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": { "Service": "replication.dynamodb.amazonaws.com" },
        "Action": [
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:DescribeKey"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": [ "111122223333", "444455556666" ],
                "aws:SourceArn": [
                    "arn:aws:dynamodb:ap-east-1:111122223333:table/ReplicaA",
                    "arn:aws:dynamodb:eu-south-1:444455556666:table/ReplicaB"
                ]
            }
        }
      }
   ]
 }
```

------