Uso di IAM con le tabelle globali - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Uso di IAM con le tabelle globali

Importante

Questa documentazione riguarda la versione 2017.11.29 (legacy) delle tabelle globali, che dovrebbe essere evitata per le nuove tabelle globali. I clienti devono utilizzare la versione 2019.11.21 (corrente) di Global Tables quando possibile, poiché offre maggiore flessibilità, maggiore efficienza e consuma meno capacità di scrittura rispetto alla 2017.11.29 (Legacy).

Per determinare la versione in uso, consultare Determinare la versione delle tabelle globali che si sta utilizzando. Per aggiornare le tabelle globali esistenti dalla versione 2017.11.29 (legacy) alla versione 2019.11.21 (corrente), consultare Aggiornamento delle tabelle globali.

Quando si crea una tabella globale per la prima volta, Amazon DynamoDB crea automaticamente un ruolo collegato al servizio AWS Identity and Access Management (IAM) per conto tuo. Questo ruolo è denominato AWSServiceRoleForDynamoDBReplication e permette a DynamoDB di gestire per conto tuo la replica tra regioni per le tabelle globali. Non eliminare questo ruolo collegato al servizio. Se si fa, tutte le tabelle globali non funzioneranno più.

Per ulteriori informazioni sui ruoli collegati al servizio, consulta Utilizzo dei ruoli collegati al servizio nella Guida per l'utente IAM.

Per creare e gestire tabelle globali in DynamoDB, è necessario disporre dell'autorizzazione dynamodb:CreateGlobalTable per accedere a ciascuno dei seguenti elementi:

  • La tabella di replica che si desidera aggiungere.

  • Ogni replica esistente che fa già parte della tabella globale.

  • La tabella globale stessa.

Per aggiornare le impostazioni (UpdateGlobalTableSettings) per una tabella globale in DynamoDB, è necessario disporre delle autorizzazioni dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget.

Le autorizzazioni application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget sono necessarie quando si aggiorna una policy di dimensionamento esistente. In questo modo il servizio delle tabelle globali può rimuovere la vecchia policy di dimensionamento prima di allegare la nuova policy alla tabella o all'indice secondario.

Se per gestire l'accesso a una tabella di replica si utilizza una policy IAM, è necessario applicare una policy identica a tutte le altre repliche all'interno di tale tabella globale. Questa procedura consente di mantenere un modello di autorizzazioni coerente in tutte le tabelle di replica.

L'uso di policy IAM identiche su tutte le repliche in una tabella globale consente inoltre di evitare di dover concedere l'accesso non intenzionale in lettura e scrittura ai dati delle tabelle globali. Si consideri, ad esempio, un utente che ha accesso a una sola replica in una tabella globale. Se tale utente può scrivere su questa replica, DynamoDB propaga la scrittura a tutte le altre tabelle di replica. In effetti, l'utente può (indirettamente) scrivere su tutte le altre repliche nella tabella globale. Questo scenario può essere evitato utilizzando policy IAM coerenti su tutte le tabelle di replica.

CreateGlobalTableEsempio: consentire l'azione

Prima di poter aggiungere una replica a una tabella globale, è necessario disporre dell'autorizzazione dynamodb:CreateGlobalTableper la tabella globale e per ciascuna delle relative tabelle di replica.

La seguente policy IAM concede le autorizzazioni per consentire l'operazione CreateGlobalTable su tutte le tabelle.

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

Esempio: consentire le azioni UpdateGlobalTable, DescribeLimits, application-autoscaling: e application-autoscaling: DeleteScalingPolicy DeregisterScalableTarget

Per aggiornare le impostazioni (UpdateGlobalTableSettings) per una tabella globale in DynamoDB, è necessario disporre delle autorizzazioni dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy e application-autoscaling:DeregisterScalableTarget.

La seguente policy IAM concede le autorizzazioni per consentire l'operazione UpdateGlobalTableSettings su tutte le tabelle.

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

Esempio: consente l' CreateGlobalTable azione per uno specifico nome di tabella globale con repliche consentite solo in determinate aree

La seguente policy IAM concede le autorizzazioni per consentire l'operazione CreateGlobalTable per creare una tabella globale denominata Customers con repliche in due regioni.

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