

 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.

# Connectez-vous à Redshift grâce à des sessions de rôle IAM améliorées
<a name="identity-center-authentication"></a>

Vous pouvez utiliser IAM Identity Center pour fournir un accès fédéré à vos clusters Amazon Redshift et à vos groupes de travail sans serveur. Cette approche permet aux utilisateurs de s'authentifier à l'aide de leurs informations d'identification Identity Center.

Amazon Redshift fournit des opérations d'`GetIdentityCenterAuthToken`API pour générer un jeton autorisé contenant les informations d'identité de l'utilisateur. Ils APIs sont disponibles à la fois pour les clusters provisionnés et les groupes de travail sans serveur. Les jetons permettent un accès par authentification unique fluide aux bases de données Amazon Redshift à l'aide de votre configuration Identity Center existante.

## Conditions préalables
<a name="identity-center-auth-prerequisites"></a>

Avant d'utiliser l'authentification Identity Center avec Amazon Redshift, assurez-vous de disposer des éléments suivants :
+ **Configuration du centre d'identité :** votre compte doit disposer d'IAM Identity Center configuré avec les identités des utilisateurs et les attributions d'applications appropriées. Pour les instructions de configuration, voir [Configuration d'IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html).
**Important**  
Si vous souhaitez vous connecter à Redshift, vous devez utiliser redshift:connect scope.
+ Informations **d'identification améliorées : votre application doit utiliser des informations d'identification améliorées contenant des informations d'identité** utilisateur intégrées. Pour plus d'informations, consultez la section [Utilisation de sessions de rôle IAM à identité améliorée](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html).
+ **Autorisations IAM :** votre rôle ou utilisateur IAM doit être autorisé à appeler l'`GetIdentityCenterAuthToken`API et à accéder aux clusters ou groupes de travail spécifiés. Autorisations requises :
  + Pour les clusters provisionnés : `redshift:GetIdentityCenterAuthToken` sur le cluster ARNs (format :`arn:aws:redshift:region:account:cluster:cluster-name`)
  + Pour les groupes de travail sans serveur : `redshift-serverless:GetIdentityCenterAuthToken` sur le groupe de travail ARNs (format :) `arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`
+ **Pilotes compatibles :** utilisez les pilotes JDBC ou ODBC Amazon Redshift qui prennent en charge les jetons autorisés par Identity Center :
  + Pilotes JDBC : voir [Installation et configuration du pilote JDBC Amazon Redshift version 2.0](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html)
  + Pilotes ODBC : voir [Installation et configuration du pilote ODBC Amazon Redshift version 2.0](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install.html)

## Comment fonctionne l'authentification Identity Center
<a name="identity-center-auth-overview"></a>

L'authentification Identity Center pour Amazon Redshift utilise le flux de travail suivant :

1. Votre application appelle l'`GetIdentityCenterAuthToken`API à l'aide d'informations d'identification améliorées contenant des informations d'identité utilisateur intégrées.

1. Amazon Redshift valide l'identité du centre d'identité et génère un jeton autorisé chiffré limité à des clusters ou à des groupes de travail spécifiques. Voir des exemples de politiques IAM.

1. Votre application utilise ce jeton pour se connecter au cluster ou au groupe de travail Amazon Redshift spécifié.

1. Le plan de données Amazon Redshift valide le jeton et accorde l'accès en fonction des autorisations de l'utilisateur Identity Center dans l'application Identity Center.

**Important**  
Cette API nécessite des informations d'identification améliorées. Pour plus d'informations, consultez la section [Utilisation de sessions de rôle IAM à identité améliorée](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html).  
Si vous appelez l'API sans informations d'identification améliorées, vous recevrez un `UnsupportedOperationFault` message d'erreur.

## GetIdentityCenterAuthToken Opérations d'API
<a name="identity-center-auth-apis"></a>

Amazon Redshift fournit deux opérations d'`GetIdentityCenterAuthToken`API distinctes : l'une pour les clusters provisionnés et l'autre pour les groupes de travail sans serveur. Les deux opérations portent le même nom mais acceptent des paramètres différents selon le type de ressource cible.

### GetIdentityCenterAuthToken pour les clusters provisionnés
<a name="provisioned-identity-center-auth"></a>

Pour les clusters Amazon Redshift provisionnés, utilisez `GetIdentityCenterAuthToken` l'API du service Amazon Redshift pour générer un jeton autorisé.

#### Syntaxe de demande
<a name="provisioned-request-syntax"></a>

```
{
   "ClusterIds": [ "string" ]
}
```

#### Paramètres de demande
<a name="provisioned-request-parameters"></a>

ClusterIds  
Liste des identifiants de cluster Amazon Redshift auxquels le jeton sera autorisé à accéder. Le jeton ne peut être utilisé que pour s'authentifier auprès des clusters spécifiés dans cette liste.  
Type : tableau de chaînes  
Contraintes de longueur : 1 article minimum. Maximum de 20 articles.  
Obligatoire : oui

#### Exemples de commandes CLI
<a name="provisioned-cli-examples"></a>

**Exemple : obtenir un jeton autorisé pour un seul cluster**

```
aws redshift get-identity-center-auth-token \
    --cluster-ids my-redshift-cluster
```

**Exemple : obtenir un jeton autorisé pour plusieurs clusters**

```
aws redshift get-identity-center-auth-token \
    --cluster-ids my-cluster-1 my-cluster-2
```

### GetIdentityCenterAuthToken pour les groupes de travail sans serveur
<a name="serverless-identity-center-auth"></a>

Pour les groupes de travail Amazon Redshift Serverless, utilisez l'`GetIdentityCenterAuthToken`API du service Amazon Redshift Serverless pour générer un jeton autorisé.

#### Syntaxe de demande
<a name="serverless-request-syntax"></a>

```
{
   "WorkgroupNames": [ "string" ]
}
```

#### Paramètres de demande
<a name="serverless-request-parameters"></a>

WorkgroupNames  
Liste des noms de groupes de travail Amazon Redshift Serverless auxquels le jeton sera autorisé à accéder. Le jeton ne peut être utilisé que pour s'authentifier auprès des groupes de travail spécifiés dans cette liste.  
Type : tableau de chaînes  
Contraintes de longueur : 1 article minimum. Maximum de 20 articles.  
Obligatoire : oui

#### Exemples de commandes CLI
<a name="serverless-cli-examples"></a>

**Exemple : obtenir un jeton autorisé pour un seul groupe de travail**

```
aws redshift-serverless get-identity-center-auth-token \
    --workgroup-names my-workgroup
```

**Exemple : obtenir un jeton autorisé pour plusieurs groupes de travail**

```
aws redshift-serverless get-identity-center-auth-token \
    --workgroup-names workgroup-1 workgroup-2
```

### Syntaxe de réponse
<a name="identity-center-auth-response"></a>

Les deux APIs renvoient la même structure de réponse :

```
{
   "AuthorizedToken": "string",
   "ExpirationTime": "timestamp"
}
```

#### Paramètres de réponse
<a name="identity-center-response-parameters"></a>

AuthorizedToken  
Un jeton autorisé crypté qui contient les informations d'identité de l'utilisateur et la liste des clusters ou groupes de travail autorisés. Ce jeton doit être traité comme une donnée sensible.  
Type : Chaîne

ExpirationTime  
Date et heure d'expiration du jeton, en UTC. Les jetons sont valables 1 heure à compter de leur génération.  
Type : Timestamp

#### Exemple de réponse
<a name="identity-center-response-example"></a>

```
{
    "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...",
    "ExpirationTime": "2024-01-01T12:00:00Z"
}
```

## Intégration des pilotes
<a name="identity-center-auth-driver-integration"></a>

Les pilotes Amazon Redshift prennent en charge l'authentification Identity Center via l'utilisation directe de jetons :

### Utilisation directe des jetons
<a name="direct-token-usage"></a>

Après avoir appelé l'`GetIdentityCenterAuthToken`API pour obtenir un jeton, utilisez le type `IdpTokenAuthPlugin` avec le `SUBJECT_TOKEN` jeton.

Configuration de la connexion :

```
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin
token_type = SUBJECT_TOKEN
token = {encrypted_token_from_api_response}
```

Pour obtenir des informations détaillées sur les plug-ins d'authentification et la configuration des pilotes Identity Center, consultez la section [Connexion à un cluster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-to-cluster.html).

### Exemple de code Java
<a name="java-code-example"></a>

Exemple de code Java pour se connecter à l'aide de l'authentification Identity Center :

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

// Get token from GetIdentityCenterAuthToken API
String token = "your_encrypted_token_from_api_response";

// Configure connection properties
Properties props = new Properties();
props.setProperty("user", "your_username");
props.setProperty("plugin_name", "com.amazon.redshift.plugin.IdpTokenAuthPlugin");
props.setProperty("token_type", "SUBJECT_TOKEN");
props.setProperty("token", token);

// Connect to Redshift
String url = "jdbc:redshift://your-cluster.region.redshift.amazonaws.com:5439/your_database";
try (Connection conn = DriverManager.getConnection(url, props)) {
    // Use connection
    System.out.println("Connected successfully!");
} catch (SQLException e) {
    e.printStackTrace();
}
```

## Exigences de la politique IAM
<a name="identity-center-auth-iam-permissions"></a>

Pour utiliser l'authentification Identity Center avec Amazon Redshift, des autorisations IAM spécifiques sont requises en plus des autorisations standard requises pour la connexion aux clusters et groupes de travail Amazon Redshift.

### Autorisations d'API
<a name="identity-center-auth-iam-api-permissions"></a>

Pour les clusters provisionnés, votre session de rôle IAM améliorée doit avoir :
+ `redshift:GetIdentityCenterAuthToken`sur le cluster ARNs (format :`arn:aws:redshift:region:account:cluster:cluster-name`)

Pour les groupes de travail sans serveur, votre session de rôle IAM améliorée doit avoir :
+ `redshift-serverless:GetIdentityCenterAuthToken`sur un groupe de travail ARNs (format :`arn:aws:redshift-serverless:region:account:workgroup/workgroup-name`)

### Exemple de politiques IAM
<a name="identity-center-auth-iam-policy-examples"></a>

**Exemple de politique pour les clusters provisionnés :**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster"
            ]
        }
    ]
}
```

**Exemple de politique pour les groupes de travail sans serveur :**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup"
            ]
        }
    ]
}
```

**Exemple de politique pour plusieurs ressources :**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift:*:123456789012:cluster/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetIdentityCenterAuthToken"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:*:123456789012:workgroup/*"
            ]
        }
    ]
}
```

## Disponibilité par région
<a name="identity-center-auth-regional-availability"></a>

L'authentification Identity Center est disponible dans les AWS régions suivantes :
+ Régions commerciales : toutes les régions Amazon Redshift prises en charge
+ AWS GovCloud: Disponible en us-gov-east -1 et us-gov-west -1
+ Régions de Chine : Disponible dans cn-north-1 et cn-northwest-1

**Note**  
La disponibilité des fonctionnalités peut varier lors du déploiement initial.