Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. 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.
Azure
Vous pouvez utiliser Microsoft Azure AD en tant que fournisseur d'identité (IdP) pour accéder à votre cluster Amazon Redshift. Ce didacticiel explique comment utiliser Azure en tant que fournisseur d'identité (IdP) pour accéder à votre cluster Amazon Redshift.
Pour savoir comment fédérer l'accès à Amazon Redshift avec l'authentification unique Microsoft Azure AD, regardez la vidéo suivante.
Étape 1 : configurer Azure et votre AWS compte pour qu'ils se fassent mutuellement confiance
La procédure suivante décrit comment configurer une relation de confiance.
Pour configurer Azure AD et votre AWS compte afin qu'ils se fassent mutuellement confiance
-
Créez ou utilisez un cluster Amazon Redshift existant pour que vos utilisateurs Azure AD puissent se connecter. Pour configurer la connexion, certaines propriétés de ce cluster sont nécessaires, telles que l'identifiant de cluster. Pour plus d'informations, consultez Création d'un cluster.
-
Configurez un Azure Active Directory, des groupes et des utilisateurs utilisés AWS sur le portail Microsoft Azure.
-
Ajoutez Amazon Redshift en tant qu'application d'entreprise sur le portail Microsoft Azure à utiliser pour l'authentification unique à la AWS console et la connexion fédérée à Amazon Redshift. Choisissez Application Entreprise.
-
Choisissez +Nouvelle application. La page Ajouter une application apparaît.
-
Recherchez
AWS
dans le champ de recherche. -
Choisissez Amazon Web Services (AWS) et choisissez Ajouter. Cela crée l'application AWS .
-
Sous Gérer, choisissez Single Sign-On.
-
Choisissez SAML. La page d'authentification basée sur Amazon Web Services (AWS) | SAML apparaît.
-
Choisissez Oui pour passer à la page Configurer l'authentification unique avec SAML. Cette page affiche la liste des attributs préconfigurés associés à l'authentification unique.
-
Pour Configuration SAML de base, choisissez l'icône Modifier et choisissez Enregistrer.
-
Lorsque vous configurez plusieurs applications, indiquez une valeur d'identificateur. Par exemple, saisissez
. Notez qu'à partir de la deuxième application, utilisez ce format avec un signe # pour spécifier une valeur SPN unique.https://signin.aws.amazon.com/saml#2
-
Dans la section Attributs utilisateur et réclamations sélectionnez l'icône Modifier.
Par défaut, l'identifiant utilisateur unique (UID) RoleSessionName, le rôle et les SessionDuration revendications sont préconfigurés.
-
Choisissez + Ajouter une nouvelle réclamation pour ajouter une revendication pour les utilisateurs de la base de données.
Pour Nom, saisissez
DbUser
.Pour Espace de noms, saisissez
https://redshift.amazon.com/SAML/Attributes
.Pour Source, choisissez Attribut.
Pour Attribut source, choisissez user.userprincipalname. Ensuite, choisissez Enregistrer.
-
Choisissez + Ajouter une nouvelle réclamation pour laquelle ajouter une réclamation AutoCreate.
Pour Nom, saisissez
AutoCreate
.Pour Espace de noms, saisissez
https://redshift.amazon.com/SAML/Attributes
.Pour Source, choisissez Attribut.
Pour Attribut source, choisissez « true ». Ensuite, choisissez Enregistrer.
Ici,
correspond à votre compte AWS ,123456789012
correspond à un rôle IAM que vous avez créé etAzureSSO
correspond au fournisseur IAM.AzureADProvider
Nom de la demande Valeur Identifiant utilisateur unique (ID de nom)
user.userprincipalname
https://aws.amazon.com/SAML/Attributes/SessionDuration
900
https://aws.amazon.com/SAML/Attributes/Role
arn:aws:iam : :role/, arn:aws:iam : ::saml-provider/
123456789012
AzureSSO
123456789012
AzureADProvider
https://aws.amazon.com/SAML/Attributes/RoleSessionName
user.userprincipalname
https://redshift.amazon.com/SAML/Attributes/AutoCreate
"true"
https://redshift.amazon.com/SAML/Attributes/DbGroups
user.assignedroles
https://redshift.amazon.com/SAML/Attributes/DbUser
user.userprincipalname
-
Sous Enregistrement de l'application >
> Authentification, ajoutez Application mobile et de bureau. Spécifiez l'URL sous la forme http://localhost/redshift/.your-application-name
-
Dans la section Certificat de signature SAML, choisissez Télécharger pour télécharger et enregistrer le fichier XML de métadonnées de fédération à utiliser lorsque vous créez un fournisseur d'identité SAML IAM. Ce fichier est utilisé pour créer l'identité fédérée d'authentification unique.
-
Créez un fournisseur d'identité SAML IAM sur la console IAM. Le document de métadonnées que vous fournissez est le fichier XML de métadonnées de fédération que vous avez enregistré lorsque vous avez configuré Azure Enterprise Application. Pour des étapes détaillées, veuillez consulter la rubrique Création et gestion d'un fournisseur d'identité IAM (Console) dans le Guide de l'utilisateur IAM.
-
Créez un rôle IAM pour la fédération SAML 2.0 sur la console IAM. Pour des étapes détaillées, voir Création d'un rôle pour SAML dans le Guide de l'utilisateur IAM.
Créez une politique IAM que vous pouvez attacher au rôle IAM que vous avez créé pour la fédération SAML 2.0 sur la console IAM. Pour connaître la marche à suivre en détail, consultez Création de politiques IAM (console) dans le Guide de l'utilisateur IAM.
Modifiez la politique suivante (au format JSON) pour votre environnement :
Remplacez la AWS région de votre cluster par
.us-west-1
Remplacez votre AWS compte par
.123456789012
Remplacez votre identifiant de cluster (ou
*
pour tous les clusters) par
.cluster-identifier
Remplacez votre base de données (ou
*
pour toutes les bases de données) par
.dev
Remplacez
par l'identifiant unique de votre rôle IAM.AROAJ2UCCR6DPCEXAMPLE
Remplacez
par le domaine de messagerie de votre locataire ou de votre entreprise.example.com
Remplacez
par le groupe de base de données auquel vous comptez affecter l'utilisateurmy_dbgroup
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:
us-west-1
:123456789012
:dbname:cluster-identifier
/dev
", "arn:aws:redshift:us-west-1
:123456789012
:dbuser:cluster-identifier
/${redshift:DbUser}", "arn:aws:redshift:us-west-1
:123456789012
:cluster:cluster-identifier
" ], "Condition": { "StringEquals": { "aws:userid": "AROAJ2UCCR6DPCEXAMPLE
:${redshift:DbUser}@example.com
" } } }, { "Effect": "Allow", "Action": "redshift:CreateClusterUser", "Resource": "arn:aws:redshift:us-west-1
:123456789012
:dbuser:cluster-identifier
/${redshift:DbUser}" }, { "Effect": "Allow", "Action": "redshift:JoinGroup", "Resource": "arn:aws:redshift:us-west-1
:123456789012
:dbgroup:cluster-identifier
/my_dbgroup
" }, { "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "iam:ListRoles" ], "Resource": "*" } ] }Cette politique accorde les autorisations suivantes :
La première section accorde à l'opération d'API
GetClusterCredentials
l'autorisation d'obtenir des informations d'identification temporaires pour le cluster spécifié. Dans cet exemple, la ressource est
avec la base de donnéescluster-identifier
, dans le comptedev
et la région AWS123456789012
. La clauseus-west-1
${redshift:DbUser}
autorise uniquement les utilisateurs qui correspondent à la valeurDbUser
spécifiée dans Azure AD à se connecter.La clause de condition impose que seuls certains utilisateurs obtiennent des informations d'identification temporaires. Il s'agit des utilisateurs sous le rôle spécifié par l'ID unique de rôle
dans le compte IAM identifié par une adresse e-mail dans le domaine de messagerie de votre entreprise. Pour plus d'informations sur le caractère unique IDs, voir Unique IDs dans le guide de l'utilisateur d'IAM.AROAJ2UCCR6DPCEXAMPLE
Votre configuration avec votre IdP (dans ce cas, Azure AD) détermine la manière dont la clause de condition est écrite. Si l'adresse e-mail de votre employé est
johndoe@example.com
, commencez par définir${redshift:DbUser}
dans le champ correspondant au nom d'utilisateur de l'employéjohndoe
. Ensuite, pour que cette condition fonctionne, définissez ensuite le champ AWS SAMLRoleSessionName
sur le champ correspondant à l'e-mail de l'employéjohndoe@example.com
. Lorsque vous adoptez cette approche, tenez compte des éléments suivants :Si vous définissez
${redshift:DbUser}
comme étant l'e-mail de l'employé, supprimez@example.com
dans l'exemple de fichier JSON pour correspondre àRoleSessionName
.Si vous définissez
RoleSessionId
comme étant uniquement le nom d'utilisateur de l'employé, supprimez@example.com
dans l'exemple pour correspondre àRoleSessionName
.Dans l'exemple de fichier JSON,
${redshift:DbUser}
etRoleSessionName
sont tous deux définis sur l'e-mail de l'employé. Cet exemple de fichier JSON utilise le nom d'utilisateur de base de données Amazon Redshift avec@example.com
pour connecter l'utilisateur en vue d'accéder au cluster.
La deuxième section accorde l'autorisation de créer un nom
dbuser
dans le cluster spécifié. Dans cet exemple de fichier JSON, la création est limitée à${redshift:DbUser}
.La troisième section accorde l'autorisation de spécifier le
dbgroup
qu'un utilisateur peut rejoindre. Dans cet exemple de fichier JSON, un utilisateur peut rejoindre le groupemy_dbgroup
dans le cluster spécifié.La quatrième section accorde l'autorisation pour des actions que l'utilisateur peut effectuer sur toutes les ressources. Dans cet exemple JSON, il permet aux utilisateurs d'appeler pour
redshift:DescribeClusters
obtenir des informations sur le cluster, telles que le point de terminaison, AWS la région et le port du cluster. Il permet également aux utilisateurs d'appeleriam:ListRoles
pour vérifier les rôles qu'un utilisateur peut assumer.
Étape 2 : configurer JDBC ou ODBC pour l'authentification auprès d'Azure
Résolution des problèmes
Pour résoudre les problèmes liés au plug-in Browser Azure AD, tenez compte des points suivants.
-
Pour utiliser le plugin Browser Azure AD, vous devez définir l'URL de réponse spécifiée dans la demande pour qu'elle corresponde à l'URL de réponse configurée pour votre application. Accédez à la page Configurer l'authentification unique avec SAML sur le portail Microsoft Azure. Ensuite, vérifiez que l'URL de réponse est définie sur http://localhost/redshift/.
-
Si vous obtenez une erreur de locataire IdP, vérifiez que le nom du Locataire IdP correspond au nom de domaine que vous avez utilisé initialement pour configurer Active Directory dans Microsoft Azure.
Sous Windows, accédez à la section Paramètres de connexion de la page Configuration du DSN ODBC d'Amazon Redshift. Vérifiez ensuite que le nom de locataire de votre société configurée sur votre IdP (Azure) correspond au nom de domaine que vous avez initialement utilisé pour configurer Active Directory dans Microsoft Azure.
Sous macOS et Linux, recherchez le fichier odbc.ini. Vérifiez ensuite que le nom de locataire de votre société configurée sur votre IdP (Azure) correspond au nom de domaine que vous avez initialement utilisé pour configurer Active Directory dans Microsoft Azure.
-
Si vous recevez un message d'erreur indiquant que l'URL de réponse spécifiée dans la demande ne correspond pas à la réponse URLs configurée pour votre application, vérifiez que l'URL de redirection URIs est identique à l'URL de réponse.
Accédez à la page Enregistrement de l'application de votre application sur le portail Microsoft Azure. Vérifiez ensuite que la redirection URIs correspond à l'URL de réponse.
-
Si vous obtenez la réponse inattendue : erreur non autorisée, vérifiez que vous avez terminé la configuration des Applications mobiles et de bureau.
Accédez à la page Enregistrement de l'application de votre application sur le portail Microsoft Azure. Accédez ensuite à Authentification et vérifiez que vous avez configuré les applications mobiles et de bureau pour utiliser http://localhost/redshift/ comme redirection URIs.