Configurez le AWS CLI pour utiliser les informations d'identification du fournisseur de jetons IAM Identity Center avec actualisation automatique de l'authentification - 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.

Configurez le AWS CLI pour utiliser les informations d'identification du fournisseur de jetons IAM Identity Center avec actualisation automatique de l'authentification

Cette rubrique décrit comment configurer la configuration du fournisseur AWS CLI de jetons AWS IAM Identity Center (IAM Identity Center) pour authentifier les utilisateurs. À l'aide de cette configuration de fournisseur de jetons SSO, votre AWS SDK ou outil peut récupérer automatiquement des jetons d'authentification actualisés.

Lorsque vous utilisez IAM Identity Center, vous pouvez vous connecter à Active Directory, à un annuaire IAM Identity Center intégré ou à un autre IdP connecté à IAM Identity Center. Vous pouvez associer ces informations d'identification à un rôle AWS Identity and Access Management (IAM) pour exécuter des AWS CLI commandes.

Quel que soit l'IdP que vous utilisez, IAM Identity Center élimine ces distinctions. Par exemple, vous pouvez connecter Microsoft Azure AD comme décrit dans l'article de blog The Next Evolution in IAM Identity Center.

Note

Pour plus d'informations sur l'utilisation de l'authentification au porteur, qui n'utilise aucun identifiant de compte ni rôle, consultez la section Configuration pour utiliser l'authentification AWS CLI avec CodeCatalyst dans le guide de CodeCatalyst l'utilisateur Amazon.

Vous pouvez utiliser la configuration du fournisseur de jetons SSO pour actualiser automatiquement les jetons d'authentification selon les besoins de votre application et pour utiliser des options de durée de session prolongée. Vous pouvez le configurer de la manière suivante :

  • Automatiquement, à l'aide aws configure sso des aws configure sso-session commandes et. Les commandes suivantes sont des assistants qui vous guident dans la configuration de votre profil. Les sso-session informations sont les suivantes :

    • Utilisez-le aws configure ssopour créer ou modifier à la fois vos config profils et vos sso-session sections.

    • aws configure sso-sessionÀ utiliser pour créer ou modifier uniquement sso-session des sections.

  • Manuellement, en éditant le config fichier qui contient les profils nommés.

Prérequis

  • Installez le AWS CLI. Pour plus d’informations, consultez Installez ou mettez à jour la dernière version du AWS CLI.

  • Vous devez d'abord avoir accès à l'authentification SSO dans IAM Identity Center. Choisissez l'une des méthodes suivantes pour accéder à vos AWS informations d'identification.

Suivez les instructions de la section Mise en route du guide de AWS IAM Identity Center l'utilisateur. Ce processus active IAM Identity Center, crée un utilisateur administratif et ajoute un ensemble d'autorisations de moindre privilège approprié.

Note

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

Quittez le portail et reconnectez-vous pour voir vos options Comptes AWS et celles pour Administrator ouPowerUserAccess. Sélectionnez PowerUserAccess lorsque vous travaillez avec le SDK. Cela vous permet également de trouver des informations sur l'accès programmatique.

Connectez-vous AWS via le portail de votre fournisseur d'identité. Si votre administrateur cloud vous a accordé des autorisations PowerUserAccess (de développeur), vous voyez Comptes AWS celles auxquelles vous avez accès et votre ensemble d'autorisations. À côté du nom de votre ensemble d'autorisations, vous trouverez des options permettant d'accéder aux comptes manuellement ou par programmation à l'aide de cet ensemble d'autorisations.

Les implémentations personnalisées peuvent entraîner des expériences différentes, telles que des noms d'ensembles d'autorisations différents. Si vous ne savez pas quel ensemble d'autorisations utiliser, contactez votre équipe informatique pour obtenir de l'aide.

Connectez-vous AWS via le portail AWS d'accès. Si votre administrateur cloud vous a accordé des autorisations PowerUserAccess (de développeur), vous voyez Comptes AWS celles auxquelles vous avez accès et votre ensemble d'autorisations. À côté du nom de votre ensemble d'autorisations, vous trouverez des options permettant d'accéder aux comptes manuellement ou par programmation à l'aide de cet ensemble d'autorisations.

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

Configurez votre profil avec l'aws configure ssoassistant

Pour configurer à la fois un profil IAM Identity Center et sso-session votre AWS CLI
  1. Rassemblez les informations de votre centre d'identité IAM en effectuant les opérations suivantes :

    1. Dans votre portail AWS d'accès, sélectionnez l'ensemble d'autorisations que vous utilisez pour le développement, puis cliquez sur le lien Clés d'accès.

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

    3. Choisissez la méthode d'identification IAM Identity Center pour obtenir les SSO Region valeurs SSO Start URL et dont vous avez besoin pour exécuteraws configure sso.

    4. Pour plus d'informations sur la valeur d'étendue à enregistrer, consultez la section Étendue d'accès OAuth 2.0 dans le guide de l'utilisateur d'IAM Identity Center.

  2. Dans le terminal de votre choix, exécutez la aws configure sso commande et indiquez l'URL de démarrage de votre centre d'identité IAM et la AWS région qui héberge le répertoire du centre d'identité.

    $ 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
  3. Les AWS CLI tentatives d'ouverture de votre navigateur par défaut et de lancement du processus de connexion à votre compte IAM Identity Center.

    Attempting to automatically open the SSO authorization page in your default browser.

    S'il n'est AWS CLI pas possible d'ouvrir le navigateur, le message suivant apparaît avec des instructions sur la façon de démarrer manuellement le processus de connexion.

    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

    IAM Identity Center utilise le code pour associer la session IAM Identity Center à votre session en cours AWS CLI . La page du navigateur IAM Identity Center vous invite à vous connecter à l'aide de vos informations d'identification IAM Identity Center. Cela permet de récupérer et AWS CLI d'afficher les AWS comptes et les rôles que vous êtes autorisé à utiliser avec IAM Identity Center.

    Note

    Le processus de connexion peut vous demander d'autoriser l' AWS CLI accès à vos données. Étant donné que le AWS CLI est construit au-dessus du SDK pour Python, les messages d'autorisation peuvent contenir des variantes du botocore nom.

  4. AWS CLI Affiche les AWS comptes que vous pouvez utiliser. Si vous n'êtes autorisé à utiliser qu'un seul compte, celui-ci est automatiquement AWS CLI sélectionné pour vous et ignore l'invite. Les AWS comptes que vous pouvez utiliser sont déterminés par votre configuration utilisateur dans IAM Identity Center.

    There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (123456789011) ProductionAccount, production-account-admin@example.com (123456789022)

    Utilisez les touches fléchées pour sélectionner le compte que vous souhaitez utiliser. Le caractère « > » sur la gauche pointe vers le choix actuel. Appuyez sur ENTRÉE pour effectuer votre sélection.

  5. Cela AWS CLI confirme votre choix de compte et affiche les rôles IAM disponibles dans le compte sélectionné. Si le compte sélectionné ne répertorie qu'un seul rôle, il le AWS CLI sélectionne automatiquement et ignore l'invite. Les rôles que vous pouvez utiliser sont déterminés par votre configuration utilisateur dans IAM Identity Center.

    Using the account ID 123456789011 There are 2 roles available to you. > ReadOnly FullAccess

    <ENTER>Utilisez les touches fléchées pour sélectionner le rôle IAM que vous souhaitez utiliser, puis appuyez dessus.

  6. Spécifiez le format de sortie par défaut, le format par défaut Région AWS auquel envoyer les commandes, et fournissez un nom pour le profil afin de pouvoir référencer ce profil parmi tous ceux définis sur l'ordinateur local. Dans l'exemple ci-dessous, l'utilisateur entre une région par défaut, un format de sortie par défaut et le nom du profil. Si vous avez déjà une configuration existante, vous pouvez également <ENTER> appuyer sur cette touche pour sélectionner les valeurs par défaut affichées entre crochets. Le nom de profil suggéré est le numéro d'ID de compte suivi d'un trait de soulignement, lui-même suivi du nom du rôle.

    CLI default client Region [None]: us-west-2<ENTER> CLI default output format [None]: json<ENTER> CLI profile name [123456789011_ReadOnly]: my-dev-profile<ENTER>
    Note

    Si vous le spécifiez default comme nom de profil, ce profil devient celui utilisé chaque fois que vous exécutez une AWS CLI commande et que vous ne spécifiez pas de nom de profil.

  7. Un message final décrit la configuration de profil terminée.

    To use this profile, specify the profile name using --profile, as shown: aws s3 ls --profile my-dev-profile
  8. Cela entraîne la création de la sso-session section et du profil nommé ~/.aws/config qui ressemblent à ce qui suit :

    [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

    Vous pouvez désormais l'utiliser, sso-session ainsi que le profil, pour demander des informations d'identification actualisées. Utilisez la aws sso login commande pour demander et récupérer les informations d'identification nécessaires pour exécuter des commandes. Pour obtenir des instructions, veuillez consulter Utiliser un profil nommé IAM Identity Center .

Configurez uniquement votre sso-session section avec aws configure sso-session l'assistant

La aws configure sso-session commande met uniquement à jour les sso-session sections du ~/.aws/config fichier. Cette commande peut être utilisée pour créer ou mettre à jour vos sessions. Cela est utile si vous avez déjà des paramètres de configuration existants et que vous souhaitez créer une nouvelle configuration ou modifier une sso-session configuration existante.

Exécutez la aws configure sso-session commande et indiquez l'URL de démarrage de votre centre d'identité IAM et la AWS région qui héberge le répertoire du centre d'identité.

$ 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

Après avoir saisi vos informations, un message décrit la configuration complète du profil.

Completed configuring SSO session: my-sso Run the following to login and refresh access token for this session: aws sso login --sso-session my-sso
Note

Si vous êtes connecté au sso-session que vous mettez à jour, actualisez votre jeton en exécutant la aws sso login commande.

Configuration manuelle à l'aide du config fichier

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

Vous définissez une sso-session section et vous l'associez à un profil. sso_regionet sso_start_url doit être défini dans la sso-session section. Généralement, sso_account_id et sso_role_name doit être défini dans la profile section afin que le SDK puisse demander des informations d'identification SSO.

L'exemple suivant configure le SDK pour demander des informations d'identification SSO et 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 sso-session configurations sur 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, ils sso_account_id sso_role_name ne sont pas obligatoires pour tous les scénarios de configuration de jetons SSO. Si votre application utilise uniquement des AWS services qui prennent en charge l'authentification par porteur, les informations d' AWS identification traditionnelles ne sont pas nécessaires. L'authentification du porteur est un schéma d'authentification HTTP qui utilise des jetons de sécurité appelés jetons porteurs. Dans ce scénario, sso_account_id et sso_role_name ne sont pas obligatoires. Consultez le guide individuel de votre AWS service pour déterminer s'il prend en charge l'autorisation par jeton au porteur.

De plus, les étendues d'enregistrement peuvent être configurées dans le cadre d'unsso-session. Scope est un mécanisme d'OAuth 2.0 permettant de limiter l'accès d'une application au compte d'un utilisateur. Une application peut demander une ou plusieurs étendues, et le jeton d'accès délivré à l'application sera limité aux étendues accordées. Ces étendues définissent les autorisations demandées pour être autorisées pour le client OIDC enregistré et les jetons d'accès récupérés par le client. L'exemple suivant fournit un accès sso_registration_scopes pour répertorier les comptes/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 ~/.aws/sso/cache répertoire avec un nom de fichier basé sur le nom de session.