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:GetIdentityCenterAuthTokensur le cluster ARNs (format :arn:aws:redshift:region:account:cluster:cluster-name) -
Pour les groupes de travail sans serveur :
redshift-serverless:GetIdentityCenterAuthTokensur 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
-
Pilotes ODBC : voir Installation et configuration du pilote ODBC Amazon Redshift version 2.0
-
Comment fonctionne l'authentification Identity Center
L'authentification Identity Center pour Amazon Redshift utilise le flux de travail suivant :
-
Votre application appelle l'
GetIdentityCenterAuthTokenAPI à l'aide d'informations d'identification améliorées contenant des informations d'identité utilisateur intégrées. -
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.
-
Votre application utilise ce jeton pour se connecter au cluster ou au groupe de travail Amazon Redshift spécifié.
-
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.