Sicurezza delle tabelle globali DynamoDB - 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à.

Sicurezza delle tabelle globali DynamoDB

Le repliche delle tabelle globali sono tabelle DynamoDB, quindi si utilizzano gli stessi metodi per controllare l'accesso alle repliche utilizzati per le tabelle a regione singola, AWS incluse le politiche di identità Identity and Access Management (IAM) e le politiche basate sulle risorse.

AWS In che modo le tabelle globali utilizzano IAM

Ruolo collegato al servizio di replica

Quando crei una tabella globale per la prima volta, Amazon DynamoDB crea automaticamente AWS un ruolo collegato al servizio (SLR) Identity and Access Management (IAM). La SLR ha un nome AWSServiceRoleForDynamoDBReplicatione consente a DynamoDB di gestire la replica tra regioni per le tabelle globali per conto dell'utente.

Quando applichi politiche basate sulle risorse alle repliche, assicurati di non negare nessuna delle autorizzazioni definite nella AWSServiceRoleForDynamoDBReplication policy al principale SLR, poiché ciò interromperebbe la replica. Se negate le autorizzazioni SLR richieste, la replica da e verso le repliche interessate verrà interrotta e lo stato della tabella di replica cambierà in. REPLICATION_NOT_AUTHORIZED

  • Se una replica in una tabella globale configurata per Multi-region Eventual Consistency (MREC) rimane REPLICATION_NOT_AUTHORIZED nello stato per più di 20 ore, la replica viene convertita in modo irreversibile in una tabella DynamoDB a regione singola.

  • Le repliche di tabelle globali configurate per Multi-region Strong Consistency (MRSC) restituiscono e per operazioni di scrittura e lettura fortemente coerenti. AccessDeniedException Se una replica in una tabella globale MRSC rimane nello REPLICATION_NOT_AUTHORIZED stato per più di sette giorni, diventa definitivamente inaccessibile e le operazioni di scrittura e di lettura fortemente coerenti continueranno a fallire con un errore. Alcune operazioni di gestione, come l'eliminazione delle repliche, avranno esito positivo.

Ruolo collegato al servizio di scalabilità automatica

Quando si configura una tabella globale per la modalità di capacità assegnata, è necessario configurare anche la scalabilità automatica per la tabella globale. La scalabilità automatica di DynamoDB utilizza l'Application AWS Auto Scaling Service per regolare dinamicamente la capacità di throughput assegnata sulle repliche di tabelle globali. Il servizio Application Auto Scaling crea un ruolo collegato al servizio (SLR) denominato AWSServiceRoleForApplicationAutoScaling_DynamoDBTable per gestire la capacità delle tabelle assegnate e creare allarmi. CloudWatch Quando applicate politiche basate sulle risorse alle repliche, assicuratevi di non negare nessuna delle autorizzazioni definite nella policy al principale di AWSServiceRoleForApplicationAutoScaling_DynamoDBTable Application Auto Scaling Service SLR, poiché ciò interromperà la funzionalità di auto scaling.

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

Autorizzazioni richieste per le tabelle globali

Per creare una replica, è necessario disporre delle seguenti autorizzazioni sulla tabella o sulla replica a cui si stanno aggiungendo nuove repliche:

  • dynamodb:UpdateTable

Per creare una replica, è necessario disporre delle seguenti autorizzazioni in ogni regione in cui verrà creata una nuova replica:

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

Per creare un testimone, è necessario disporre delle seguenti autorizzazioni nella regione in cui verrà creato un nuovo testimone:

  • dynamodb:CreateGlobalTableWitness

Per eliminare una replica, è necessario disporre delle seguenti autorizzazioni sulla replica:

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Per eliminare un testimone, è necessario disporre delle seguenti autorizzazioni sul testimone:

  • dynamodb:DeleteGlobalTableWitness

Per aggiornare una politica di ridimensionamento automatico delle repliche con l'UpdateTableReplicaAutoScalingAPI, è necessario disporre delle seguenti autorizzazioni in tutte le regioni contenenti repliche:

  • 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

Per aggiornare le impostazioni Time to Live con l'UpdateTimeToLiveAPI, è necessario disporre delle seguenti autorizzazioni su tutte le repliche:

  • dynamodb:UpdateTimeToLive

Policy IAM di esempio

Esempio: gestire una tabella globale

La seguente policy IAM concede le autorizzazioni per creare ed eliminare repliche di tabelle globali e testimoni per la tabella «utenti» in tre regioni:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManagingUsersGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:CreateGlobalTableWitness", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:DeleteGlobalTableWitness", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/users", "arn:aws:dynamodb:us-east-2:123456789012:table/users", "arn:aws:dynamodb:us-west-2:123456789012:table/users" ] } ] }

Esempio: escludi le autorizzazioni SLR richieste dalle politiche di deny wildcard

Una policy IAM con la seguente condizione non influisce sulle autorizzazioni richieste per la SLR di replica DynamoDB e la Auto Scaling SLR. AWS Questa condizione può essere aggiunta a politiche altrimenti ampiamente restrittive per evitare l'interruzione involontaria della replica o della scalabilità automatica:

"Condition": { "StringNotEquals": { "aws:PrincipalArn": [ "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication", "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" ] } }

Come vengono utilizzate le tabelle globali AWS KMS

Come tutte le tabelle DynamoDB, le repliche delle tabelle globali crittografano sempre i dati inattivi utilizzando chiavi di crittografia archiviate AWS in Key Management Service ().AWS KMS

Tutte le repliche in una tabella globale devono essere configurate con lo stesso tipo di chiave KMS (chiave AWS proprietaria, chiave gestita o chiave AWS gestita dal cliente).

Importante

DynamoDB richiede l'accesso alla chiave di crittografia della replica per eliminare una replica. Se desideri disabilitare o eliminare una chiave gestita dal cliente utilizzata per crittografare una replica perché stai eliminando la replica, devi prima eliminare la replica, attendere che lo stato della tabella su una delle repliche rimanenti cambi, quindi disabilitare o eliminare la chiave. ACTIVE

Per una tabella globale configurata per Multi-region Eventual Consistency (MREC), se si disabilita o si revoca l'accesso di DynamoDB a una chiave gestita dal cliente utilizzata per crittografare una replica, la replica da e verso la replica verrà interrotta e lo stato della replica cambierà inINACCESSIBLE_ENCRYPTION_CREDENTIALS. Se una replica in una tabella globale MREC rimane nello INACCESSIBLE_ENCRYPTION_CREDENTIALS stato per più di 20 ore, viene convertita in modo irreversibile in una tabella DynamoDB a regione singola.

Per una tabella globale configurata per Multi-region strong consistency (MRSC), se si disabilita o si revoca l'accesso di DynamoDB a una chiave gestita dal cliente utilizzata per crittografare una replica, la replica da e verso la replica si interromperà, i tentativi di eseguire letture in scrittura o fortemente coerenti sulla replica restituiranno un errore e lo stato della replica cambierà inINACCESSIBLE_ENCRYPTION_CREDENTIALS. Se una replica in una tabella globale MRSC rimane nello INACCESSIBLE_ENCRYPTION_CREDENTIALS stato per più di sette giorni, a seconda delle autorizzazioni specifiche revocate, la replica verrà archiviata o diventerà definitivamente inaccessibile.