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
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:GetIdentityCenterAuthTokensur les ARN des clusters (format :)arn:aws:redshift:region:account:cluster:cluster-name -
Pour les groupes de travail sans serveur :
redshift-serverless:GetIdentityCenterAuthTokensur 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 :
-
Pilotes JDBC : voir Installation et configuration du pilote JDBC Amazon Redshift version 2.x
-
Pilotes ODBC : voir Installation et configuration du pilote ODBC Amazon Redshift version 2.0
-
-
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 :
-
Votre application appelle l'
GetIdentityCenterAuthTokenAPI à l'aide d'informations d'identification améliorées qui contiennent des informations d'identité utilisateur intégrées. -
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.
-
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ô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.