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.
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.
-
Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
-
Nel pannello di navigazione, scegli Table buckets.
-
Nell'elenco dei bucket di tabella, scegli il nome del bucket di tabella per il quale desideri configurare la replica.
-
Scegliere la scheda Management (Gestione),
-
Nella sezione Configurazione della replica del bucket della tabella, scegli Crea la configurazione della replica del bucket della tabella.
-
Nella sezione Destinazione, configura le destinazioni di replica:
-
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-nameIn alternativa, scegli Browse S3 per selezionare un table bucket dal tuo account.
-
(Facoltativo) Per aggiungere altre destinazioni, scegli Aggiungi destinazione. Puoi aggiungere fino a 4 tabelle aggiuntive per un totale di 5 destinazioni.
-
-
Nella sezione del ruolo IAM, configura il ruolo di replica:
-
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.
-
-
Se hai scelto Scegli tra i ruoli IAM esistenti, seleziona un ruolo dall'elenco a discesa dei ruoli IAM.
-
(Facoltativo) Scegli Visualizza per esaminare le autorizzazioni del ruolo selezionato nella console IAM.
-
-
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.
-
Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
-
Nel pannello di navigazione, scegli Table buckets.
-
Nell'elenco dei bucket di tabella, scegli il nome del bucket di tabella che contiene la tabella che desideri replicare.
-
Scegliere la scheda Tabelle.
-
Nell'elenco Tabelle, scegli il nome della tabella che desideri replicare.
-
Scegliere la scheda Management (Gestione),
-
Nella sezione Configurazione della replica delle tabelle, scegli Crea configurazione di replica delle tabelle.
-
Nella sezione Destinazione, configura le destinazioni di replica:
-
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-nameIn alternativa, scegli Browse S3 per selezionare un table bucket dal tuo account.
-
(Facoltativo) Per aggiungere altre destinazioni, scegli Aggiungi destinazione. Puoi aggiungere fino a 4 tabelle aggiuntive per un totale di 5 destinazioni.
-
-
Nella sezione del ruolo IAM, configura il ruolo di replica:
-
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.
-
-
Se hai scelto Scegli tra i ruoli IAM esistenti, seleziona un ruolo dall'elenco dei ruoli IAM.
-
(Facoltativo) Scegli Visualizza per esaminare le autorizzazioni del ruolo selezionato nella console IAM.
-
-
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.
-
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" } ] } -
Crea il ruolo IAM:
aws iam create-role \ --role-nameS3TablesReplicationRole\ --assume-role-policy-document file://trust-policy.json \ --description "Role for S3 Tables replication" -
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/*" } ] } -
Allega la politica delle autorizzazioni al ruolo:
aws iam put-role-policy \ --role-nameS3TablesReplicationRole\ --policy-nameS3TablesReplicationPermissions\ --policy-document file://replication-permissions.jsonNota
La politica delle autorizzazioni utilizza due ambiti di risorse perché le azioni operano a livelli diversi.
CreateTableeCreateNamespacesono operazioni a livello di bucket che creano risorse nel bucket, quindi utilizzano il bucket ARN senza./table/*PutTableData,GetTableDataUpdateTableMetadataLocation, ePutTableMaintenanceConfigurationoperano su tabelle esistenti, quindi utilizzano il bucket ARN con./table/* -
(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.
-
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" } ] } -
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/\ --resource-policy file://amzn-s3-demo-table-bucket-cross-account-destinationdestination-bucket-policy.json\ --profiledestination-account -
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" } ] } -
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.
-
Crea un file di configurazione della replica. Salvalo con nome:
bucket-replication-config.jsonEsempio: 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/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-euap-south-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-apacEsempio: 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 -
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.jsonOutput previsto:
{ "versionToken": "3HL4kqtJl40Nr8X8gdRQBpUMLUo", "status": "Success" }
Utilizza questo approccio per replicare tabelle specifiche o per sovrascrivere la replica a livello di bucket.
-
Crea un file di configurazione della replica. Salvalo con nome:
table-replication-config.jsonEsempio: 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-bucketEsempio: Tabella con più destinazioni
{ "role": "arn:aws:iam::111122223333:role/S3TablesReplicationRole", "rules": [ { "destinations": [ { "destinationTableBucketARN": "arn:aws:s3tables:us-west-2:111122223333:bucket/" }, { "destinationTableBucketARN": "arn:aws:s3tables:amzn-s3-demo-table-bucket-dreu-west-1:111122223333:bucket/" } ] } ] }amzn-s3-demo-table-bucket-eu -
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/\ --configuration file://amzn-s3-demo-table-bucket-sales-datatable-replication-config.jsonOutput previsto:
{ "versionToken": "xT2LZkFZ0UuTC2h8XqtGLx2Ak6M", "status": "Success" }