Connectez-vous à Redshift grâce à des sessions de rôle IAM améliorées - Amazon Redshift

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 .

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

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'GetIdentityCenterAuthTokenAPI 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

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.

    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.

  • Autorisations IAM : votre rôle ou utilisateur IAM doit être autorisé à 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 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 :

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 contenant des informations d'identité utilisateur intégrées.

  2. 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.

  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ôle 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 fournit 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 GetIdentityCenterAuthToken l'API 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 : 1 article minimum. 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 : 1 article minimum. 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 APIs renvoient la même structure de réponse :

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

Paramètres de réponse

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

{ "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 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.

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 en plus 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 avoir :

  • redshift:GetIdentityCenterAuthTokensur 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:GetIdentityCenterAuthTokensur un groupe de travail ARNs (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 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.