View a markdown version of this page

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 configurare la replica per creare automaticamente repliche di tabella da una tabella di origine a un massimo di cinque bucket di tabella di destinazione. La replica può essere configurata a livello di bucket (applicabile a 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 l'interfaccia a riga di AWS comando ().AWS CLI

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

  • Bucket della tabella di origine: il bucket della tabella contenente le tabelle che desideri replicare

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

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

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

Autorizzazioni richieste

L'identità IAM utilizzata 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 sorgente

  • 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 su più account:
  • Autorizzazioni previste dalla policy del bucket dell'account di destinazione

Requisiti aggiuntivi per la replica su più account

Se i bucket della tabella di origine e di destinazione si trovano in AWS account diversi, è necessario anche:

  • Una policy del bucket sul bucket della tabella di destinazione che conceda 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 tabelle di origine. La replica può essere configurata a due livelli:

Bucket-level replica

Una configurazione di replica a livello di bucket si applica a tutte le tabelle nel bucket della 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.

Usa 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

  • Desideri semplificare la gestione disponendo di un'unica configurazione

Table-level replica

Una configurazione di replica a livello di tabella si applica a una tabella specifica. Table-levelle configurazioni 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 all'avvio). Ogni regola contiene:

    • Destinazioni: elenco dei bucket ARN della tabella di destinazione (fino a 5 destinazioni)

    • Stato: se la regola è abilitata o disattivata

  • 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

Precedenza di configurazione

Quando esistono configurazioni a livello di bucket e a livello di tabella:

  • Table-level la configurazione 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 con bucket di tabelle utilizzando la console Amazon S3. Una configurazione di replica con bucket di tabelle si applica a tutte le tabelle del 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 dei bucket di tabella, scegli il nome del bucket di tabella per il quale desideri configurare la replica.

  4. Scegliere la scheda Management (Gestione),

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

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

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

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

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

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

    1. Per il metodo di selezione del ruolo 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. Puoi monitorare lo stato della replica nella sezione Tabella dello stato della replica, che mostra 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 di tabella 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 dei bucket di tabella, scegli il nome del bucket di tabella 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 della replica delle tabelle, scegli Crea configurazione di replica delle tabelle.

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

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

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

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

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

    1. Per il metodo di selezione del ruolo 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 backfill iniziale, creando tabelle di replica in ogni bucket di destinazione

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

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

  • Il tempo di replica iniziale dipende dalle dimensioni della tabella di origine

Impostazione della replica utilizzando AWS CLI

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

Passaggio 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. Salvalo come: trust-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 policy di autorizzazione che conceda le autorizzazioni di replica. Salvalo con nome: 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
    Nota

    La politica delle autorizzazioni utilizza due ambiti di risorse perché le azioni operano a livelli diversi. CreateTablee CreateNamespace sono operazioni a livello di bucket che creano risorse nel bucket, quindi utilizzano il bucket ARN senza. /table/* PutTableData, GetTableDataUpdateTableMetadataLocation, e PutTableMaintenanceConfiguration operano su tabelle esistenti, quindi utilizzano il bucket ARN con. /table/*

  5. (Facoltativo) Se utilizzi la crittografia KMS, aggiungi le autorizzazioni KMS alla tua policy:

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

(Cross-account solo) Fase 2: Configurazione della policy del bucket di destinazione

Se si esegue la replica su un AWS account diverso, l'account di destinazione deve concedere le autorizzazioni all'account di origine.

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3TablesReplicationRole" }, "Action": [ "s3tables:PutTableData", "s3tables:GetTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:PutTableMaintenanceConfiguration" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666:bucket/amzn-s3-demo-table-bucket-cross-account-destination/table/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/S3TablesReplicationRole" }, "Action": [ "s3tables:CreateTable", "s3tables:CreateNamespace" ], "Resource": "arn:aws:s3tables:us-east-2:444455556666: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 \ --resource-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 del 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 o di tabella. Per ulteriori informazioni, consultare le procedure seguenti.

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

  1. Crea un file di configurazione della replica. Salvalo con nome: bucket-replication-config.json

    Esempio: Un'unica destinazione 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: Diverse destinazioni in tutte le 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: Cross-account replica
    { "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 sovrascrivere la replica a livello di bucket.

  1. Crea un file di configurazione della replica. Salvalo con nome: table-replication-config.json

    Esempio: Replica su 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" }