

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
<a name="s3-tables-replication-setting-up"></a>

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

**Topics**
+ [Prerequisiti per l'impostazione della replica](#s3-tables-replication-prerequisites)
+ [Comprensione delle configurazioni di replica](#s3-tables-replication-understanding-configurations)
+ [Scelta tra replica a livello di bucket e a livello di tabella](#s3-tables-replication-choosing-configuration)
+ [Configurazione della replica utilizzando la console Amazon S3](#s3-tables-replication-console)
+ [Impostazione della replica utilizzando AWS CLI](#s3-tables-replication-cli)

## Prerequisiti per l'impostazione della replica
<a name="s3-tables-replication-prerequisites"></a>

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

### Risorse obbligatorie
<a name="s3-tables-replication-required-resources"></a>
+ **Source table bucket**: il bucket di tabella contenente le tabelle da 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
<a name="s3-tables-replication-required-permissions"></a>

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

**Per la replica a livello di bucket:**
+ `s3tables:PutTableBucketReplication`nel bucket della tabella di origine
+ `s3tables:GetTableBucketReplication`nel bucket della tabella di origine
+ `iam:PassRole`per il ruolo IAM di replica

**Per la replica a livello di tabella:**
+ `s3tables:PutTableReplication`nella tabella di origine
+ `s3tables:GetTableReplication`nella tabella dei sorgenti
+ `iam:PassRole`per 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
<a name="s3-tables-replication-cross-account-requirements"></a>

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
<a name="s3-tables-replication-encrypted-requirements"></a>

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
<a name="s3-tables-replication-understanding-configurations"></a>

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
<a name="s3-tables-replication-bucket-level"></a>

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
<a name="s3-tables-replication-table-level"></a>

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
<a name="s3-tables-replication-configuration-elements"></a>

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
<a name="s3-tables-replication-choosing-configuration"></a>

### Priorità di configurazione
<a name="s3-tables-replication-configuration-precedence"></a>

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
<a name="s3-tables-replication-console"></a>

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

### Per configurare la replica a livello di bucket
<a name="s3-tables-replication-bucket-level-console"></a>

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 a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione, scegli **Table buckets**.

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

1. Scegliere la scheda **Management** (Gestione),

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

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

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

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

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

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

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

### Per impostare la replica a livello di tabella
<a name="s3-tables-replication-table-level-console"></a>

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 a Console di gestione AWS e apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione, scegli **Table buckets**.

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

1. Scegliere la scheda **Tabelle**.

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

1. Scegliere la scheda **Management** (Gestione),

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

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

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

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

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

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

1. Scegli **Crea configurazione di replica.**

### Cosa succede dopo?
<a name="s3-tables-replication-what-happens-next"></a>

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
<a name="s3-tables-replication-cli"></a>

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
<a name="s3-tables-replication-create-iam-role"></a>

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 come`trust-policy.json`:

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

1. 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"
   ```

1. 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/*"
           }
       ]
   }
   ```

1. Allega la politica delle autorizzazioni al ruolo:

   ```
   aws iam put-role-policy \
       --role-name S3TablesReplicationRole \
       --policy-name S3TablesReplicationPermissions \
       --policy-document file://replication-permissions.json
   ```

1. (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
<a name="s3-tables-replication-cross-account-policy"></a>

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

1. 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
   ```

1. 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"
           }
     ]
   }
   ```

1. 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
<a name="s3-tabales-replication-cli"></a>

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

#### Crea una configurazione di replica a livello di bucket
<a name="s3-tables-replication-bucket-level-cli"></a>

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

1. Crea un file di configurazione di replica. Salva questo come`bucket-replication-config.json`:  
**Example : 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"
           }
         ]
       }
     ]
   }
   ```  
**Example : 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"
           }
         ]
       }
     ]
   }
   ```  
**Example : 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"
           }
         ]
       }
     ]
   }
   ```

1. 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"
   }
   ```

#### Creare una configurazione di replica a livello di tabella
<a name="s3-tables-replication-table-level-cli"></a>

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 come`table-replication-config.json`:  
**Example : 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"
           }
         ]
       }
     ]
   }
   ```  
**Example : 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"
           }
         ]
       }
     ]
   }
   ```

1. 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"
   }
   ```