Configuration de l’authentification IAM Identity Center à l’aide de l’AWS CLI - AWS Command Line Interface

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.

Configuration de l’authentification IAM Identity Center à l’aide de l’AWS CLI

Cette rubrique fournit des instructions sur la façon de configurer l’AWS CLI avec AWS IAM Identity Center (IAM Identity Center) pour récupérer les informations d’identification permettant d’exécuter les commandes de l’AWS CLI. Il existe principalement deux méthodes pour authentifier les utilisateurs auprès d’IAM Identity Center afin d’obtenir les informations d’identification permettant d’exécuter les commandes de l’AWS CLI à l’aide du fichier config :

  • (Recommandé) Configuration du fournisseur de jetons SSO.

  • Configuration non actualisable héritée.

Pour plus d’informations sur l’utilisation de l’authentification par jeton de porteur, qui n’utilise aucun ID de compte ni rôle, consultez Configuration pour l’utilisation de l’AWS CLI avec CodeCatalyst dans le Guide de l’utilisateur Amazon CodeCatalyst.

Note

Pour obtenir un processus guidé d’utilisation d’IAM Identity Center avec des commandes de l’AWS CLI, consultez Didacticiel : utilisation d’IAM Identity Center pour exécuter des commandes Amazon S3 dans l’AWS CLI.

Rubriques

Prérequis

Suivez les instructions de Mise en route dans le Guide de l’utilisateur AWS IAM Identity Center. Ce processus active IAM Identity Center, crée un utilisateur administratif et ajoute un jeu d’autorisations de moindre privilège approprié.

Note

Créez un jeu d’autorisations qui applique les autorisations de moindre privilège. Nous vous recommandons d’utiliser le jeu d’autorisations PowerUserAccess prédéfini, sauf si votre employeur a créé un jeu d’autorisations personnalisé à cette fin.

Quittez le portail et reconnectez-vous pour voir vos Comptes AWS, les informations d’accès par programmation et les options pour Administrator ou PowerUserAccess. Sélectionnez PowerUserAccess lorsque vous utilisez le kit SDK.

Connectez-vous à AWS via le portail de votre fournisseur d’identité. Si votre administrateur cloud vous a accordé des autorisations PowerUserAccess (développeur), vous pouvez voir les Comptes AWS auxquels vous avez accès et votre jeu d’autorisations. En regard du nom de votre jeu d’autorisations, vous pouvez voir des options permettant d’accéder aux comptes manuellement ou par programmation à l’aide de ce jeu d’autorisations.

Les implémentations personnalisées peuvent entraîner des expériences différentes, telles que des noms de jeux d’autorisations différents. Si vous avez des doutes sur le jeu d’autorisations à utiliser, contactez votre équipe informatique pour obtenir de l’aide.

Connectez-vous à AWS via votre portail d’accès AWS. Si votre administrateur cloud vous a accordé des autorisations PowerUserAccess (développeur), vous pouvez voir les Comptes AWS auxquels vous avez accès et votre jeu d’autorisations. En regard du nom de votre jeu d’autorisations, vous pouvez voir des options permettant d’accéder aux comptes manuellement ou par programmation à l’aide de ce jeu d’autorisations.

Contactez votre équipe informatique pour obtenir de l’aide.

Dès que vous disposez d’un accès à IAM Identity Center, recueillez les informations IAM Identity Center en procédant comme suit :

  1. Recueillez les valeurs SSO Start URL et SSO Region dont vous avez besoin pour exécuter aws configure sso

    1. Dans votre portail d’accès AWS, sélectionnez le jeu d’autorisations que vous utilisez pour le développement, puis sélectionnez le lien Clés d’accès.

    2. Dans la boîte de dialogue Obtenir des informations d’identification, choisissez l’onglet correspondant à votre système d’exploitation.

    3. Choisissez la méthode Informations d’identification IAM Identity Center pour obtenir les valeurs SSO Start URL et SSO Region.

  2. À compter de la version 2.22.0, vous pouvez également utiliser l’URL de l’émetteur au lieu de l’URL de démarrage. L’URL de l’émetteur se trouve dans la console AWS IAM Identity Center à l’un des emplacements suivants :

    • Sur la page Tableau de bord, l’URL de l’émetteur se trouve dans le récapitulatif des paramètres.

    • Sur la page Paramètres, l’URL de l’émetteur se trouve dans les paramètres de la source d’identité.

  3. Pour plus d’informations sur la valeur des portées à enregistrer, consultez Portées des accès OAuth 2.0 dans le Guide de l’utilisateur IAM Identity Center.

Configuration de votre profil à l’aide de l’assistant aws configure sso

Pour configurer un profil IAM Identity Center pour votre AWS CLI :
  1. Dans votre terminal préféré, exécutez la commande aws configure sso.

    (Recommended) IAM Identity Center

    Créez un nom de session, indiquez l’URL de démarrage ou l’URL de l’émetteur d’IAM Identity Center, la Région AWS qui héberge l’annuaire IAM Identity Center, ainsi que la portée d’enregistrement.

    $ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

    L’autorisation PKCE (Proof Key for Code Exchange) est utilisée par défaut pour l’AWS CLI à compter de la version 2.22.0 et elle doit être utilisée sur les appareils disposant d’un navigateur. Pour continuer à utiliser l’autorisation d’appareil, ajoutez l’option --use-device-code.

    $ aws configure sso --use-device-code
    Legacy IAM Identity Center

    Ignorez le nom de session, puis indiquez l’URL de démarrage d’IAM Identity Center et la région AWS qui héberge l’annuaire Identity Center.

    $ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1
  2. L’AWS CLI essaie d’ouvrir votre navigateur par défaut pour le processus de connexion de votre compte IAM Identity Center. Ce processus peut vous inviter à autoriser l’AWS CLI à accéder à vos données. Étant donné que l’AWS CLI repose sur le kit SDK pour Python, les messages d’autorisation peuvent contenir des variantes du nom botocore.

    • Si l’AWS CLI ne peut pas ouvrir le navigateur, les instructions pour démarrer manuellement le processus de connexion s’affichent en fonction du type d’autorisation que vous utilisez.

      PKCE authorization

      L’autorisation PKCE (Proof Key for Code Exchange) est utilisée par défaut pour l’AWS CLI à compter de la version 2.22.0. L’URL affichée est une URL unique commençant par : https://oidc.us-east-1.amazonaws.com/authorize

      Les URL d’autorisation PKCE doivent être ouvertes sur le même appareil que celui auquel vous vous connectez et elles doivent être utilisées pour un appareil doté d’un navigateur.

      Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
      Device authorization

      L’autorisation d’appareil OAuth 2.0 est utilisée par l’AWS CLI dans les versions antérieures à 2.22.0. Vous pouvez activer cette méthode sur les versions plus récentes à l’aide de l’option --use-device-code.

      Il n’est pas nécessaire que les URL d’autorisation d’appareil soient ouvertes sur le même appareil que celui auquel vous vous connectez et elles peuvent être utilisées pour un appareil doté ou non d’un navigateur.

      If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451
  3. Sélectionnez le compte AWS à utiliser dans la liste qui s’affiche. Si vous n’êtes autorisé à utiliser qu’un seul compte, l’AWS CLI sélectionne automatiquement ce compte et ignore l’invite.

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)
  4. Sélectionnez le rôle IAM à utiliser dans la liste qui s’affiche. Si un seul rôle est disponible, l’AWS CLI sélectionne automatiquement ce rôle et ignore l’invite.

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess
  5. Spécifiez le format de sortie par défaut, la Région AWS par défaut à laquelle envoyer les commandes, ainsi qu’un nom pour le profil. Si vous spécifiez default comme nom de profil, ce profil devient le profil par défaut utilisé. Dans l’exemple suivant, l’utilisateur entre une région par défaut, un format de sortie par défaut et le nom du profil.

    Default client Region [None]: us-west-2<ENTER> CLI default output format (json if not specified) [None]: json<ENTER> Profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
  6. Un message final décrit la configuration de profil terminée. Vous pouvez désormais utiliser ce profil pour demander des informations d’identification. Utilisez la commande aws sso login pour demander et extraire les informations d’identification temporaires nécessaires à l’exécution des commandes. Pour obtenir des instructions, consultez Connexion à une session IAM Identity Center.

Ces étapes aboutissent à la création de la section sso-session et du profil nommé dans le fichier config qui se présente comme suit :

IAM Identity Center
[profile my-dev-profile] sso_session = my-sso sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
Legacy IAM Identity Center
[profile my-dev-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 123456789011 sso_role_name = readOnly region = us-west-2 output = json

Configuration uniquement de votre section sso-session à l’aide de l’assistant aws configure sso-session

Note

Cette configuration n’est pas compatible avec IAM Identity Center hérité.

La commande aws configure sso-session met à jour les sections sso-session dans le fichier ~/.aws/config. Exécutez la commande aws configure sso-session et indiquez l’URL de démarrage ou l’URL de l’émetteur d’IAM Identity Center, ainsi que la région AWS qui héberge l’annuaire IAM Identity Center.

$ aws configure sso-session SSO session name: my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]: us-east-1 SSO registration scopes [None]: sso:account:access

Configuration manuelle à l’aide du fichier config

Les informations de configuration d’IAM Identity Center sont stockées dans le fichier config et elles peuvent être modifiées à l’aide d’un éditeur de texte. Pour ajouter manuellement la prise en charge d’IAM Identity Center dans un profil nommé, vous devez ajouter des clés et des valeurs au fichier config.

La section sso-session du fichier config est utilisée pour regrouper les variables de configuration permettant d’acquérir des jetons d’accès SSO, lesquels peuvent ensuite être utilisés pour acquérir des informations d’identification AWS. Les paramètres suivants sont utilisés :

Vous définissez une section sso-session et vous l’associez à un profil. Les paramètres sso_region et sso_start_url doivent être définis dans la section sso-session. Généralement, sso_account_id et sso_role_name doivent être définis dans la section profile afin que le kit SDK puisse demander des informations d’identification SSO.

L’exemple suivant configure le kit SDK pour demander des informations d’identification SSO et il prend en charge l’actualisation automatique des jetons :

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

Cela permet également de réutiliser les configurations sso-session dans plusieurs profils :

[profile dev] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole [profile prod] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole2 [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start

Cependant, sso_account_id et sso_role_name ne sont pas obligatoires pour tous les scénarios de configuration de jetons SSO. Si votre application utilise uniquement des services AWS qui prennent en charge l’authentification par jeton de porteur, les informations d’identification AWS traditionnelles ne sont pas nécessaires. L’authentification par jeton de porteur est un schéma d’authentification HTTP qui utilise des jetons de sécurité appelés jetons de porteur. Dans ce scénario, sso_account_id et sso_role_name ne sont pas obligatoires. Consultez le guide individuel de votre service AWS pour déterminer s’il prend en charge l’autorisation par jeton de porteur.

De plus, les portées d’enregistrement peuvent être configurées dans le cadre d’une sso-session. La portée est un mécanisme OAuth 2.0 permettant de limiter l’accès d’une application au compte d’un utilisateur. Une application peut demander une ou plusieurs portées, et le jeton d’accès émis pour l’application sera limité aux portées accordées. Ces portées définissent les autorisations demandées à accorder au client OIDC enregistré ainsi que les jetons d’accès que ce client obtient. L’exemple suivant définit sso_registration_scopes afin de fournir un accès permettant de répertorier les comptes et les rôles :

[sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access

Le jeton d’authentification est mis en cache sur le disque sous le répertoire sso/cache avec un nom de fichier basé sur le nom de session.

Note

L’actualisation automatique des jetons n’est pas prise en charge avec la configuration non actualisable héritée. Nous vous recommandons d’utiliser la configuration de jeton SSO.

Pour ajouter manuellement la prise en charge d’IAM Identity Center dans un profil nommé, vous devez ajouter les clés et valeurs suivantes à la définition de profil dans le fichier config.

Vous pouvez inclure toutes les autres clés et valeurs valides dans le fichier .aws/config. L’exemple suivant est un profil IAM Identity Center :

[profile my-sso-profile] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-west-2 sso_account_id = 111122223333 sso_role_name = SSOReadOnlyRole region = us-west-2 output = json

Pour exécuter des commandes, vous devez d’abord utiliser Connexion à une session IAM Identity Center afin de demander et d’obtenir vos informations d’identification temporaires.

Pour plus d’informations sur les fichiers config et credentials, consultez Paramètres des fichiers de configuration et d’informations d’identification dans l’ AWS CLI.

Connexion à une session IAM Identity Center

Note

Le processus de connexion peut vous inviter à autoriser l’AWS CLI à accéder à vos données. Étant donné que l’AWS CLI repose sur le kit SDK pour Python, les messages d’autorisation peuvent contenir des variantes du nom botocore.

Pour récupérer et mettre en cache un jeu d’informations d’identification IAM Identity Center, exécutez la commande suivante pour l’AWS CLI afin d’ouvrir votre navigateur par défaut et de vérifier votre connexion à IAM Identity Center.

$ aws sso login --profile my-dev-profile SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start

Les informations d’identification de votre session IAM Identity Center sont mises en cache et l’AWS CLI les utilise pour d’extraire en toute sécurité les informations d’identification AWS pour le rôle IAM spécifié dans le profil.

Si l’AWS CLI ne parvient pas à ouvrir votre navigateur, les instructions pour démarrer manuellement le processus de connexion s’affichent en fonction du type d’autorisation que vous utilisez.

PKCE authorization

L’autorisation PKCE (Proof Key for Code Exchange) est utilisée par défaut pour l’AWS CLI à compter de la version 2.22.0. L’URL affichée est une URL unique commençant par : https://oidc.us-east-1.amazonaws.com/authorize

Les URL d’autorisation PKCE doivent être ouvertes sur le même appareil que celui auquel vous vous connectez et elles doivent être utilisées pour un appareil doté d’un navigateur.

Attempting to automatically open the SSO authorization page in your default browser. If the browser does not open or you wish to use a different device to authorize the request, open the following URL: https://oidc.us-east-1.amazonaws.com/authorize?<abbreviated>
Device authorization

L’autorisation d’appareil OAuth 2.0 est utilisée par l’AWS CLI dans les versions antérieures à 2.22.0. Vous pouvez activer cette méthode sur les versions plus récentes à l’aide de l’option --use-device-code.

Il n’est pas nécessaire que les URL d’autorisation d’appareil soient ouvertes sur le même appareil que celui auquel vous vous connectez et elles peuvent être utilisées pour un appareil doté ou non d’un navigateur.

If the browser does not open or you wish to use a different device to authorize this request, open the following URL: https://device.sso.us-west-2.amazonaws.com/ Then enter the code: QCFK-N451

Vous pouvez également spécifier le profil sso-session à utiliser lors de la connexion à l’aide du paramètre --sso-session de la commande aws sso login. L’option sso-session n’est pas disponible pour IAM Identity Center hérité.

$ aws sso login --sso-session my-dev-session

À compter de la version 2.22.0, l’autorisation PKCE est la valeur par défaut. Pour utiliser l’autorisation d’appareil pour vous connecter, ajoutez l’option --use-device-code.

$ aws sso login --profile my-dev-profile --use-device-code

Le jeton d’authentification est mis en cache sur le disque sous le répertoire ~/.aws/sso/cache avec un nom de fichier basé sur la valeur sso_start_url.

Exécution d’une commande avec votre profil IAM Identity Center

Une fois connecté, vous pouvez utiliser vos informations d’identification pour invoquer des commandes AWS CLI avec le profil nommé associé. L’exemple suivant montre une commande utilisant un profil :

$ aws sts get-caller-identity --profile my-dev-profile

Tant que vous êtes connecté à IAM Identity Center et que ces informations d’identification mises en cache n’ont pas expiré, l’AWS CLI renouvelle automatiquement les informations d’identification AWS arrivées à expiration, si nécessaire. Toutefois, si vos informations d’identification IAM Identity Center expirent, vous devez les renouveler explicitement en vous connectant à nouveau à votre compte IAM Identity Center.

Déconnexion de vos sessions IAM Identity Center

Lorsque vous avez terminé d’utiliser votre profil IAM Identity Center, vous pouvez laisser vos informations d’identification expirer ou exécuter la commande suivante pour supprimer vos informations d’identification mises en cache.

$ aws sso logout Successfully signed out of all SSO profiles.

Résolution des problèmes

Si vous rencontrez des problèmes lors de l’utilisation de l’AWS CLI, consultez Résolution des erreurs liées au AWS CLI afin de connaître les étapes de dépannage.

Ressources connexes

Les ressources supplémentaires sont les suivantes.