

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

# Creazione di integrazioni Zero-ETL di Amazon RDS con Amazon Redshift
<a name="zero-etl.creating"></a>

Quando crei un’integrazione Zero-ETL di Amazon RDS, specifichi il database RDS di origine e il data warehouse Amazon Redshift di destinazione. Puoi anche personalizzare le impostazioni di crittografia e aggiungere tag. Amazon RDS crea un’integrazione tra il database di origine e la sua destinazione. Dopo aver attivato l’integrazione, tutti i dati che inserisci nel database di origine verranno replicati nella destinazione Amazon Redshift configurata.

## Prerequisiti
<a name="zero-etl.create-prereqs"></a>

Prima di creare un’integrazione Zero-ETL, devi creare un database di origine e un data warehouse Amazon Redshift di destinazione. Devi anche consentire la replica nel data warehouse aggiungendo il database Aurora come origine di integrazione autorizzata.

Per istruzioni su come completare ciascuno di questi passaggi, consulta [Guida introduttiva alle integrazioni Zero-ETL di Amazon RDS](zero-etl.setting-up.md).

## Autorizzazioni richieste
<a name="zero-etl.create-permissions"></a>

Per creare un’integrazione Zero-ETL, occorrono alcune autorizzazioni IAM. Come requisito minimo, dovrai disporre delle autorizzazioni per eseguire le seguenti operazioni:
+ Creazione di integrazioni Zero-ETL per il database RDS di origine.
+ Visualizzazione ed eliminazione di tutte le integrazioni Zero-ETL.
+ Creazione di integrazioni in entrata nel data warehouse di destinazione.

Le seguenti policy di esempio mostrano le [autorizzazioni con privilegi minimi](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) richieste per creare e gestire le integrazioni. Potresti non aver bisogno di queste stesse autorizzazioni se il tuo utente o ruolo dispone di autorizzazioni più ampie, come una policy gestita di `AdministratorAccess`.

**Nota**  
Redshift Amazon Resource Names (ARNs) hanno il seguente formato. Nota l’uso di una barra (`(/`) anziché dei due punti (`:`) prima dell’UUID dello spazio dei nomi serverless.  
Cluster con provisioning: `arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid`
Serverless: `arn:aws:redshift-serverless:{region}:{account-id}:namespace/namespace-uuid`

### Policy di esempio per la destinazione Redshift
<a name="zero-etl.create-sample-policy"></a>

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateIntegration",
      "Effect": "Allow",
      "Action": [
        "rds:CreateIntegration"
      ],
      "Resource": [
        "arn:aws:rds:us-east-1:123456789012:db:source-db",
        "arn:aws:rds:us-east-1:123456789012:integration:*"
      ]
    },
    {
      "Sid": "DescribeIntegrationDetails",
      "Effect": "Allow",
      "Action": [
        "rds:DescribeIntegrations"
      ],
      "Resource": [
      "arn:aws:rds:us-east-1:123456789012:integration:*"
  ]
    },
    {
      "Sid": "ChangeIntegrationDetails",
      "Effect": "Allow",
      "Action": [
        "rds:DeleteIntegration",
        "rds:ModifyIntegration"
      ],
      "Resource": [
        "arn:aws:rds:us-east-1:123456789012:integration:*"
      ]
    },
    {
      "Sid": "AllowRedShiftIntegration",
      "Effect": "Allow",
      "Action": [
        "redshift:CreateInboundIntegration"
      ],
      "Resource": [
        "arn:aws:redshift:us-east-1:123456789012:namespace:namespace-uuid"
      ]
    }
  ]
}
```

------

### Scelta di un data warehouse di destinazione in un account diverso
<a name="zero-etl.create-permissions-cross-account"></a>

Se prevedi di specificare un data warehouse Amazon Redshift di destinazione che si trova in un altro Account AWS, devi creare un ruolo che consenta agli utenti dell'account corrente di accedere alle risorse nell'account di destinazione. Per ulteriori informazioni, consulta [Fornire l'accesso a un utente IAM in un altro utente Account AWS di tua proprietà.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)

Il ruolo deve disporre delle seguenti autorizzazioni, che consentono all’utente di visualizzare i cluster Amazon Redshift con provisioning e gli spazi dei nomi Redshift Serverless disponibili nell’account di destinazione.

#### Autorizzazioni richieste e policy di attendibilità
<a name="zero-etl.cross-account-sample-policy"></a>

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "redshift:DescribeClusters",
            "redshift-serverless:ListNamespaces"
         ],
         "Resource":[
            "*"
         ]
      }
   ]
}
```

------

Il ruolo deve avere la seguente policy di attendibilità, che specifica l’ID dell’account di destinazione.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Per istruzioni sulla creazione del ruolo, consulta [Creazione di un ruolo utilizzando policy di attendibilità personalizzate](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html).

## Creazione di integrazioni Zero-ETL
<a name="zero-etl.create"></a>

Puoi creare un'integrazione zero-ETL utilizzando l'API Console di gestione AWS AWS CLI, the o RDS.

**Importante**  
Le integrazioni Zero-ETL non supportano le operazioni di aggiornamento o risincronizzazione. Se riscontri problemi con un’integrazione dopo la creazione, devi eliminarla e crearne una nuova.

Per impostazione predefinita, RDS per MySQL elimina immediatamente i file di log binari. Poiché le integrazioni Zero-ETL si basano sui log binari per replicare i dati dall’origine alla destinazione, il periodo di conservazione del database di origine deve essere di almeno un’ora. Non appena crei un’integrazione, Amazon RDS verifica il periodo di conservazione dei file di log binari per il database di origine selezionato. Se il valore corrente è 0 ore, Amazon RDS lo modifica automaticamente in 1 ora. In caso contrario, il valore rimane invariato.

### Console RDS
<a name="zero-etl.create-console"></a>

**Creazione di un’integrazione Zero-ETL**

1. Accedi a Console di gestione AWS e apri la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel pannello di navigazione a sinistra, scegli **Interfacce di rete**.

1. Scegli **Crea un’integrazione Zero-ETL**.

1. In **Identificatore dell’integrazione**, inserisci un nome per l’integrazione. Il nome può contenere fino a 63 caratteri alfanumerici e può includere trattini.
**Importante**  
I nomi dei cataloghi hanno un limite di lunghezza di 19 caratteri. Assicurati che il tuo identificatore di integrazione soddisfi questo requisito se verrà utilizzato come nome di catalogo.

1. Scegli **Next (Successivo)**.

1. In **Origine**, seleziona il database RDS da cui provengono i dati.
**Nota**  
RDS avvisa l’utente se i parametri del DB non sono configurati correttamente. Se ricevi questo messaggio, puoi scegliere **Correggi per me** o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta [Fase 1: creazione di un gruppo di parametri del di database personalizzato](zero-etl.setting-up.md#zero-etl.parameters).  
La modifica dei parametri del DB richiede un riavvio. Prima di poter creare l’integrazione, è necessario completare il riavvio e applicare correttamente i nuovi valori del parametro al database.

1. Una volta completata la configurazione del database di origine, scegli **Avanti**.

1. Per **Destinazione**, esegui queste operazioni:

   1. (Facoltativo) Per utilizzare un account diverso Account AWS per il target Amazon Redshift, scegli **Specificare un account diverso**. Quindi, inserisci l’ARN di un ruolo IAM con le autorizzazioni per visualizzare i data warehouse. Per istruzioni su come creare il ruolo IAM, consulta [Scelta di un data warehouse di destinazione in un account diverso](#zero-etl.create-permissions-cross-account).

   1. Per **Data warehouse Amazon Redshift**, seleziona la destinazione per i dati replicati dal database di origine. Puoi scegliere un *cluster* Amazon Redshift con provisioning o uno *spazio dei nomi* Redshift Serverless come destinazione.
**Nota**  
RDS ti avvisa se le policy relative alle risorse o le impostazioni di distinzione tra maiuscole e minuscole per il data warehouse specificato non sono configurate correttamente. Se ricevi questo messaggio, puoi scegliere **Correggi per me** o configurarli manualmente. Per istruzioni su come correggerli manualmente, consulta [Attivazione della distinzione tra maiuscole e minuscole per il data warehouse](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-setting-up.case-sensitivity) e [Configurazione dell’autorizzazione per il data warehouse](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-using.redshift-iam) nella *Guida alla gestione di Amazon Redshift*.  
La modifica della distinzione tra maiuscole e minuscole per un cluster Redshift *con provisioning* richiede un riavvio. Prima di poter creare l’integrazione, è necessario completare il riavvio e applicare correttamente il nuovo valore del parametro al cluster.  
Se l’origine e la destinazione selezionate si trovano in Account AWS diversi, Amazon RDS non può correggere queste impostazioni per te. Devi accedere all’altro account e correggerle manualmente in Amazon Redshift.

1. Una volta configurato correttamente il data warehouse di destinazione, scegli **Avanti**.

1. (Facoltativo) In **Tag**, aggiungi uno o più tag all’integrazione. Per ulteriori informazioni, consulta [Etichettatura delle Amazon RDS](USER_Tagging.md).

1. In **Crittografia**, specifica come eseguire la crittografia dell’integrazione. Per impostazione predefinita, RDS crittografa tutte le integrazioni con un. Chiave di proprietà di AWS Per scegliere invece una chiave gestita dal cliente, abilita **Personalizza le impostazioni di crittografia** e scegli una chiave KMS da utilizzare per la crittografia. Per ulteriori informazioni, consulta [Crittografia delle risorse Amazon RDS](Overview.Encryption.md).

   Aggiungi un contesto di crittografia (facoltativo). Per ulteriori informazioni, consultare [Contesto della crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) nella *Guida per gli sviluppatori di AWS Key Management Service *.
**Nota**  
Amazon RDS aggiunge le seguenti coppie di contesti di crittografia oltre a quelle che aggiungi tu:  
`aws:redshift:integration:arn` - `IntegrationArn`
`aws:servicename:id` - `Redshift`
Ciò riduce il numero complessivo di coppie che puoi aggiungere da 8 a 6 e contribuisce al limite complessivo di caratteri del vincolo di concessione. Per ulteriori informazioni sulle autorizzazioni, consulta [Utilizzo dei vincoli di concessione](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) nella *Guida per gli sviluppatori di AWS Key Management Service *.

1. Scegli **Next (Successivo)**.

1. Rivedi le impostazioni dell'integrazione e scegli **Crea integrazione Zero-ETL**.

   Se la creazione ha esito negativo, consulta [Non riesco a creare un’integrazione Zero-ETL](zero-etl.troubleshooting.md#zero-etl.troubleshooting.creation) per la procedura di risoluzione dei problemi.

Lo stato dell’integrazione è `Creating` mentre l’integrazione è in fase di creazione, mentre lo stato del data warehouse Amazon Redshift di destinazione è `Modifying`. Durante questo periodo, non puoi eseguire query sul data warehouse o apportare modifiche alla configurazione.

Quando la creazione dell’integrazione viene completata correttamente, lo stato dell’integrazione e del data warehouse Amazon Redshift di destinazione cambia in `Active`.

### AWS CLI
<a name="zero-etl.create-cli"></a>

Per creare un'integrazione zero-ETL utilizzando il AWS CLI, utilizza il comando [create-integration](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) con le seguenti opzioni:

**Nota**  
Ricorda che i nomi dei cataloghi hanno un limite di 19 caratteri. Scegli il nome dell’integrazione tenendo conto del fatto che potrà essere utilizzato come nome di catalogo.
+ `--integration-name`: specifica un nome per l’integrazione.
+ `--source-arn`: specifica l’ARN del database RDS che sarà l’origine dell’integrazione.
+ `--target-arn`: specifica l’ARN del data warehouse di Amazon Redshift che sarà la destinazione dell’integrazione.

**Example**  
Per Linux, macOS o Unix:  

```
aws rds create-integration \
    --integration-name my-integration \
    --source-arn arn:aws:rds:{region}:{account-id}:my-db \
    --target-arn arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid
```
Per Windows:  

```
aws rds create-integration ^
    --integration-name my-integration ^
    --source-arn arn:aws:rds:{region}:{account-id}:my-db ^
    --target-arn arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid
```

### API RDS
<a name="zero-etl.create-api"></a>

Per creare un’integrazione Zero-ETL con l’API Amazon RDS, utilizza l’operazione [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html) con i seguenti parametri:

**Nota**  
I nomi dei cataloghi hanno un limite di 19 caratteri. Assicuratevi che il IntegrationName parametro soddisfi questo requisito se verrà utilizzato come nome di catalogo.
+ `IntegrationName`: specifica un nome per l’integrazione.
+ `SourceArn`: specifica l’ARN del database RDS che sarà l’origine dell’integrazione.
+ `TargetArn`: specifica l’ARN del data warehouse di Amazon Redshift che sarà la destinazione dell’integrazione.

## Crittografia delle integrazioni con una chiave gestita dal cliente
<a name="zero-etl.create-encrypt"></a>

Se specifichi una chiave KMS personalizzata anziché una Chiave di proprietà di AWS quando crei un'integrazione, la policy chiave deve fornire al servizio Amazon Redshift l'accesso principale all'`CreateGrant`azione. Inoltre, deve consentire all’utente corrente di eseguire le operazioni `DescribeKey` e `CreateGrant`.

La seguente policy di esempio mostra come fornire le autorizzazioni richieste nella policy della chiave. Include chiavi contestuali per ridurre ulteriormente l’ambito delle autorizzazioni.

### Policy della chiave di esempio
<a name="zero-etl.kms-sample-policy"></a>

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "Key policy",
    "Statement": [
        {
            "Sid": "Enables IAM user permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allows the Redshift service principal to add a grant to a KMS key",
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:{context-key}": "{context-value}"
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "GenerateDataKey",
                        "CreateGrant"
                    ]
                }
            }
        },
        {
            "Sid": "Allows the current user or role to add a grant to a KMS key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{role-name}"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:{context-key}": "{context-value}",
                    "kms:ViaService": "rds.us-east-1.amazonaws.com"
                },
                "ForAllValues:StringEquals": {
                    "kms:GrantOperations": [
                        "Decrypt",
                        "GenerateDataKey",
                        "CreateGrant"
                    ]
                }
            }
        },
        {
            "Sid": "Allows the current uer or role to retrieve information about a KMS key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/{role-name}"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        }
    ]
}
```

------

Per ulteriori informazioni, consulta [Creazione di una policy delle chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

## Fasi successive
<a name="zero-etl.create-next"></a>

Dopo aver creato correttamente un’integrazione Zero-ETL, devi creare un database di destinazione all’interno del cluster o del gruppo di lavoro Amazon Redshift di destinazione. Quindi, puoi iniziare ad aggiungere dati al database RDS ed eseguirvi query in Amazon Redshift. Per istruzioni, consulta [Creazione di database di destinazione in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html).