Dans ce guide étape par étape, nous allons apprendre à configurer l’authentification SSO avec Redshift et AWS IAM Identity Center afin d’améliorer la sécurité et de faciliter l’accès des utilisateurs.

Redshift SSO.drawio Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 1

Sources Utilisées:

Dictionnaire des Termes:

TermeSignification
Compte Identity CenterLe compte où l’IAM Identity Center est configuré.
Compte RedshiftLe compte enfant du compte Identity Center qui contient le cluster Redshift auquel nous voulons nous connecter.
IDPFournisseur d’Identité

Qu’est-ce que Redshift?

AWS Redshift est un service d’entrepôt de données entièrement géré fourni par Amazon Web Services (AWS).
Il est conçu pour gérer des charges de travail d’analyse de données à grande échelle et permet aux organisations d’analyser de vastes quantités de données rapidement et de manière rentable.

Qu’est-ce que IAM Identity Center?

IAM Identity Center fournit un endroit où vous pouvez créer ou connecter des utilisateurs de la main-d’œuvre et gérer centralement leur accès à tous leurs comptes et applications AWS.
Vous pouvez utiliser des autorisations multi-comptes pour attribuer à vos utilisateurs de la main-d’œuvre l’accès aux comptes AWS.

Pourquoi SSO?

SSO réduit le nombre de surfaces d’attaque parce que les utilisateurs ne se connectent qu’une fois par jour et n’utilisent qu’un seul ensemble d’identifiants.
Réduire la connexion à un seul ensemble d’identifiants améliore la sécurité de l’entreprise. Lorsque les employés doivent utiliser des mots de passe distincts pour chaque application, ils ne le font généralement pas.

Prérequis

  1. IAM Identity Center préconfiguré → Commencer – AWS IAM Identity Center.
  2. Cluster Redshift préconfiguré avec un accès administratif.
  3. Utilisateur et mot de passe de la source d’identité (Okta, PingOne, etc.).
  4. JetBrains DataGrip installé (peut être en version gratuite).

Étape par Étape:

Configurer l’application Identity Center

Notre première étape sera de créer une nouvelle application AWS Identity Center dans le compte Identity Center pour être utilisée comme canal principal entre les utilisateurs et le cluster Redshift.

  1. Dans le panneau latéral IAM Identity Center, cliquez sur “Applications”.
    Screenshot 2566 07 02 at 15.25.46 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 2
  2. Dans le coin supérieur droit, cliquez sur “Ajouter une application”.
    Screenshot 2566 07 02 at 15.27.18 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 3
  3. Cochez “ajouter une application SAML 2.0 personnalisée” et cliquez sur “Suivant”.
    Screenshot 2566 07 02 at 15.28.44 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 4
  4. Définissez un nom d’affichage approprié, nous appellerons notre application “Redshift-ReadOnly”, car cette application sera utilisée pour obtenir un accès en lecture seule aux données du cluster.
    Screenshot 2566 07 02 at 15.32.25 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 5
  5. Téléchargez le fichier de métadonnées SAML Identity Center, nous l’utiliserons plus tard pour configurer notre application de compte Redshift.
    Screenshot 2566 07 02 at 15.33.39 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 6
  6. Copiez l’URL de connexion de l’application URL car nous en aurons besoin plus tard.
  7. Ensuite, nous configurerons le SAML application ACS (aka Assertion Consumer Service).
    En bref, ACS est l’emplacement où la réponse de l’application SAML sera envoyée.

    Comme nous utiliserons le AWS Redshift JDBC driver pour nous connecter à notre cluster Redshift, nous devrons définir l’ACS de l’application à http://localhost:7890/redshift/ – car le driver JDBC démarre un serveur écoutant sur le port 7890 par défaut.
    Screenshot 2566 07 02 at 15.56.40 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 7ab00f622 901e 48a6 af15 55b11fe407f4#media blob url=true&id=a1039895 cc77 4376 8887 687b0a94ffae&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 8
  8. Afin de restreindre l’assertion de l’application SAML uniquement à Redshift, nous configurerons le champ “Audience SAML de l’application” à urn:amazon:webservices:redshift.
    Screenshot 2566 07 02 at 15.58.17 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 9

Créer un Fournisseur d’Identité

Après avoir créé notre application Redshift-ReadOnly dans le compte Identity Center, nous devons configurer un fournisseur d’identité à utiliser par l’application Redshift-ReadOnly pour se connecter au cluster Redshift du compte Redshift.

  1. Dans le panneau latéral du tableau de bord IAM de votre compte Redshift, cliquez sur Fournisseurs d’Identité.
    Screenshot 2566 07 02 at 16.19.31 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 10
  2. Dans le coin supérieur droit, cliquez sur “Ajouter un fournisseur”.
    Screenshot 2566 07 02 at 16.21.05 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 11
  3. Remplissez les détails pour le nouveau IDP:
    1. Définissez le “Nom du fournisseur” sur Redshift-ReadOnly (comme notre application précédemment configurée).
    2. Téléchargez le fichier de métadonnées que nous avons téléchargé lors du processus de configuration de notre application IAM Identity Center.f2db2cb3 28d0 4578 ac63 f813a350a2d9#media blob url=true&id=af2a9aac ed5d 4c7c 8aea e91254cfdeaf&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 12 Cliquez sur “Ajouter un fournisseur” et terminez.
      Screenshot 2566 07 02 at 16.22.59 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 13
  4. Allez à la page de description de l’IDP et copiez l’ARN de l’IDP IDP ARN, nous l’utiliserons plus tard.
    Screenshot 2566 07 02 at 17.04.43 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 140a06764a c351 43f3 810a 15da912d7c05#media blob url=true&id=39497b0d 7a31 4add 8c83 107db8043f05&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 15

Créer un Rôle IAM & une Politique

Maintenant que nous avons créé le fournisseur d’identité à utiliser par notre application IAM Identity Center, nous pouvons créer le rôle qui sera utilisé pour se connecter au cluster Redshift lui-même.

  1. Dans le panneau latéral du tableau de bord IAM de votre compte Redshift, cliquez sur Rôles.
    Screenshot 2566 07 02 at 16.14.15 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 16
  2. Dans le coin supérieur droit, cliquez sur “Créer un Rôle”.
    Screenshot 2566 07 02 at 16.15.37 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 17
  3. Créez une entité de confiance de type fédération SAML 2.0 et définissez les éléments suivants:
    1. Définissez l’IDP sur l’IDP “Redshift-ReadOnly” que nous avons créé plus tôt.
    2. Cochez le bouton radio “Autoriser uniquement l’accès programmatique” et définissez:
      Attribut: “SAML:aud” → définissant quelle audience peut assumer ce rôle.
      Valeur: “http://localhost:7890/redshift/ → Définir l’audience sur notre serveur local de driver JDBC Redshift (comme expliqué dans la première section).
      Screenshot 2566 07 02 at 16.44.02 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 18
      Cliquez sur “Suivant”.
  4. Cliquez sur “Créer une politique” et un nouvel onglet s’ouvrira.5f413ee0 9082 48fe bbf9 1266e384f039#media blob url=true&id=f54050e8 48e9 4c67 8e16 34cb159b53b5&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 19
  5. Sélectionnez “JSON”.38e95090 ae9b 4366 9c1e 4c24cab89231#media blob url=true&id=75587102 9ee1 4ce6 abd5 c83d2c872050&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 20
  6. Dans le panneau de l’éditeur de politique, collez la déclaration de politique suivante et modifiez les valeurs suivantes dans le champ “Ressource” pour correspondre à la vôtre: <region>, <account>, <clusterName>.
    				
    					{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "redshift:CreateClusterUser",
                    "redshift:JoinGroup",
                    "redshift:GetClusterCredentials",
                    "redshift:ListSchemas",
                    "redshift:ListTables",
                    "redshift:ListDatabases",
                    "redshift:ExecuteQuery",
                    "redshift:FetchResults",
                    "redshift:CancelQuery",
                    "redshift:DescribeClusters",
                    "redshift:DescribeQuery",
                    "redshift:DescribeTable"
                ],
                "Resource": [
                    "arn:aws:redshift:<region>:<account>:cluster:<clusterName>",
                    "arn:aws:redshift:<region>:<account>:dbuser:<clusterName>/${redshift:DbUser}",
                    "arn:aws:redshift:<region>:<account>:dbname:<clusterName>/${redshift:DbName}",
                    "arn:aws:redshift:<region>:<account>:dbgroup:<clusterName>/bi_users_group",
                ]
            }
        ]
    }
    				
    			

  7. Nommez la politique “Redshift-ReadOnly-policy” et cliquez sur “Créer une politique”.638f1d27 23e5 4a2f 8351 3f13ebf6a7f1#media blob url=true&id=e6d9b9f7 ff16 4b5a 851e 162a99c4d39d&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 21
    Screenshot 2566 07 02 at 16.55.08 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 22
  8. Revenez à l’onglet d’origine où nous avons commencé à créer notre rôle IAM
    → cliquez sur actualiser → tapez « Redshift-ReadOnly-policy » dans la barre de recherche → cochez la politique « Redshift-ReadOnly-policy » → cliquez sur « Suivant ».
    Screenshot 2566 07 02 at 16.56.59 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 23
  9. Nommez le rôle « Redshift-ReadOnly-role » et cliquez sur « Créer un rôle » dans le coin inférieur droit.
    Screenshot 2566 07 02 at 16.59.54 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 24f0080f98 f453 40bb 83c7 24e81210a9f2#media blob url=true&id=7ece7e5c f65e 4144 9c4a e4856fa6e8db&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 25
  10. Maintenant que nous avons créé le rôle IAM, allez à sa page de description et copiez le ARN du rôle, nous l’utiliserons plus tard.
    Screenshot 2566 07 02 at 17.08.58 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 26

Configurer les attributs de l’application IAM Identity Center

Pour configurer notre application pour fonctionner avec Redshift, nous devons configurer certains attributs d’application qui lui indiqueront « comment se connecter » à celui-ci.

  1. Dans l’IAM Identity Center, allez au panneau Applications et choisissez l’application que nous avons créée précédemment.
    Screenshot 2566 07 02 at 17.21.15 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 27
  2. Attribuez les utilisateurs et les groupes auxquels vous souhaitez accorder des autorisations pour cette application → Attribuer l’accès des utilisateurs aux applications dans la console IAM Identity Center – AWS IAM Identity Center (successeur de AWS Single Sign-On).
    Screenshot 2566 07 02 at 17.25.48 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 28
  3. Cliquez sur « mappages d’attributs ».
    Screenshot 2566 07 02 at 17.27.54 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 29
  4. Définissez les attributs selon le tableau suivant et remplacez les <role_arn> & <idp_arn> espaces réservés par les ARN que vous avez copiés dans les étapes précédentes :
AttributValeurExplication
Sujet (attribut par défaut)${user:email}Le sujet utilisé.
https://aws.amazon.com/SAML/Attributes/RoleSessionName${user:email}Le nom de session créé contre le cluster.
https://redshift.amazon.com/SAML/Attributes/AutoCreatetrueConfigurer l’application pour créer automatiquement l’utilisateur Redshift lors de l’authentification.
https://aws.amazon.com/SAML/Attributes/Role,Le rôle IAM et l’IDP à utiliser pour se connecter à Redshift.
https://redshift.amazon.com/SAML/Attributes/DbUser${user:email}Le nom d’utilisateur de la base de données à créer.
https://redshift.amazon.com/SAML/Attributes/DbGroupsreadonlyLe groupe de base de données auquel attribuer le nouvel utilisateur créé.
Screenshot 2566 07 02 at 17.38.32 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 30

Cliquez sur « Enregistrer les modifications ».

Créer un groupe Redshift & Accorder des autorisations

À ce stade, nous allons configurer le readonly groupe Redshift (tel que défini dans les attributs de l’application à l’étape précédente) auquel chaque utilisateur sera attribué lors de la connexion via l’application.

  1. Connectez-vous à votre cluster Redshift avec un utilisateur privilégié (superutilisateur).
  2. Exécutez le script SQL suivant pour créer le groupe readonly et lui attribuer des read autorisations sur le schéma public (le schéma par défaut).
    				
    					create group readonly;
    grant usage on schema public to group readonly;
    grant select on all tables in schema public to group readonly;
    				
    			

Configurer la source de données du client DataGrip

:tada: Nous sommes tous prêts et enfin sur le point de récolter nos fruits! :tada:
Dans cette étape, nous allons configurer une source de données DataGrip qui sera utilisée comme connexion entre nous et le cluster Redshift.

  1. Ouvrez DataGrip et créez une nouvelle source de données Redshift.
    Screenshot 2566 07 02 at 17.52.46 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 31
  2. Un assistant de source de données s’ouvrira pour que vous puissiez configurer la connexion, définissez les attributs suivants :
    1. Nom : Redshift ReadOnly SSO.
    2. Hôte : votre point de terminaison du serveur Redshift.
    3. Utilisateur : votre email identifiant (sera utilisé comme utilisateur DB Redshift).
    4. Mot de passe : le mot de passe que vous avez configuré dans votre source d’identité (Okta, PingOne, etc.)
    5. Base de données : la base de données à laquelle vous souhaitez vous connecter.
    6. URL : l’url sera principalement configurée à ce stade (en raison du remplissage automatique de DataGrip), tout ce qu’il vous reste à faire est de changer le préfixe de l’url JDBC de jdbc:redshift:// à jdbc:redshift:iam://.
      Screenshot 2566 07 02 at 17.57.29 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 32
  3. Allez à l’onglet Advanced et configurez ces 3 attributs :
    1. nom_du_plugin : com.amazon.redshift.plugin.BrowserSamlCredentialsProvider – déjà défini, donc modifiez-le.
    2. idp_reponse_timeout : 60 – créez une nouvelle valeur.
    3. url_de_connexion : <votre url de connexion SAML d’application précédemment copiée> – créez une nouvelle valeur.
      Screenshot 2566 07 02 at 18.10.07 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 33
  4. En bas de l’assistant de configuration de la source de données, cliquez sur « tester la connexion ».
    Screenshot 2566 07 02 at 18.11.44 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 34938ff2bb 46c7 4cd9 9020 aa00b134d7b5#media blob url=true&id=ec78f4d0 c3c0 4743 8a1d e5568685c9e7&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 35
    Une fois cliqué, votre navigateur s’ouvrira et affichera l’écran suivant :
    Screenshot 2566 07 02 at 18.14.29 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 36
    Si tout est correctement configuré, vous devriez voir la fenêtre contextuelle suivante dans DataGrip :
    Screenshot 2566 07 02 at 18.14.34 Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 378b152b94 3cbd 465a a56f 6cfc8cec2c19#media blob url=true&id=ac42272d 34e4 46b6 9ec4 57583deb1983&collection=contentId Activation de l'authentification SSO Redshift avec AWS IAM Identity Center (Multi-Compte) 38
    Cliquez sur OK.

    C’est tout! Merci de votre lecture 🙂