Azure - Amazon Redshift

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

  2. Configurez un Azure Active Directory, des groupes et des utilisateurs utilisés AWS sur le portail Microsoft Azure.

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

  4. Choisissez +Nouvelle application. La page Ajouter une application apparaît.

  5. Recherchez AWS dans le champ de recherche.

  6. Choisissez Amazon Web Services (AWS) et choisissez Ajouter. Cela crée l'application AWS .

  7. Sous Gérer, choisissez Single Sign-On.

  8. Choisissez SAML. La page d'authentification basée sur Amazon Web Services (AWS) | SAML apparaît.

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

  10. Pour Configuration SAML de base, choisissez l'icône Modifier et choisissez Enregistrer.

  11. Lorsque vous configurez plusieurs applications, indiquez une valeur d'identificateur. Par exemple, saisissez https://signin.aws.amazon.com/saml#2. Notez qu'à partir de la deuxième application, utilisez ce format avec un signe # pour spécifier une valeur SPN unique.

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

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

  14. 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, 123456789012 correspond à votre compte AWS , AzureSSO correspond à un rôle IAM que vous avez créé et AzureADProvider correspond au fournisseur IAM.

    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

  15. Sous Enregistrement de l'application > your-application-name > Authentification, ajoutez Application mobile et de bureau. Spécifiez l'URL sous la forme http://localhost/redshift/.

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

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

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

  19. 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 parus-west-1.

    • Remplacez votre AWS compte par123456789012.

    • 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 AROAJ2UCCR6DPCEXAMPLE par l'identifiant unique de votre rôle IAM.

    • Remplacez example.com par le domaine de messagerie de votre locataire ou de votre entreprise.

    • Remplacez my_dbgroup par le groupe de base de données auquel vous comptez affecter l'utilisateur

    { "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 cluster-identifier avec la base de données dev, dans le compte 123456789012 et la région AWS us-west-1. La clause ${redshift:DbUser} autorise uniquement les utilisateurs qui correspondent à la valeur DbUser 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 AROAJ2UCCR6DPCEXAMPLE 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.

      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 SAML RoleSessionName 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} et RoleSessionName 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 groupe my_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'appeler iam: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

JDBC
Pour configurer JDBC pour l'authentification à Microsoft Azure AD
  • Configurez votre client de base de données pour qu'il se connecte à votre cluster via JDBC à l'aide de votre authentification unique Azure AD.

    Vous pouvez utiliser n'importe quel client qui utilise un pilote JDBC pour vous connecter à l'aide de l'authentification unique Azure AD ou utiliser un langage comme Java pour vous connecter à l'aide d'un script. Pour plus d'informations sur l'installation et la configuration, consultez Configuration d'une connexion pour le pilote JDBC version 2.x pour Amazon Redshift.

    Par exemple, vous pouvez utiliser SQLWorkbench/J en tant que client. Lorsque vous configurez SQLWorkbench /J, l'URL de votre base de données utilise le format suivant.

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    Si vous l'utilisez SQLWorkbench/J en tant que client, procédez comme suit :

    1. Démarrez SQL Workbench/J. Sur la page Select Connection Profile (Sélectionner un profil de connexion), ajoutez un Profile group (Groupe de profils) appelé AzureAuth.

    2. Pour Connection Profil (Profil de connexion), entrez Azure.

    3. Choisissez Manage Drivers (Gérer les pilotes), puis Amazon Redshift. Choisissez l'icône Open Folder (Ouvrir le dossier) en regard de Library (Bibliothèque), puis choisissez le fichier JDBC .jar approprié.

    4. Dans la page Select Connection Profile (Sélectionner un profil de connexion) ajoutez les informations suivantes au profil de connexion :

      • Pour User (Utilisateur), entrez votre nom d'utilisateur Microsoft Azure. Il s'agit du nom d'utilisateur du compte Microsoft Azure que vous utilisez pour l'authentification unique et qui a la permission du cluster que vous essayez d'utiliser pour vous authentifier.

      • Pour Password (Mot de passe), entrez votre mot de passe Microsoft Azure.

      • Pour Drivers (Pilotes), choisissez Amazon Redshift (com.amazon.redshift.jdbc.Driver).

      • Pour URL, entrez jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name.

    5. Choisissez Extended Properties (Propriétés étendues) pour ajouter des informations supplémentaires aux propriétés de connexion comme suit.

      Pour la configuration de l'authentification unique Azure AD, ajoutez des informations supplémentaires, comme suit :

      • Pour plugin_name, entrez com.amazon.redshift.plugin.AzureCredentialsProvider. Cette valeur spécifie au pilote d'utiliser l'authentification unique Azure AD comme méthode d'authentification.

      • Pour idp_tenant, entrez your-idp-tenant. Utilisé uniquement pour Microsoft Azure AD. Il s'agit du nom du locataire de votre entreprise configuré sur Azure AD. Cette valeur peut être le nom du locataire ou l'ID unique du locataire avec des traits d'union.

      • Pour client_secret, entrez your-azure-redshift-application-client-secret. Utilisé uniquement pour Microsoft Azure AD. Il s'agit du secret client de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure. Cela ne s'applique qu'au com.amazon.redshift.plugin. AzureCredentialsProviderplugin.

      • Pour client_id, entrez your-azure-redshift-application-client-id. Utilisé uniquement pour Microsoft Azure AD. Il s'agit de l'ID client (avec des traits d'union) de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure.

      Pour la configuration de l'authentification unique Azure AD avec MFA, ajoutez des informations supplémentaires aux propriétés de connexion, comme suit :

      • Pour plugin_name, entrez com.amazon.redshift.plugin.BrowserAzureCredentialsProvider. Cette valeur spécifie au pilote d'utiliser l'authentification unique Azure AD avec MFA comme méthode d'authentification.

      • Pour idp_tenant, entrez your-idp-tenant. Utilisé uniquement pour Microsoft Azure AD. Il s'agit du nom du locataire de votre entreprise configuré sur Azure AD. Cette valeur peut être le nom du locataire ou l'ID unique du locataire avec des traits d'union.

      • Pour client_id, entrez your-azure-redshift-application-client-id. This option is used only for Microsoft Azure AD. Il s'agit de l'ID client (avec des traits d'union) de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure AD avec MFA.

      • Pour listen_port, entrez your-listen-port. C'est le port que le serveur local écoute. La valeur par défaut est 7890.

      • Pour idp_response_timeout, entrez the-number-of-seconds. Il s'agit du nombre de secondes à attendre avant l'expiration lorsque le serveur IdP renvoie une réponse. Le nombre minimum de secondes doit être de 10. Si l’établissement de la connexion dépasse ce seuil, la connexion est abandonnée.

ODBC
Pour configurer ODBC pour l'authentification à Microsoft Azure AD
  • Configurez votre client de base de données pour qu'il se connecte à votre cluster via ODBC à l'aide de votre authentification unique Azure AD.

    Amazon Redshift fournit des pilotes ODBC pour les systèmes d'exploitation Linux, Windows et macOS. Avant d'installer un pilote ODBC, déterminez si votre outil client SQL est en 32 bits ou en 64 bits. Installez le pilote ODBC qui correspond aux exigences de votre outil client SQL.

    Sous Windows, dans la page Amazon Redshift ODBC Driver DSN Setup (Configuration DSN du pilote ODBC Amazon Redshift), sous Connection Settings (Paramètres de connexion), entrez les informations suivantes :

    • Pour Data Source Name (Nom de la source de données), entrez your-DSN. Cela indique le nom de la source de données utilisé comme nom de profil ODBC.

    • Pour Auth type (Type d'authentification) de la configuration d'authentification unique Azure AD, choisissez Identity Provider: Azure AD. Il s'agit de la méthode d'authentification utilisée par le pilote ODBC pour s'authentifier à l'aide de l'authentification unique Azure.

    • Pour Auth type (Type d'authentification) de la configuration d'authentification unique Azure AD avec MFA, choisissez Identity Provider: Browser Azure AD. Il s'agit de la méthode d'authentification utilisée par le pilote ODBC pour s'authentifier à l'aide de l'authentification unique Azure avec MFA.

    • Pour Cluster ID (ID de cluster), entrez your-cluster-identifier.

    • Pour Region (Région), entrez your-cluster-region.

    • Pour Database (Base de données), entrez your-database-name.

    • Pour Utilisateur, entrez your-azure-username. Il s'agit du nom d'utilisateur du compte Microsoft Azure que vous utilisez pour l'authentification unique et qui a la permission du cluster que vous essayez d'utiliser pour vous authentifier. Utiliser cette option uniquement lorsque Type d'authentification est Fournisseur d'identité : Azure AD.

    • Pour Mot de passe, entrez your-azure-password. Utiliser cette option uniquement lorsque Type d'authentification est Fournisseur d'identité : Azure AD.

    • Pour IdP Tenant (Locataire IdP), entrez your-idp-tenant. Il s'agit du nom du locataire de votre entreprise configuré sur votre IdP (Azure). Cette valeur peut être le nom du locataire ou l'ID unique du locataire avec des traits d'union.

    • Pour Azure Client Secret (Secret client Azure), entrez your-azure-redshift-application-client-secret. Il s'agit du secret client de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure.

    • Pour Azure Client ID (ID client Azure), entrez your-azure-redshift-application-client-id. Il s'agit de l'ID client (avec des traits d'union) de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure.

    • Pour Port d'écoute, entrez your-listen-port. Il s'agit du port d'écoute par défaut que le serveur local écoute. La valeur par défaut est 7890. Cela s'applique uniquement au plugin Navigateur Azure AD.

    • Pour Délai de réponse, entrez the-number-of-seconds. Il s'agit du nombre de secondes à attendre avant l'expiration lorsque le serveur IdP renvoie une réponse. Le nombre minimum de secondes doit être de 10. Si l’établissement de la connexion dépasse ce seuil, la connexion est abandonnée. Cette option s'applique uniquement au plugin du navigateur Azure AD.

    Sous macOS et Linux, modifiez le fichier odbc.ini comme suit :

    Note

    Toutes les entrées sont insensibles à la casse.

    • Pour clusterid, entrez your-cluster-identifier. Il s'agit du nom du cluster Amazon Redshift qui a été créé.

    • Pour region (région), entrez your-cluster-region. Il s'agit de la AWS région du cluster Amazon Redshift créé.

    • Pour database (base de données), entrez your-database-name. Il s'agit du nom de la base de données à laquelle vous essayez d'accéder sur le cluster Amazon Redshift.

    • Pour locale (paramètres régionaux), entrez en-us. Il s'agit de la langue dans laquelle les messages d'erreur s'affichent.

    • Pour iam, entrez 1. Cette valeur spécifie au pilote de s'authentifier à l'aide des informations d'identification IAM.

    • Pour plugin_name de la configuration d'authentification unique Azure AD, entrez AzureAD. Cela spécifie au pilote d'utiliser l'authentification unique Azure comme méthode d'authentification.

    • Pour plugin_name de la configuration d'authentification unique Azure AD avec MFA, entrez BrowserAzureAD. Cela spécifie au pilote d'utiliser l'authentification unique Azure avec MFA comme méthode d'authentification.

    • Pour uid, entrez your-azure-username. Il s'agit du nom d'utilisateur du compte Microsoft Azure que vous utilisez pour l'authentification unique qui a l'autorisation sur le cluster sur lequel vous essayez de vous authentifier. Utilisez ceci uniquement lorsque plugin_name est AzureAD.

    • Pour pwd, entrez your-azure-password. Utilisez ceci uniquement lorsque plugin_name est AzureAD.

    • Pour idp_tenant, entrez your-idp-tenant. Il s'agit du nom du locataire de votre entreprise configuré sur votre IdP (Azure). Cette valeur peut être le nom du locataire ou l'ID unique du locataire avec des traits d'union.

    • Pour client_secret, entrez your-azure-redshift-application-client-secret. Il s'agit du secret client de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure.

    • Pour client_id, entrez your-azure-redshift-application-client-id. Il s'agit de l'ID client (avec des traits d'union) de l'application Amazon Redshift que vous avez créé lors de la définition de votre configuration d'authentification unique Azure.

    • Pour listen_port, entrez your-listen-port. C'est le port que le serveur local écoute. La valeur par défaut est 7890. Cela s'applique au plugin Navigateur Azure AD.

    • Pour idp_response_timeout, entrez the-number-of-seconds. Il s'agit de la période spécifiée en secondes pour attendre la réponse d'Azure. Cette option s'applique au plugin du navigateur Azure AD.

    Sous mac OS et Linux, modifiez également les paramètres de profil pour ajouter les exportations suivantes.

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini

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.