

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création d'intégrations zéro ETL d'Aurora à Amazon Redshift
<a name="zero-etl.creating"></a>

Lorsque vous créez une intégration zéro ETL Aurora, vous spécifiez le cluster de bases de données Aurora source et l’entrepôt de données Amazon Redshift cible. Vous pouvez également personnaliser les paramètres de chiffrement et ajouter des balises. Aurora crée une intégration entre le cluster de bases de données source et sa cible. Une fois l’intégration active, toutes les données que vous insérez dans le cluster de bases de données source sont répliquées dans la cible Amazon Redshift configurée.

## Conditions préalables
<a name="zero-etl.create-prereqs"></a>

Avant de créer une intégration zéro ETL, vous devez spécifier un cluster de bases de données source et un entrepôt de données Amazon Redshift cible. Vous devez également autoriser la réplication dans l’entrepôt de données en ajoutant le cluster de bases de données en tant que source d’intégration autorisée.

Pour obtenir des instructions sur la réalisation de chacune de ces étapes, consultez [Bien démarrer avec les intégrations zéro ETL Aurora](zero-etl.setting-up.md).

## Autorisations requises
<a name="zero-etl.create-permissions"></a>

Certaines autorisations IAM sont requises pour créer une intégration zéro ETL. Vous avez au moins besoin des autorisations requises pour effectuer les actions suivantes :
+ Créer des intégrations zéro ETL le cluster de bases de données Aurora source.
+ Afficher et supprimer toutes les intégrations zéro ETL.
+ Créer des intégrations entrantes dans l'entrepôt de données cible.

Les exemples de politiques suivants montrent les [autorisations de moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) requises pour créer et gérer des intégrations. Il se peut que vous n’ayez pas besoin de ces autorisations exactes si votre utilisateur ou votre rôle dispose d’autorisations plus étendues, telles qu’une politique gérée `AdministratorAccess`.

**Note**  
Les noms de ressources Redshift Amazon (ARNs) ont le format suivant. Notez l'utilisation d'une barre oblique (`(/`) à la place du caractère deux-points (`:`) avant l'UUID de l'espace de noms sans serveur.  
Cluster provisionné : `arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid`
Sans serveur : `arn:aws:redshift-serverless:{region}:{account-id}:namespace/namespace-uuid`

### Exemple de politique pour la cible 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"
      ]
    }
  ]
}
```

------

### Choix d'un entrepôt de données cible dans un autre compte
<a name="zero-etl.create-permissions-cross-account"></a>

Si vous prévoyez de spécifier un entrepôt de données Amazon Redshift cible situé dans un autre Compte AWS, vous devez créer un rôle permettant aux utilisateurs du compte courant d'accéder aux ressources du compte cible. Pour plus d'informations, consultez la section [Fournir un accès à un utilisateur IAM dans un autre utilisateur Compte AWS dont vous êtes le propriétaire.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)

Le rôle doit disposer des autorisations suivantes, qui permettent à l'utilisateur de consulter les clusters provisionnés Amazon Redshift et les espaces de noms Redshift sans serveur disponibles dans le compte cible.

#### Autorisations requises et politique d'approbation
<a name="zero-etl.cross-account-sample-policy"></a>

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

****  

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

------

Le rôle doit respecter la politique d’approbation suivante, qui spécifie l’ID du compte cible.

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

****  

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

------

Pour obtenir des instructions quant à la création du rôle, consultez [Création d'un rôle à l'aide de politiques d'approbation personnalisées](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html).

## Création d'intégrations zéro ETL
<a name="zero-etl.create"></a>

Vous pouvez créer une intégration zéro ETL à l'aide de l'API AWS Management Console, de AWS CLI, ou de l'API RDS.

**Important**  
Les intégrations zéro ETL ne prennent pas en charge les opérations d’actualisation ou de resynchronisation. Si vous rencontrez des problèmes avec une intégration après sa création, vous devez supprimer l’intégration et en créer une nouvelle.

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

**Pour créer une intégration zéro ETL**

1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)l'adresse.

1. Dans le panneau de navigation de gauche, choisissez **Intégrations zéro ETL**.

1. Choisissez **Créer une intégration zéro ETL**.

1. Dans **Identifiant d’intégration**, saisissez un nom pour l’intégration. Ce nom peut comporter jusqu’à 63 caractères alphanumériques et peut inclure des traits d’union.
**Important**  
Les noms de catalogue sont limités à 19 caractères. Assurez-vous que votre identifiant d’intégration répond à cette exigence s’il doit être utilisé comme nom de catalogue.

1. Choisissez **Suivant**.

1. Pour **Source**, sélectionnez le cluster de bases de données Aurora d’où proviendront les données.
**Note**  
RDS vous avertit si les paramètres du cluster de bases de données ne sont pas configurés correctement. Si vous recevez ce message, vous pouvez soit choisir **Fix it for me**, soit les configurer manuellement. Pour obtenir des instructions pour les corriger manuellement, reportez-vous à [Étape 1 : Création d’un groupe de paramètres de cluster de bases de données personnalisé](zero-etl.setting-up.md#zero-etl.parameters).  
La modification des paramètres du cluster de bases de données nécessite un redémarrage. Avant de créer l’intégration, le redémarrage doit être terminé et les nouvelles valeurs de paramètre doit être correctement appliquée au cluster.

1. (Facultatif) Sélectionnez **Personnaliser les options de filtrage des données** et ajoutez des filtres de données à votre intégration. Vous pouvez utiliser des filtres de données pour définir l’étendue de réplication vers l’entrepôt de données cible. Pour de plus amples informations, veuillez consulter [Filtrage des données pour les intégrations zéro ETL Aurora](zero-etl.filtering.md).

1. Une fois la configuration du cluster de bases de données source terminée, choisissez **Suivant**.

1. Pour **Cible**, procédez comme suit :

   1. (Facultatif) Pour utiliser un autre Compte AWS compte pour la cible Amazon Redshift, choisissez **Spécifier un autre compte**. Saisissez ensuite l'ARN d'un rôle IAM doté d'autorisations pour afficher vos entrepôts des données. Pour obtenir des instructions sur la création du rôle IAM, consultez [Choix d'un entrepôt de données cible dans un autre compte](#zero-etl.create-permissions-cross-account).

   1. Pour **Entrepôt de données Amazon Redshift**, sélectionnez la cible pour les données répliquées à partir du cluster de bases de données source. Vous pouvez choisir un *cluster* Amazon Redshift provisionné ou un *espace de noms* Redshift sans serveur comme cible.
**Note**  
RDS vous avertit si la politique de ressources ou les paramètres de sensibilité à la casse pour l’entrepôt de données spécifié ne sont pas correctement configurés. Si vous recevez ce message, vous pouvez soit choisir **Fix it for me**, soit les configurer manuellement. Pour obtenir des instructions pour les corriger manuellement, consultez [Activation de la sensibilité à la casse pour votre entrepôt de données](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-setting-up.case-sensitivity) et [Configuration de l’autorisation pour votre entrepôt de données](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-using.redshift-iam) dans le *Guide de gestion Amazon Redshift*.  
La modification de la sensibilité à la casse pour un cluster Redshift *provisionné* nécessite un redémarrage. Avant de créer l'intégration, le redémarrage doit être terminé et la nouvelle valeur de paramètre doit être correctement appliquée au cluster.  
Si la source et la cible que vous avez sélectionnées se trouvent dans des Comptes AWS différents, Amazon RDS ne peut pas corriger ces paramètres pour vous. Vous devez accéder à l'autre compte et les corriger manuellement dans Amazon Redshift.

1. Une fois que votre entrepôt de données cible est correctement configuré, choisissez **Suivant**.

1. (Facultatif) Pour **Balises**, ajoutez une ou plusieurs balises à l’intégration. Pour plus d’informations, consultez [Marquage des ressources Amazon Aurora et Amazon RDS](USER_Tagging.md).

1. Pour **Chiffrement**, spécifiez la manière dont vous souhaitez que votre intégration soit chiffrée. Par défaut, RDS chiffre toutes les intégrations avec un. Clé détenue par AWS Pour choisir plutôt une clé gérée par le client, activez **Personnaliser les paramètres de chiffrement** et choisissez une clé KMS à utiliser pour le chiffrement. Pour plus d’informations, consultez [Chiffrement des ressources Amazon Aurora](Overview.Encryption.md).

   Ajoutez éventuellement un contexte de chiffrement. Consultez [Contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) dans le *AWS Key Management Service guide du développeur* pour en savoir plus.
**Note**  
Amazon RDS ajoute les paires de contextes de chiffrement suivantes en plus de celles que vous ajoutez :  
`aws:redshift:integration:arn` - `IntegrationArn`
`aws:servicename:id` - `Redshift`
Cela réduit le nombre total de paires que vous pouvez ajouter de 8 à 6 et contribue à la limite de caractères globale de la contrainte de subvention. Pour plus d’informations, consultez [Utilisation des contraintes d’octroi](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints) dans le *Guide du développeur AWS Key Management Service *.

1. Choisissez **Suivant**.

1. Vérifiez vos paramètres d’intégration et choisissez **Créer une intégration zéro ETL**.

   Si la création échoue, consultez [Je ne parviens pas à créer une intégration zéro ETL](zero-etl.troubleshooting.md#zero-etl.troubleshooting.creation) pour obtenir les étapes de résolution des problèmes.

L'intégration a un statut de `Creating` lors de sa création et l'entrepôt de données Amazon Redshift cible a un statut de `Modifying`. Pendant ce temps, vous ne pouvez pas interroger l'entrepôt de données ni y apporter aucune modification de configuration.

Quand l'intégration est créée avec succès, le statut de l'intégration et celui de l'entrepôt de données Amazon Redshift cible passent tous deux à `Active`.

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

Pour créer une intégration zéro ETL à l'aide de AWS CLI, utilisez la commande [create-integration](https://docs.aws.amazon.com/cli/latest/reference/rds/create-integration.html) avec les options suivantes :

**Note**  
N’oubliez pas que les noms de catalogue sont limités à 19 caractères. Choisissez le nom de votre intégration en conséquence s’il doit être utilisé comme nom de catalogue.
+ `--integration-name` : spécifiez le nom de l’intégration.
+ `--source-arn` : spécifiez l’ARN du cluster de bases de données Aurora qui sera la source de l’intégration.
+ `--target-arn` : spécifiez l’ARN de l’entrepôt de données Amazon Redshift qui sera la cible de l’intégration.

**Example**  
Pour Linux, macOS ou 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
```
Pour 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>

Pour créer une intégration zéro ETL à l'aide de l'API Amazon RDS, utilisez l'opération [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateIntegration.html) avec les paramètres suivants :

**Note**  
Les noms de catalogue sont limités à 19 caractères. Assurez-vous que votre IntegrationName paramètre répond à cette exigence s'il doit être utilisé comme nom de catalogue.
+ `IntegrationName` : spécifiez le nom de l’intégration.
+ `SourceArn` : spécifiez l’ARN du cluster de bases de données Aurora qui sera la source de l’intégration.
+ `TargetArn` : spécifiez l’ARN de l’entrepôt de données Amazon Redshift qui sera la cible de l’intégration.

## Chiffrement des intégrations avec une clé gérée par le client
<a name="zero-etl.create-encrypt"></a>

Si vous spécifiez une clé KMS personnalisée plutôt qu'une clé Clé détenue par AWS lorsque vous créez une intégration, la politique de clé doit fournir au service Amazon Redshift l'accès principal à l'`CreateGrant`action. En outre, elle doit autoriser l’utilisateur actuel à effectuer les actions `DescribeKey` et `CreateGrant`.

L’exemple de stratégie suivant montre comment fournir les autorisations requises dans la stratégie de clé. Il inclut des clés contextuelles pour réduire davantage la portée des autorisations.

### Exemple de stratégie de clé
<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": "*"
        }
    ]
}
```

------

Pour plus d’informations, consultez [Création d’une stratégie de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) dans le *Guide du développeur AWS Key Management Service *.

## Étapes suivantes
<a name="zero-etl.create-next"></a>

Une fois que vous avez réussi à créer une intégration zéro ETL, vous devez créer une base de données de destination au sein de votre cluster ou groupe de travail Amazon Redshift cible. Ensuite, vous pouvez commencer à ajouter des données au cluster de bases de données Aurora source et à les interroger dans Amazon Redshift. Pour obtenir des instructions, consultez [Création de bases de données de destination dans Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.creating-db.html).