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.
Azure
Vous pouvez utiliser Microsoft Azure AD en tant que fournisseur d'identité (IdP) pour accéder à votre cluster Amazon Redshift. Ce didacticiel vous montre comment vous pouvez 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 explique comment configurer une relation d’approbation.
Pour configurer Azure AD et votre AWS compte de manière à ce 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 de plus amples informations, veuillez consulter 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
AWSdans 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 ,123456789012correspond à un rôle IAM que vous avez créé etAzureSSOcorrespond au fournisseur IAM.AzureADProviderNom de la demande Value 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/
123456789012AzureSSO123456789012AzureADProviderhttps://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-1Remplacez votre AWS compte par
.123456789012Remplacez votre identifiant de cluster (ou
*pour tous les clusters) par.cluster-identifierRemplacez votre base de données (ou
*pour toutes les bases de données) par.devRemplacez
par l'identifiant unique de votre rôle IAM.AROAJ2UCCR6DPCEXAMPLERemplacez
par le domaine de messagerie de votre locataire ou de votre entreprise.example.comRemplacez
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
GetClusterCredentialsl'autorisation d'obtenir des informations d'identification temporaires pour le cluster spécifié. Dans cet exemple, la ressource estavec la base de donnéescluster-identifier, dans le comptedevet la région AWS123456789012. La clauseus-west-1${redshift:DbUser}autorise uniquement les utilisateurs qui correspondent à la valeurDbUserspé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, consultez la section Unique IDs dans le guide de l'utilisateur d'IAM.AROAJ2UCCR6DPCEXAMPLEVotre 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 SAMLRoleSessionNamesur 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.comdans l'exemple de fichier JSON pour correspondre àRoleSessionName.Si vous définissez
RoleSessionIdcomme étant uniquement le nom d'utilisateur de l'employé, supprimez@example.comdans l'exemple pour correspondre àRoleSessionName.Dans l'exemple de fichier JSON,
${redshift:DbUser}etRoleSessionNamesont 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.compour connecter l'utilisateur en vue d'accéder au cluster.
La deuxième section accorde l'autorisation de créer un nom
dbuserdans 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
dbgroupqu'un utilisateur peut rejoindre. Dans cet exemple de fichier JSON, un utilisateur peut rejoindre le groupemy_dbgroupdans 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:DescribeClustersobtenir 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:ListRolespour vérifier les rôles qu'un utilisateur peut assumer.
Étape 2 : configurer JDBC ou ODBC pour l’authentification aux services Azure
Résolution des problèmes
Pour résoudre les problèmes liés au plugin Browser Azure AD, tenez compte de ce qui suit.
-
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.