View a markdown version of this page

Connectez-vous à Redshift grâce aux sessions de Identity-enhanced rôles IAM - Amazon Redshift

Amazon Redshift ne prendra plus en charge l'utilisation des UDF Python après le 30 juin 2026. Nous allons commencer à l'appliquer par étapes. Pour plus d'informations sur les détails de la fin de vie de Python et des options de migration, consultez le billet de blog publié le 30 juin 2025.

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 aux sessions de Identity-enhanced rôles IAM

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 GetIdentityCenterAuthToken d'API pour générer un jeton autorisé contenant des informations d'identité utilisateur. Ces API sont disponibles à la fois pour les clusters provisionnés et pour les groupes de travail sans serveur. Les jetons permettent un accès simplifié par authentification unique aux bases de données Amazon Redshift à l'aide de votre configuration Identity Center existante.

Conditions préalables

Avant d'utiliser l'authentification Identity Center avec Amazon Redshift, assurez-vous de disposer des éléments suivants :

  • Configuration du centre d'identité : IAM Identity Center doit être configuré sur votre compte avec les identités des utilisateurs et les attributions d'applications appropriées. Pour obtenir des instructions de configuration, consultez la section Configuration d'IAM Identity Center.

    Important

    Si vous souhaitez vous connecter à Redshift, vous devez utiliser redshift:connect scope.

  • Identity-enhanced informations d'identification : 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ôles IAM à identité améliorée.

  • Autorisations IAM : votre rôle ou utilisateur IAM doit disposer des autorisations nécessaires pour appeler l'GetIdentityCenterAuthTokenAPI et accéder aux clusters ou groupes de travail spécifiés. Autorisations requises :

    • Pour les clusters provisionnés : redshift:GetIdentityCenterAuthToken sur les ARN des clusters (format :) arn:aws:redshift:region:account:cluster:cluster-name

    • Pour les groupes de travail sans serveur : redshift-serverless:GetIdentityCenterAuthToken sur les ARN des groupes de travail (format :) arn:aws:redshift-serverless:region:account:workgroup/workgroup-name

  • Pilotes compatibles : utilisez des pilotes JDBC ou ODBC Amazon Redshift qui prennent en charge les jetons autorisés par Identity Center :

  • Configuration réseau pour un routage VPC amélioré : si le routage VPC amélioré est activé, votre VPC doit être en mesure d'accéder aux services Identity Center. Les points de terminaison Interface VPC constituent la méthode recommandée pour fournir cette connectivité. Configurez cette connectivité avant que les utilisateurs ne se connectent. Pour plus d'informations sur les exigences de routage VPC améliorées pour Identity Center, consultezUtilisation AWS Authentification IAM Identity Center avec routage VPC amélioré.

Comment fonctionne l'authentification Identity Center

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

  1. Votre application appelle l'GetIdentityCenterAuthTokenAPI à l'aide d'informations d'identification améliorées qui contiennent des informations d'identité utilisateur intégrées.

  2. Amazon Redshift valide l'identité de l'Identity Center et génère un jeton autorisé chiffré limité à des clusters ou à des groupes de travail spécifiques. Consultez des exemples de politiques IAM.

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

  4. 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ôles IAM à identité améliorée.

Si vous appelez l'API sans informations d'identification améliorées, vous recevrez un UnsupportedOperationFault message d'erreur.

GetIdentityCenterAuthToken Opérations d'API

Amazon Redshift propose deux opérations d'GetIdentityCenterAuthTokenAPI 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

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

Syntaxe de demande

{ "ClusterIds": [ "string" ] }

Paramètres de demande

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 : minimum d'un article. Maximum de 20 articles.

Obligatoire : oui

Exemples de commandes CLI

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

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

Syntaxe de demande

{ "WorkgroupNames": [ "string" ] }

Paramètres de demande

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 : minimum d'un article. Maximum de 20 articles.

Obligatoire : oui

Exemples de commandes CLI

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

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

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

Paramètres de réponse

AuthorizedToken

Un jeton autorisé chiffré 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 pendant 1 heure à compter de leur génération.

Type : Timestamp

Exemple de réponse

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

Intégration des pilotes

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

Utilisation directe des jetons

Après avoir appelé l'GetIdentityCenterAuthTokenAPI pour obtenir un jeton, utilisez le type IdpTokenAuthPlugin with the SUBJECT_TOKEN token.

Configuration de la connexion :

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

Pour des informations détaillées sur les plug-ins d'authentification Identity Center et la configuration des pilotes, consultez la section Connexion à un cluster Amazon Redshift.

Exemple de code Java

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

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

Autorisations d'API

Pour les clusters provisionnés, votre session de rôle IAM améliorée doit disposer des éléments suivants :

  • redshift:GetIdentityCenterAuthTokensur les ARN des clusters (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 comporter les éléments suivants :

  • redshift-serverless:GetIdentityCenterAuthTokensur les ARN des groupes de travail (format :) arn:aws:redshift-serverless:region:account:workgroup/workgroup-name

Exemple de politiques IAM

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

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 dans us-gov-east-1 et us-gov-west-1

  • Régions de Chine : Disponible en cn-north-1 et cn-northwest-1

Note

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