

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Autorisation des opérations COPY, UNLOAD, CREATE EXTERNAL FUNCTION et CREATE EXTERNAL SCHEMA à l'aide des rôles IAM
<a name="copy-unload-iam-role"></a>

Vous pouvez utiliser la commande [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) pour charger (ou importer) des données dans Amazon Redshift et la commande [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) pour décharger (ou exporter) des données depuis Amazon Redshift. Vous pouvez utiliser la commande CREATE EXTERNAL FUNCTION pour créer des fonctions définies par l'utilisateur qui invoquent des fonctions depuis AWS Lambda. 

Lorsque vous utilisez Amazon Redshift Spectrum, vous utilisez la commande [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) pour spécifier l'emplacement d'un compartiment Amazon S3 qui contient vos données. Lorsque vous exécutez les commandes COPY, UNLOAD ou CREATE EXTERNAL SCHEMA, vous fournissez des informations d'identification de sécurité. Ces informations d'identification autorisent votre cluster Amazon Redshift à lire ou écrire des données vers et depuis votre destination cible, comme un compartiment Amazon S3. 

Lorsque vous exécutez CREATE EXTERNAL FUNCTION, vous fournissez des informations d'identification de sécurité à l'aide du paramètre de rôle IAM. Ces informations d'identification autorisent votre cluster Amazon Redshift à appeler des fonctions Lambda depuis. AWS Lambda La méthode préférée pour fournir des informations d'identification de sécurité consiste à spécifier un rôle Gestion des identités et des accès AWS (IAM). Pour COPY et UNLOAD, vous pouvez fournir des informations d’identification temporaires. Pour plus d'informations sur la création d'un rôle IAM, consultez [Autoriser Amazon Redshift à AWS accéder aux services en votre nom](authorizing-redshift-service.md).

Les utilisateurs ont besoin d'un accès programmatique s'ils souhaitent interagir avec AWS l'extérieur du AWS Management Console. La manière d'accorder un accès programmatique dépend du type d'utilisateur qui y accède AWS.

Pour accorder aux utilisateurs un accès programmatique, choisissez l’une des options suivantes.


****  

| Quel utilisateur a besoin d’un accès programmatique ? | À | Méthode | 
| --- | --- | --- | 
| IAM | (Recommandé) Utilisez les informations d'identification de la console comme informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
|  Identité de la main-d’œuvre (Utilisateurs gérés dans IAM Identity Center)  | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/copy-unload-iam-role.html)  | 
| IAM | Utilisez des informations d'identification temporaires pour signer les demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. | Suivez les instructions de la section [Utilisation d'informations d'identification temporaires avec AWS les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) du Guide de l'utilisateur IAM. | 
| IAM | (Non recommandé)Utilisez des informations d'identification à long terme pour signer des demandes programmatiques adressées au AWS CLI AWS SDKs, ou AWS APIs. |  Suivez les instructions de l’interface que vous souhaitez utiliser. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/redshift/latest/mgmt/copy-unload-iam-role.html)  | 

Les étapes de l'utilisation d'un rôle IAM sont les suivantes :
+ Créer un rôle IAM à utiliser avec votre cluster Amazon Redshift.
+ Associer le rôle IAM au cluster.
+ Incluez l'ARN du rôle IAM lorsque vous appelez la commande COPY, UNLOAD, CREATE EXTERNAL SCHEMA ou CREATE EXTERNAL FUNCTION.

# Association des rôles IAM aux clusters
<a name="copy-unload-iam-role-associating-with-clusters"></a>

Après avoir créé un rôle IAM qui autorise Amazon Redshift à accéder à d'autres services AWS pour vous, vous devez associer ce rôle à un cluster Amazon Redshift. Vous devez le faire avant de pouvoir utiliser le rôle pour charger ou décharger des données. 

## Autorisations requises pour associer un rôle IAM à un cluster
<a name="copy-unload-iam-role-associating-with-clusters-perms"></a>

Pour associer un rôle IAM à un cluster, un utilisateur doit avoir l'autorisation `iam:PassRole` pour ce rôle IAM. Cette autorisation permet à un administrateur de restreindre les rôles IAM qu'un utilisateur peut associer aux clusters Amazon Redshift. Il est recommandé d’associer des politiques d’autorisation à un rôle IAM, puis de l’attribuer à des utilisateurs et à des groupes, le cas échéant. Pour plus d’informations, consultez [Identity and Access Management dans Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

L'exemple suivant illustre une politique IAM qui peut être attachée à un utilisateur et qui permet à l'utilisateur d'exécuter ces actions : 
+ Obtenez les détails de tous les clusters Amazon Redshift détenus par ce compte d'utilisateur.
+ Associez l'un des trois rôles IAM à l'un ou l'autre des deux clusters Amazon Redshift.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:DescribeClusters",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "redshift:ModifyClusterIamRoles",
                 "redshift:CreateCluster"
            ],
            "Resource": [
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster",
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-second-redshift-cluster"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/MyRedshiftRole",
                "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                "arn:aws:iam::123456789012:role/ThirdRedshiftRole"
             ]
        }
    ]
}
```

------

Une fois qu'un utilisateur dispose des autorisations appropriées, cet utilisateur peut associer un rôle IAM à un cluster Amazon Redshift. Le rôle IAM est ensuite prêt à utiliser la commande COPY ou UNLOAD, ou d'autres commandes Amazon Redshift.

Pour plus d'informations sur les politiques IAM, consultez [Présentation des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l'utilisateur IAM*.

## Gestion de l'association d'un rôle IAM à un cluster
<a name="managing-iam-role-association-with-cluster"></a>

Vous pouvez associer un rôle IAM à un cluster Amazon Redshift lorsque vous créez le cluster. Ou vous pouvez modifier un cluster existant ou ajouter ou supprimer une ou plusieurs associations de rôle IAM. 

Tenez compte des points suivants :
+ Le nombre maximal de rôles IAM que vous pouvez associer est soumis à un quota.
+ Un rôle IAM peut être associé à plusieurs clusters Amazon Redshift.
+ Un rôle IAM ne peut être associé à un cluster Amazon Redshift que si le rôle IAM et le cluster appartiennent au même compte. AWS 

Vous pouvez gérer les associations de rôle IAM d'un cluster avec la console à l'aide de la procédure suivante.

**Pour gérer les associations de rôles IAM**

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

1. Dans le menu de navigation, choisissez **Clusters**, puis le cluster que vous souhaitez mettre à jour.

1. Pour **Actions**, choisissez **Gérer les rôles IAM** pour afficher la liste actuelle des rôles IAM associés au cluster. 

1. Sur la page **Gérer les rôles IAM**, choisissez les rôles IAM à ajouter, puis **Ajouter un rôle IAM**. 

1. Choisissez **Terminé** pour enregistrer les changements. 

Vous pouvez gérer les associations de rôles IAM pour un cluster à AWS CLI l'aide des approches suivantes.

Pour associer un rôle IAM à un cluster lors de la création du cluster, spécifiez l'Amazon Resource Name (ARN) du rôle IAM comme paramètre `--iam-role-arns` de la commande `create-cluster`. Le nombre maximal de rôles IAM que vous pouvez ajouter lorsque vous appelez la commande `create-cluster` est soumis à un quota. 

L'association et la dissociation des rôles IAM avec les clusters Amazon Redshift constitue un processus asynchrone. Vous pouvez obtenir le statut de toutes les associations de rôle IAM et de cluster en appelant la commande `describe-clusters`.

L'exemple suivant associe deux rôles IAM avec le cluster nouvellement créé nommé `my-redshift-cluster`.

```
aws redshift create-cluster \
    --cluster-identifier "my-redshift-cluster" \
    --node-type "ra3.4xlarge" \
    --number-of-nodes 16 \
    --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \
                    "arn:aws:iam::123456789012:role/SecondRedshiftRole"
```

Pour associer un rôle IAM à un cluster Amazon Redshift existant, spécifiez l'Amazon Resource Name (ARN) du rôle IAM comme paramètre `--add-iam-roles` de la commande `modify-cluster-iam-roles`. Le nombre maximal de rôles IAM que vous pouvez ajouter lorsque vous appelez la commande `modify-cluster-iam-roles` est soumis à un quota. 

L'exemple suivant associe un rôle IAM à un cluster existant nommé `my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

Pour dissocier un rôle IAM d'un cluster, spécifiez l'ARN du rôle IAM comme paramètre `--remove-iam-roles` de la commande `modify-cluster-iam-roles`. `modify-cluster-iam-roles` Le nombre maximal de rôles IAM que vous pouvez supprimer lorsque vous appelez la commande `modify-cluster-iam-roles` est soumis à un quota.

L'exemple suivant supprime l'association pour un rôle IAM pour le `123456789012` AWS compte d'un cluster nommé`my-redshift-cluster`.

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

### Répertorier les associations de rôles IAM pour un cluster à l'aide du AWS CLI
<a name="w2aac37c30c30c35c31b7b9c29"></a>

Pour afficher tous les rôles IAM associés à un cluster Amazon Redshift et l'état de l'association de rôle IAM, appelez la commande `describe-clusters`. L'ARN de chaque rôle IAM associé au cluster est retourné dans la liste `IamRoles` comme illustré dans l'exemple de sortie suivant.

Les rôles qui ont été associés au cluster affichent l'état `in-sync`. Les rôles qui sont en cours d'association au cluster affichent l'état `adding`. Les rôles qui sont en cours de dissociation du cluster affichent l'état `removing`.

```
{
    "Clusters": [
        {
            "ClusterIdentifier": "my-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 16,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        },
        {
            "ClusterIdentifier": "my-second-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 10,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        }
    ]
}
```

Pour plus d'informations sur l'utilisation du AWS CLI, consultez le *[Guide de AWS CLI l'utilisateur](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)*.