

 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.

# Configuration des autorisations IAM
<a name="data-api-iam"></a>

Amazon Redshift fournit la politique gérée par `AmazonRedshiftDataFullAccess`. Cette politique fournit un accès complet aux fonctions de l’API de données Amazon Redshift. Cette politique permet également un accès limité à des opérations spécifiques d'Amazon Redshift AWS Secrets Manager et d'API IAM nécessaires pour authentifier et accéder à un cluster Amazon Redshift ou à un groupe de travail Redshift Serverless. 

Vous pouvez également créer votre propre politique IAM qui autorise l’accès à des ressources spécifiques. Pour créer votre politique, utilisez la politique `AmazonRedshiftDataFullAccess` comme modèle de départ. Une fois votre politique créée, ajoutez-la à chaque utilisateur ayant besoin d’accéder à l’API de données.

Prenez les exigences suivantes de la politique IAM associée à l’utilisateur :
+ Si vous utilisez cette AWS Secrets Manager option pour vous authentifier, vérifiez que la politique autorise l'utilisation de l'`secretsmanager:GetSecretValue`action pour récupérer le secret associé à la clé`RedshiftDataFullAccess`.
+ Si vous utilisez des informations d’identification temporaires pour vous authentifier auprès d’un cluster, confirmez que la politique autorise l’utilisation de l’action `redshift:GetClusterCredentials` pour le nom d’utilisateur de la base de données `redshift_data_api_user` pour toute base de données du cluster. Ce nom d’utilisateur doit déjà avoir été créé dans votre base de données.
+ Si vous utilisez des informations d’identification temporaires pour vous authentifier auprès d’un groupe de travail sans serveur, confirmez que la politique autorise l’utilisation de l’action `redshift-serverless:GetCredentials` pour récupérer le groupe de travail identifié avec la clé `RedshiftDataFullAccess`. L'utilisateur de la base de données est mappé 1:1 à l'identité source Gestion des identités et des accès AWS (IAM). Par exemple, l’utilisateur sample\$1user est mappé à l’utilisateur de la base de données `IAM:sample_user`, et le rôle IAM sample\$1role est mappé à `IAMR:sample_role`. Pour plus d’informations sur les identités IAM, consultez [Identités IAM (utilisateurs, groupes d’utilisateurs et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) dans le Guide de l’utilisateur IAM.
+ L’action IAM `redshift-data:GetStatementResult` permet d’accéder à la fois aux opérations d’API `GetStatementResult` et `GetStatementResultV2`.

Les liens suivants fournissent des informations supplémentaires sur Gestion des identités et des accès AWS le *guide de l'utilisateur IAM*.
+ Pour plus d’informations sur la création de rôles IAM, consultez [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 
+ Pour plus d’informations sur la création de politiques IAM, consultez [Création de politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).
+ Pour en savoir plus sur l’ajout d’une politique IAM à un utilisateur, consultez [Ajout et suppression d’autorisations basées sur l’identité IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

## Exécution d’une requête sur un cluster appartenant un autre compte
<a name="data-api-run-query-on-others-cluster"></a>

Pour exécuter une requête sur un cluster appartenant à un autre compte, le compte propriétaire doit fournir un rôle IAM que l’API de données peut assumer dans le compte appelant. Par exemple, supposons que le compte B possède un cluster auquel le compte A doit accéder. Le compte B peut associer la politique AWS gérée `AmazonRedshiftDataFullAccess` au rôle IAM du compte B. Ensuite, le compte B approuve le compte A à l’aide d’une politique de confiance telle que la suivante : ``

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

****  

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

------

Enfin, le rôle IAM du compte A doit être en mesure d’assumer le rôle IAM du compte B.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/someRoleB"
    }
}
```

------

## Spécifiez un rôle IAM qui limite les ressources aux groupes de travail Redshift Serverless et aux clusters Amazon Redshift dans un Compte AWS
<a name="data-api-restrict-to-account"></a>

Vous pouvez spécifier une ressource ARNs dans votre politique basée sur l'identité pour contrôler l'accès aux groupes de travail Redshift Serverless et aux clusters Amazon Redshift dans un. Compte AWS Cet exemple montre comment créer une politique qui autorise l’accès à l’API de données uniquement pour le groupe de travail et les clusters spécifiés Compte AWS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "redshift-data:*",
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:workgroup/*",
                "arn:aws:redshift:us-east-1:111122223333:cluster:*"
            ]
        }
    ]
}
```

------

## Configurer une politique IAM qui restreint l’accès aux informations des instructions SQL au seul propriétaire de l’instruction
<a name="data-api-restrict-to-statement-owner"></a>

Par défaut, l’API de données Amazon Redshift considère le rôle IAM utilisé lors de l’appel `ExecuteStatement` et `BatchExecuteStatement` comme le propriétaire de l’instruction SQL. Toute personne autorisée à assumer ce rôle peut accéder aux informations relatives à l’instruction SQL, notamment à ses résultats. Pour restreindre l’accès aux informations des instructions SQL à une session de rôle IAM avec un propriétaire particulier, ajoutez une condition `redshift-data:statement-owner-iam-userid: "${aws:userid}"`. La politique IAM suivante restreint l’accès.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:statement-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Vous pouvez utiliser la condition `statement-owner-iam-userid` avec `CancelStatement`, `DescribeStatement`, `GetStatementResult` et `ListStatements`. Pour plus d’informations, consultez [Actions définies par l’API de données Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

## Configurer une politique IAM qui limite l’accès aux résultats SQL au seul propriétaire de la session
<a name="data-api-restrict-session-owner"></a>

Par défaut, l’API de données Amazon Redshift considère le rôle IAM utilisé lors de l’appel `ExecuteStatement` et `BatchExecuteStatement` comme le propriétaire de la session de base de données qui exécute l’instruction SQL. Toute personne autorisée à assumer ce rôle peut soumettre des requêtes à la session de base de données. Pour restreindre l’accès à la session à une session de rôle IAM avec un propriétaire particulier, ajoutez une condition ` redshift-data:session-owner-iam-userid: "${aws:userid}"`. La politique IAM suivante restreint l’accès.

La politique IAM suivante permet uniquement au propriétaire de la session d’obtenir les résultats des instructions. La condition `session-owner-iam-userid` est utilisée pour limiter l’accès aux ressources au `userid` spécifié.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ 
                "redshift-data:ExecuteStatement",
                "redshift-data:BatchExecuteStatement"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:session-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Vous pouvez utiliser la condition `session-owner-iam-userid` avec `ExecuteStatement` et `BatchExecuteStatement`. Pour plus d’informations, consultez [Actions définies par l’API de données Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).