Configurazione della replica delle tabelle S3 - Amazon Simple Storage Service

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à.

Configurazione della replica delle tabelle S3

È possibile impostare la replica per creare automaticamente repliche di tabelle da una tabella di origine fino a un massimo di cinque bucket di tabelle di destinazione. La replica può essere configurata a livello di bucket (vale per tutte le tabelle del bucket) o a livello di tabella (per tabelle specifiche). Questo argomento spiega come configurare la replica utilizzando la console Amazon S3 o AWS l'interfaccia AWS CLI a riga di comando ().

Per ulteriori informazioni sulla configurazione della replica, consulta i seguenti argomenti.

Prerequisiti per l'impostazione della replica

Prima di configurare la replica, assicurati di disporre di quanto segue:

Risorse obbligatorie

  • Source table bucket: il bucket di tabella contenente le tabelle che desideri replicare

  • Bucket di tabella di destinazione: uno o più bucket di tabella in cui desideri replicare le tabelle (fino a 5 bucket di tabella di destinazione)

  • Tabelle di origine: tabelle esistenti nel bucket di tabelle di origine da replicare

  • Ruolo/i IAM: un ruolo IAM che concede ad Amazon S3 le autorizzazioni per replicare le tabelle per tuo conto

Autorizzazioni richieste

L'identità IAM che utilizzi per configurare la replica deve avere le seguenti autorizzazioni:

Per la replica a livello di bucket:
  • s3tables:PutTableBucketReplicationnel bucket della tabella di origine

  • s3tables:GetTableBucketReplicationnel bucket della tabella di origine

  • iam:PassRoleper il ruolo IAM di replica

Per la replica a livello di tabella:
  • s3tables:PutTableReplicationnella tabella di origine

  • s3tables:GetTableReplicationnella tabella dei sorgenti

  • iam:PassRoleper il ruolo IAM di replica

Per la replica tra account:
  • Autorizzazioni previste dalla policy sui bucket dell'account di destinazione

Requisiti aggiuntivi per la replica tra account

Se i bucket di tabella di origine e di destinazione si trovano in AWS account diversi, sono inoltre necessari:

  • Una politica relativa ai bucket della tabella di destinazione che concede all'account di origine le autorizzazioni per replicare le tabelle

  • L'ID dell'account di destinazione e il bucket di tabella Amazon Resource Name (ARN)

Requisiti aggiuntivi per le tabelle crittografate

Se desideri crittografare le tabelle di replica con: AWS KMS

  • Una chiave KMS nella regione di destinazione

  • Autorizzazioni per utilizzare la chiave KMS nel tuo ruolo di replica IAM

  • Una politica chiave KMS che consente al ruolo di replica di crittografare i dati

Comprensione delle configurazioni di replica

Una configurazione di replica definisce il modo in cui Amazon S3 replica le tabelle dal bucket di tabella di origine. La replica può essere configurata a due livelli:

Replica a livello di bucket

Una configurazione di replica a livello di bucket si applica a tutte le tabelle nel bucket di tabella di origine. Quando configuri la replica a livello di bucket, Amazon S3 replica automaticamente tutte le tabelle esistenti e tutte le nuove tabelle create nel bucket.

Utilizza la replica a livello di bucket quando:

  • Vuoi replicare tutte le tabelle in un bucket

  • Desideri un comportamento di replica coerente su tutte le tabelle

  • Vuoi semplificare la gestione con un'unica configurazione

Replica a livello di tabella

Una configurazione di replica a livello di tabella si applica a una tabella specifica. Le configurazioni a livello di tabella sostituiscono le configurazioni a livello di bucket per quella tabella specifica.

Utilizza la replica a livello di tabella quando:

  • Vuoi replicare solo tabelle specifiche

  • Sono necessarie destinazioni di replica diverse per tabelle diverse

  • Vuoi sovrascrivere una configurazione a livello di bucket per determinate tabelle

Elementi di configurazione della replica

Ogni configurazione di replica contiene:

  • Ruolo IAM: il ruolo che Amazon S3 assume per eseguire le operazioni di replica

  • Regole: una o più regole di replica (limitate a 1 regola al momento del lancio). Ogni regola contiene:

    • Destinazioni: elenco delle destinazioni desiderate nella tabella delle destinazioni ARNs (fino a 5 destinazioni)

    • Stato: indica se la regola è abilitata o disabilitata

  • Token di versione: un token utilizzato per prevenire conflitti di scrittura durante l'aggiornamento delle configurazioni

Scelta tra replica a livello di bucket e a livello di tabella

Priorità di configurazione

Quando esistono configurazioni sia a livello di bucket che a livello di tabella:

  • La configurazione a livello di tabella ha la precedenza per quella tabella specifica.

  • Le altre tabelle seguono la configurazione a livello di bucket.

Configurazione della replica utilizzando la console Amazon S3

Questa procedura mostra come configurare la replica utilizzando la console Amazon S3.

Questa procedura mostra come creare una configurazione di replica di table bucket utilizzando la console Amazon S3. Una configurazione di replica del bucket di tabella si applica a tutte le tabelle nel bucket di tabella di origine.

  1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel pannello di navigazione, scegli Table buckets.

  3. Nell'elenco Table bucket, scegli il nome del table bucket per il quale desideri configurare la replica.

  4. Scegliere la scheda Management (Gestione),

  5. Nella sezione Configurazione della replica del bucket di tabella, scegli Crea configurazione di replica del bucket di tabella.

  6. Nella sezione Destinazione, configura le tue destinazioni di replica:

    1. Nel campo Table bucket ARN, inserisci l'ARN del bucket di tabella di destinazione. Il formato è: arn:aws:s3tables:region:account-id:bucket/table-bucket-name.

      In alternativa, scegli Browse S3 per selezionare un bucket da tavolo dal tuo account.

    2. (Facoltativo) Per aggiungere altre destinazioni, scegli Aggiungi destinazione. Puoi aggiungere fino a 4 altri table bucket per un totale di 5 destinazioni.

  7. Nella sezione del ruolo IAM, configura il ruolo di replica:

    1. Per il metodo di selezione dei ruoli IAM, scegli una delle seguenti opzioni:

      • Crea un nuovo ruolo IAM: Amazon S3 crea un nuovo ruolo con le autorizzazioni necessarie per la replica.

      • Scegli tra i ruoli IAM esistenti: seleziona un ruolo esistente con le autorizzazioni di replica richieste.

      • Inserisci l'ARN del ruolo IAM: inserisci manualmente l'ARN di un ruolo IAM esistente.

    2. Se hai scelto Scegli tra i ruoli IAM esistenti, seleziona un ruolo dall'elenco a discesa dei ruoli IAM.

    3. (Facoltativo) Scegli Visualizza per esaminare le autorizzazioni del ruolo selezionato nella console IAM.

  8. Scegli Crea configurazione di replica.

    Dopo aver creato la configurazione di replica, Amazon S3 avvia il processo di backfill iniziale. È possibile monitorare lo stato della replica nella sezione Stato di replica della tabella, che visualizza le informazioni su ciascuna destinazione, tra cui lo stato della replica, l'ARN della tabella di destinazione e gli ultimi metadati replicati.

Questa procedura mostra come creare una configurazione di replica a livello di tabella utilizzando la console Amazon S3. Una configurazione di replica delle tabelle si applica a una tabella specifica e sostituisce qualsiasi configurazione di replica a livello di bucket per quella tabella.

  1. Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel pannello di navigazione, scegli Table buckets.

  3. Nell'elenco Table bucket, scegli il nome del table bucket che contiene la tabella che desideri replicare.

  4. Scegliere la scheda Tabelle.

  5. Nell'elenco Tabelle, scegli il nome della tabella che desideri replicare.

  6. Scegliere la scheda Management (Gestione),

  7. Nella sezione Configurazione di replica delle tabelle, scegli Crea configurazione di replica della tabella.

  8. Nella sezione Destinazione, configura le destinazioni di replica:

    1. Nel campo Table bucket ARN, inserisci l'ARN del bucket di tabella di destinazione. Il formato è: arn:aws:s3tables:region:account-id:bucket/table-bucket-name.

      In alternativa, scegli Browse S3 per selezionare un bucket da tavolo dal tuo account.

    2. (Facoltativo) Per aggiungere altre destinazioni, scegli Aggiungi destinazione. Puoi aggiungere fino a 4 altri table bucket per un totale di 5 destinazioni.

  9. Nella sezione del ruolo IAM, configura il ruolo di replica:

    1. Per il metodo di selezione dei ruoli IAM, scegli una delle seguenti opzioni:

      • Crea un nuovo ruolo IAM: Amazon S3 crea un nuovo ruolo con le autorizzazioni necessarie per la replica.

      • Scegli tra i ruoli IAM esistenti: seleziona un ruolo esistente con le autorizzazioni di replica richieste.

      • Inserisci l'ARN del ruolo IAM: inserisci manualmente l'ARN di un ruolo IAM esistente.

    2. Se hai scelto Scegli tra i ruoli IAM esistenti, seleziona un ruolo dall'elenco dei ruoli IAM.

    3. (Facoltativo) Scegli Visualizza per esaminare le autorizzazioni del ruolo selezionato nella console IAM.

  10. Scegli Crea configurazione di replica.

Cosa succede dopo?

Dopo aver creato la configurazione di replica:

  • Amazon S3 avvia il processo di riempimento iniziale, creando tabelle di replica in ogni bucket di destinazione

  • Lo stato di replica cambia in Replica una volta iniziato il backfill

  • È possibile monitorare l'avanzamento della replica nella scheda Gestione

  • Il tempo di replica iniziale dipende dalla dimensione della tabella di origine

Impostazione della replica utilizzando AWS CLI

Questa procedura mostra come configurare la replica utilizzando. AWS CLI Sostituisci gli account IDs, le regioni e i nomi dei bucket con i tuoi valori effettivi. Aggiungi tutti i bucket di destinazione alle autorizzazioni.

Fase 1: creare un ruolo IAM per la replica

Innanzitutto, crea un ruolo IAM che Amazon S3 possa assumere per replicare le tue tabelle.

  1. Crea un documento sulla politica di fiducia che consenta a S3 Tables di assumere il ruolo. Salva questo cometrust-policy.json:

    { "Version": "2012-10-17" "Statement": [ { "Effect": "Allow", "Principal": { "Service": "replication.s3tables.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Crea il ruolo IAM:

    aws iam create-role \ --role-name S3TablesReplicationRole \ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication"
  3. Crea una politica di autorizzazioni che conceda le autorizzazioni di replica. Salva questo come: replication-permissions.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableMaintenanceConfiguration", "s3tables:GetTableData" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source/table/*" }, { "Effect": "Allow", "Action": [ "s3tables:ListTables" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-source" }, { "Effect": "Allow", "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination" }, { "Effect": "Allow", "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-destination/table/*" } ] }
  4. Allega la politica delle autorizzazioni al ruolo:

    aws iam put-role-policy \ --role-name S3TablesReplicationRole \ --policy-name S3TablesReplicationPermissions \ --policy-document file://replication-permissions.json
  5. (Facoltativo) Se utilizzi la crittografia KMS, aggiungi le autorizzazioni KMS alla tua politica:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" ] }

(Solo per più account) Passaggio 2: configura la policy del bucket di destinazione

Se stai eseguendo la replica su un altro AWS account, l'account di destinazione deve concedere le autorizzazioni all'account di origine.

  1. Nell'account di destinazione, crea una policy relativa al bucket della tabella di destinazione. Salva questo come: destination-bucket-policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/cross-account-test" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:111122223333:bucket/amzn-s3-demo-table-bucket-cross-account-destination" } ] }
  2. Applica la policy utilizzando l'API S3 Tables:

    aws s3tables put-table-bucket-policy \ --table-bucket-arn arn:aws:s3tables:us-west-2:444455556666:bucket/amzn-s3-demo-table-bucket-cross-account-destination \ --policy file://destination-bucket-policy.json \ --profile destination-account
  3. Modifica la chiave KMS di origine per consentire la replica e la manutenzione di S3 Tables:

    { "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "allow replication to decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" }, { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/SOURCE-KEY-ID" } ] }
  4. Allo stesso modo, aggiungi le autorizzazioni nella policy chiave KMS di destinazione

    { "Version": "2012-10-17", "Id": "key-policy-3", "Statement": [ { "Sid": "allow maintenance", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" }, { "Sid": "allow replication to encrypt/decrypt", "Effect": "Allow", "Principal": { "AWS": "replication_role_arn" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/DESTINATION-KEY-ID-1" } ]

Fase 3: Creare una configurazione di replica

È possibile utilizzare il AWS CLI per creare una configurazione di replica a livello di bucket di tabella o a livello di tabella. Per ulteriori informazioni, consultare le procedure seguenti.

Utilizza questo approccio per replicare tutte le tabelle in un bucket.

  1. Crea un file di configurazione di replica. Salva questo comebucket-replication-config.json:

    Esempio : Destinazione singola nello stesso account
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" } ] } ] }
    Esempio : destinazioni multiple in diverse regioni
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" }, { "destinationTableBucketARN": "arn:aws:s3tables:ap-south-1:111122223333:bucket/amzn-s3-demo-table-bucket-apac" } ] } ] }
    Esempio : replica tra account
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-east-1:444455556666:bucket/amzn-s3-demo-table-bucket-partner" } ] } ] }
  2. Applica la configurazione di replica a livello di bucket:

    aws s3tables put-table-bucket-replication \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --configuration file://bucket-replication-config.json

    Output previsto:

    { "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }

Utilizza questo approccio per replicare tabelle specifiche o per sostituire la replica a livello di bucket.

  1. Crea un file di configurazione di replica. Salva questo cometable-replication-config.json:

    Esempio : replica di una singola tabella
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-analytics-bucket" } ] } ] }
    Esempio : Tabella con più destinazioni
    { "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket-dr" }, { "destinationTableBucketARN": "arn:aws:s3tables:eu-west-1:111122223333:bucket/amzn-s3-demo-table-bucket-eu" } ] } ] }
  2. Applica la configurazione di replica a livello di tabella:

    aws s3tables put-table-replication \ --table-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket/table/amzn-s3-demo-table-bucket-sales-data \ --configuration file://table-replication-config.json

    Output previsto:

    { "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }