

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.

# Utilisation et outils d'authentification AWS SDKs et d'accès
<a name="access"></a>

Lorsque vous développez une application AWS SDK ou que vous utilisez AWS des outils à utiliser Services AWS, vous devez définir la manière dont votre code ou outil s'authentifie. AWS Vous pouvez configurer l'accès programmatique aux AWS ressources de différentes manières, en fonction de l'environnement dans lequel le code s'exécute et de l' AWS accès dont vous disposez. 

Les options ci-dessous font partie de la [chaîne des fournisseurs d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain). Cela signifie qu'en configurant votre partage AWS `config` et vos `credentials` fichiers en conséquence, votre AWS SDK ou outil découvrira et utilisera automatiquement cette méthode d'authentification.

## Choisissez une méthode pour authentifier le code de votre application
<a name="authDecisionTree"></a>

Choisissez une méthode pour authentifier les appels effectués AWS par votre application.

### Exécutez-vous du code INSIDE an Service AWS (tel qu'Amazon EC2, Lambda, Amazon ECS, Amazon EKS) ? CodeBuild
<a name="a"></a>

Si votre code continue à s'exécuter AWS, les informations d'identification peuvent être automatiquement mises à la disposition de votre application. Par exemple, si votre application est hébergée sur Amazon Elastic Compute Cloud et qu'un rôle IAM est associé à cette ressource, les informations d'identification sont automatiquement mises à la disposition de votre application. De même, si vous utilisez des conteneurs Amazon ECS ou Amazon EKS, les informations d'identification définies pour le rôle IAM peuvent être automatiquement obtenues par le code exécuté dans le conteneur via la chaîne de fournisseurs [d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) du SDK.

#### Votre code se trouve-t-il dans une instance Amazon Elastic Compute Cloud ?
<a name="a1"></a>

[Utilisation des rôles IAM pour authentifier les applications déployées sur Amazon EC2](access-iam-roles-for-ec2.md)— Utilisez les rôles IAM pour exécuter votre application en toute sécurité sur une instance Amazon EC2.

#### Votre code se trouve-t-il dans une AWS Lambda fonction ?
<a name="a2"></a>

Lambda crée un rôle d'exécution avec des autorisations minimales lorsque vous [créez une fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Le AWS SDK ou l'outil utilise ensuite automatiquement le rôle IAM attaché au Lambda lors de l'exécution, via l'environnement d'exécution Lambda.

#### Votre code se trouve-t-il dans Amazon Elastic Container Service (sur Amazon EC2 ou pour AWS Fargate Amazon ECS) ?
<a name="a3"></a>

Utilisez le rôle IAM pour la tâche. Vous devez [créer un rôle de tâche](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) et le spécifier dans votre [définition de tâche Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html). Le AWS SDK ou l'outil utilise ensuite automatiquement le rôle IAM attribué à la tâche lors de l'exécution, via les métadonnées Amazon ECS.

#### Votre code se trouve-t-il dans Amazon Elastic Kubernetes Service ?
<a name="a4"></a>

Nous vous recommandons d'utiliser [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

Remarque : si vous pensez que les [rôles IAM pour les comptes de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) (IRSA) sont mieux adaptés à vos besoins spécifiques, consultez la section [Comparaison entre EKS Pod Identity et IRSA](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html#service-accounts-iam) dans le guide de l'utilisateur **Amazon EKS**.

#### Votre code s'exécute-t-il dans AWS CodeBuild
<a name="a5"></a>

Consultez la section [Utilisation de politiques basées sur l'identité](https://docs.aws.amazon.com/codebuild/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html) pour. CodeBuild

#### Votre code se trouve-t-il dans un autre Service AWS ?
<a name="a6"></a>

Consultez le guide dédié à votre Service AWS. Lorsque vous exécutez du code AWS, la [chaîne de fournisseurs d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) du SDK peut automatiquement obtenir et actualiser les informations d'identification pour vous.

### Créez-vous des applications mobiles ou des applications Web basées sur le client ?
<a name="b"></a>

Si vous créez des applications mobiles ou des applications Web basées sur des clients qui nécessitent un accès à AWS, créez votre application de manière à ce qu'elle demande des informations d'identification de AWS sécurité temporaires de manière dynamique à l'aide de la fédération d'identité Web. 

Lors de l'utilisation de la fédération d'identité web, il n'est pas nécessaire de créer de code de connexion personnalisé ni de gérer vos propres identités utilisateur. Les utilisateurs de l'application peuvent plutôt se connecter à l'aide d'un fournisseur d'identité externe (IdP) connu, tel que Login with Amazon, Facebook, Google ou tout autre IdP compatible avec OpenID Connect (OIDC). Ils peuvent recevoir un jeton d'authentification, puis échanger ce jeton contre des informations d'identification de sécurité temporaires associées à un rôle IAM autorisé à utiliser les ressources de votre Compte AWS. AWS 

Pour savoir comment le configurer pour votre SDK ou votre outil, consultez[Assumer un rôle avec l'identité Web ou OpenID Connect pour l'authentification et les outils AWS SDKs](access-assume-role-web.md). 

Pour les applications mobiles, pensez à utiliser Amazon Cognito. Amazon Cognito agit en tant que courtier d'identité et effectue une grande partie du travail de fédération à votre place. Pour plus d'informations, consultez la section [Utilisation d'Amazon Cognito pour les applications mobiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) dans le guide de l'utilisateur *IAM*. 

### Développez-vous et exécutez-vous le code LOCALEMENT ?
<a name="c"></a>

Nous recommandons [Utilisation des informations d'identification de la console pour l'authentification AWS SDKs et des outils](access-login.md)

Après un flux d'authentification rapide basé sur un navigateur, génère AWS automatiquement des informations d'identification temporaires qui fonctionnent avec les outils de développement locaux tels que la AWS CLI et Outils AWS pour PowerShell . AWS SDKs 

#### Si vous utilisez Identity Center pour accéder au AWS compte
<a name="idc"></a>

Utilisez IAM Identity Center pour authentifier le AWS SDK et les outils si vous avez déjà accès aux AWS comptes and/or nécessaires pour gérer l'accès de votre personnel. Pour des raisons de sécurité, nous vous recommandons AWS Organizations d'utiliser IAM Identity Center pour gérer l'accès à tous vos AWS comptes. Vous pouvez créer des utilisateurs dans IAM Identity Center, utiliser Microsoft Active Directory, utiliser un fournisseur d'identité (IdP) SAML 2.0 ou fédérer individuellement votre IdP avec des comptes. AWS Pour vérifier si votre région prend en charge le centre d'identité IAM, consultez la section Points de terminaison et quotas du centre d'identité [Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md) IAM dans le manuel Amazon Web Services General Reference.

#### Si vous recherchez d'autres moyens d'authentification
<a name="owa"></a>

Créez un utilisateur IAM le moins privilégié autorisé à accéder à votre rôle `sts:AssumeRole` cible. Configurez ensuite votre profil pour qu'il assume un rôle à l'aide d'une `source_profile` configuration pour cet utilisateur.

Vous pouvez également utiliser des informations d'identification IAM temporaires via des variables d'environnement ou le fichier AWS d'informations d'identification partagé. Consultez la section Utilisation d'informations d'identification à court terme pour l'authentification AWS SDKs et les outils.

Remarque : dans les environnements sandbox ou d'apprentissage uniquement, vous pouvez envisager d'utiliser des informations d'identification à long terme pour l'authentification AWS SDKs et les outils.

### Ce code s'exécute-t-il sur site ou sur une machine virtuelle hybride/à la demande (par exemple, un serveur qui lit ou écrit sur Amazon S3, ou un déploiement de Jenkins dans le cloud) ?
<a name="d"></a>

#### Utilisez-vous des certificats clients X.509 ?
<a name="d1"></a>

Oui : vous voyez[Utilisation d'IAM Roles Anywhere pour l'authentification et les outils AWS SDKs](access-rolesanywhere.md). Vous pouvez utiliser IAM Roles Anywhere pour obtenir des informations d'identification de sécurité temporaires dans IAM pour les charges de travail telles que les serveurs, les conteneurs et les applications qui s'exécutent en dehors de. AWS Pour utiliser IAM Roles Anywhere, vos charges de travail doivent utiliser des certificats X.509.

#### L'environnement peut-il se connecter en toute sécurité à un fournisseur d'identité fédéré (tel que Microsoft Entra ou Okta) pour demander des informations d'identification temporaires ? AWS
<a name="d2"></a>

##### Oui : utiliser [Fournisseur d'identifiants de processus](feature-process-credentials.md)
<a name="d2a"></a>

[Fournisseur d'identifiants de processus](feature-process-credentials.md)À utiliser pour récupérer automatiquement les informations d'identification lors de l'exécution. Ces systèmes peuvent utiliser un outil d'assistance ou un plug-in pour obtenir les informations d'identification et peuvent assumer un rôle IAM en arrière-plan en utilisant. `sts:AssumeRole`

##### Non : utilisez des informations d'identification temporaires injectées via AWS Secrets Manager
<a name="d2b"></a>

Utilisez des informations d'identification temporaires injectées via AWS Secrets Manager. Pour connaître les options permettant d'obtenir des clés d'accès de courte durée, consultez la section [Demander des informations d'identification de sécurité temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) dans le guide de l'*utilisateur IAM*. Pour connaître les options relatives au stockage de ces informations d'identification temporaires, consultez[AWS clés d'accès](feature-static-credentials.md).

Vous pouvez utiliser ces informations d'identification pour récupérer en toute sécurité des autorisations d'application plus étendues auprès de [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html), où vos secrets de production ou vos informations d'identification à long terme basées sur les rôles peuvent être stockés.

### Utilisez-vous un outil tiers qui n'est pas inclus AWS ?
<a name="e"></a>

Utilisez la documentation rédigée par votre fournisseur tiers pour obtenir les meilleurs conseils sur l'obtention des informations d'identification.

#### Si votre tiers n'a pas fourni de documentation, pouvez-vous injecter des informations d'identification temporaires en toute sécurité ?
<a name="e1"></a>

Oui : utilisez des variables d'environnement et des AWS STS informations d'identification temporaires.

Non : utilisez des clés d'accès statiques stockées dans un gestionnaire de secrets chiffrés (dernier recours).

## Méthodes d’authentification
<a name="authOptions"></a>

**Méthodes d'authentification pour le code exécuté dans un AWS environnement**

Si votre code continue à s'exécuter AWS, les informations d'identification peuvent être automatiquement mises à la disposition de votre application. Par exemple, si votre application est hébergée sur Amazon Elastic Compute Cloud et qu'un rôle IAM est associé à cette ressource, les informations d'identification sont automatiquement mises à la disposition de votre application. De même, si vous utilisez des conteneurs Amazon ECS ou Amazon EKS, les informations d'identification définies pour le rôle IAM peuvent être automatiquement obtenues par le code exécuté dans le conteneur via la chaîne de fournisseurs d'informations d'identification du SDK.
+ [Utilisation des rôles IAM pour authentifier les applications déployées sur Amazon EC2](access-iam-roles-for-ec2.md)— Utilisez les rôles IAM pour exécuter votre application en toute sécurité sur une instance Amazon EC2. 
+  Vous pouvez interagir par programmation avec AWS IAM Identity Center de la manière suivante :
  + Permet [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/)d'exécuter AWS CLI des commandes depuis la console.
  + Pour essayer un espace de collaboration basé sur le cloud pour les équipes de développement de logiciels, pensez à utiliser [Amazon CodeCatalyst](https://docs.aws.amazon.com/codecatalyst/latest/userguide/welcome.html). 

**Authentification via un fournisseur d'identité basé sur le Web - Applications Web mobiles ou basées sur le client**

Si vous créez des applications mobiles ou des applications Web basées sur des clients qui nécessitent un accès à AWS, créez votre application de manière à ce qu'elle demande des informations d'identification de AWS sécurité temporaires de manière dynamique à l'aide de la fédération d'identité Web. 

Lors de l'utilisation de la fédération d'identité web, il n'est pas nécessaire de créer de code de connexion personnalisé ni de gérer vos propres identités utilisateur. Les utilisateurs de l'application peuvent plutôt se connecter à l'aide d'un fournisseur d'identité externe (IdP) connu, tel que Login with Amazon, Facebook, Google ou tout autre IdP compatible avec OpenID Connect (OIDC). Ils peuvent recevoir un jeton d'authentification, puis échanger ce jeton contre des informations d'identification de sécurité temporaires associées à un rôle IAM autorisé à utiliser les ressources de votre Compte AWS. AWS 

Pour savoir comment le configurer pour votre SDK ou votre outil, consultez[Assumer un rôle avec l'identité Web ou OpenID Connect pour l'authentification et les outils AWS SDKs](access-assume-role-web.md). 

Pour les applications mobiles, pensez à utiliser Amazon Cognito. Amazon Cognito agit en tant que courtier d'identité et effectue une grande partie du travail de fédération à votre place. Pour plus d'informations, consultez la section [Utilisation d'Amazon Cognito pour les applications mobiles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_cognito.html) dans le guide de l'utilisateur *IAM*. 

**Méthodes d'authentification pour le code exécuté localement (pas dans AWS)**
+ [Utilisation des informations d'identification de la console pour l'authentification AWS SDKs et des outils](access-login.md)— Cette fonctionnalité fonctionne à la fois avec l'interface de ligne de AWS commande et avec les outils pour PowerShell et vous fournit des informations d'identification actualisables qui fonctionnent avec les outils de développement locaux tels que la AWS CLI, les outils pour PowerShell et. AWS
+ [Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md)— En tant que bonne pratique en matière de sécurité, nous vous recommandons AWS Organizations d'utiliser IAM Identity Center pour gérer l'accès de tous vos Comptes AWS utilisateurs. Vous pouvez créer des utilisateurs dans AWS IAM Identity Center, utiliser Microsoft Active Directory, utiliser un fournisseur d'identité (IdP) SAML 2.0 ou fédérer individuellement votre IdP avec. Comptes AWS Pour vérifier si votre région prend en charge le centre d'identité IAM, consultez la section [AWS IAM Identity Center Points de terminaison et quotas](https://docs.aws.amazon.com/general/latest/gr/sso.html) dans le. *Référence générale d'Amazon Web Services* 
+ [Utilisation d'IAM Roles Anywhere pour l'authentification et les outils AWS SDKs](access-rolesanywhere.md)— Vous pouvez utiliser IAM Roles Anywhere pour obtenir des informations d'identification de sécurité temporaires dans IAM pour les charges de travail telles que les serveurs, les conteneurs et les applications qui s'exécutent en dehors de. AWS Pour utiliser IAM Roles Anywhere, vos charges de travail doivent utiliser des certificats X.509. 
+  [Assumer un rôle avec des AWS informations d'identification pour l'authentification AWS SDKs et des outils](access-assume-role.md)— Vous pouvez assumer un rôle IAM pour accéder temporairement à AWS des ressources auxquelles vous n'auriez peut-être pas accès autrement. 
+  [Utilisation de clés AWS d'accès pour l'authentification AWS SDKs et d'outils](access-users.md)— D'autres options peuvent être moins pratiques ou augmenter les risques de sécurité pour vos AWS ressources. 

**Plus d'informations sur la gestion des accès**

Le *guide de l'utilisateur IAM* contient les informations suivantes sur le contrôle sécurisé de l'accès aux AWS ressources :
+ [Identités IAM (utilisateurs, groupes d'utilisateurs et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) : comprenez les bases des identités dans AWS.
+ [Meilleures pratiques de sécurité en matière d'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) : recommandations de sécurité à suivre lors du développement d' AWS applications selon le modèle de [responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/).

*Référence générale d'Amazon Web Services*Il contient des éléments de base sur les points suivants :
+ [Comprendre et obtenir vos AWS informations d'identification](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) : accédez aux principales options et pratiques de gestion pour l'accès par console et par programmation.

**Plug-in de propagation d'identité sécurisée (TIP) d'IAM Identity Center pour y accéder Services AWS**
+ [Utiliser le plugin TIP pour accéder Services AWS](access-tip.md)— Si vous créez une application pour Amazon Q Business ou un autre service qui prend en charge la propagation fiable des identités et que vous utilisez le AWS SDK pour Java ou le AWS SDK pour JavaScript, vous pouvez utiliser le plug-in TIP pour une expérience d'autorisation rationalisée. 

## ID de constructeur AWS
<a name="bid"></a>

Vos ID de constructeur AWS compléments à ceux Comptes AWS que vous possédez déjà ou que vous souhaitez créer. Alors qu'un Compte AWS agit comme un conteneur pour les AWS ressources que vous créez et fournit une limite de sécurité pour ces ressources, vous vous ID de constructeur AWS représente en tant qu'individu. Vous pouvez vous connecter ID de constructeur AWS pour accéder à des outils et services de développement tels qu'Amazon Q et Amazon CodeCatalyst.
+ [ID de constructeur AWS Connectez-vous avec](https://docs.aws.amazon.com/signin/latest/userguide/sign-in-aws_builder_id.html) le *guide de l'Connexion à AWS utilisateur* : découvrez comment créer et utiliser un Builder ID ID de constructeur AWS et découvrez ce que fournit le Builder ID.
+ [CodeCatalystconcepts - ID de constructeur AWS](https://docs.aws.amazon.com/codecatalyst/latest/userguide/concepts.html#sign-in-concept) dans le *guide de CodeCatalyst l'utilisateur Amazon* - Découvrez comment CodeCatalyst utilise un ID de constructeur AWS.

# Utilisation des informations d'identification de la console pour l'authentification AWS SDKs et des outils
<a name="access-login"></a>

L'utilisation des informations d'identification de console est la méthode recommandée pour fournir des AWS informations d'identification lors du développement d'une AWS application dans votre environnement local ou dans d'autres environnements de services non AWS informatiques. Si vous développez sur une AWS ressource, telle qu'Amazon Elastic Compute Cloud (Amazon EC2) AWS CloudShell, nous vous recommandons d'obtenir des informations d'identification auprès de ce service.

Vous pouvez également vous authentifier via IAM Identity Center. [Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md) Cette option est un moyen courant pour les entreprises de gérer l'accès de leur personnel et nécessite l'activation d'Identity Center.

## Fonctionnement
<a name="access-login-how"></a>

La [connexion pour le développement AWS local à l'aide des informations d'identification de console](https://docs.aws.amazon.com/signin/latest/userguide/command-line-sign-in.html) vous permet d'utiliser vos informations de connexion existantes à la console de AWS gestion pour un accès programmatique aux AWS services. Après un flux d'authentification basé sur un navigateur, AWS génère des informations d'identification temporaires qui fonctionnent avec les outils de développement locaux tels que la AWS CLI, Tools for PowerShell et. AWS SDKs Cette fonctionnalité simplifie le processus de configuration et de gestion des informations d'identification de la AWS CLI, en particulier si vous préférez l'authentification interactive à la gestion des clés d'accès à long terme.

Ce processus vous permet de vous authentifier à l'aide des informations d'identification root créées lors de la configuration initiale du compte, des utilisateurs IAM ou d'une identité fédérée auprès de votre fournisseur d'identité.

Si vous l'utilisez SDKs pour le développement, les clients du SDK utiliseront les informations d'identification temporaires via le[AWS SDKs et outils, fournisseurs d'accréditations standardisés](standardized-credentials.md). Vous pouvez également configurer le[Fournisseur d'identifiants de connexion](feature-login-credentials.md).

L'authentification via la commande de connexion est prise en charge à la fois par la AWS CLI et par les outils pour PowerShell :
+ [Connectez-vous pour le développement AWS local à l'aide des informations d'identification de la console](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)
+ [Connectez-vous à l'aide des informations d'identification de console](https://docs.aws.amazon.com/powershell/v5/userguide/creds-idc.html#login-con-creds) indiquées dans le guide de Outils AWS pour PowerShell l'utilisateur

# Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils
<a name="access-sso"></a>

 AWS IAM Identity Center peut être utilisé pour fournir des AWS informations d'identification lors du développement d'une AWS application dans un environnement de service non AWS informatique. Si vous développez sur une AWS ressource, telle qu'Amazon Elastic Compute Cloud (Amazon EC2), nous vous recommandons plutôt d'obtenir AWS Cloud9 des informations d'identification auprès de ce service.

Utilisez l'authentification IAM Identity Center si vous utilisez déjà Identity Center pour accéder à un AWS compte ou si vous devez gérer l'accès pour une organisation. 

Dans ce didacticiel, vous établissez l'accès à IAM Identity Center et vous le configurez pour votre SDK ou outil à l'aide du portail AWS d'accès et du. AWS CLI
+ Le portail AWS d'accès est l'emplacement Web où vous vous connectez manuellement à l'IAM Identity Center. Le format de l'URL est `d-xxxxxxxxxx.awsapps.com/start` ou`your_subdomain.awsapps.com/start`. Lorsque vous êtes connecté au portail AWS d'accès, vous pouvez consulter Comptes AWS les rôles qui ont été configurés pour cet utilisateur. Cette procédure utilise le portail AWS d'accès pour obtenir les valeurs de configuration dont vous avez besoin pour le processus SDK/tool d'authentification. 
+  AWS CLI Il est utilisé pour configurer votre SDK ou votre outil afin d'utiliser l'authentification IAM Identity Center pour les appels d'API effectués par votre code. Ce processus unique met à jour votre AWS `config` fichier partagé, qui est ensuite utilisé par votre SDK ou votre outil lorsque vous exécutez votre code. 

## Conditions préalables
<a name="prereq-auth"></a>

Avant de commencer cette procédure, vous devez avoir effectué les opérations suivantes :
+ Si vous n'en avez pas Compte AWS, [inscrivez-vous pour un Compte AWS](https://portal.aws.amazon.com/billing/signup).
+ Si vous n'avez pas encore activé IAM Identity Center, [activez IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) en suivant les instructions du guide de l'*AWS IAM Identity Center utilisateur*.

## Configuration de l'accès programmatique à l'aide d'IAM Identity Center
<a name="idcGettingStarted"></a>

### Étape 1 : établir l'accès et sélectionner l'ensemble d'autorisations approprié
<a name="establishAccess"></a>

Choisissez l'une des méthodes suivantes pour accéder à vos AWS informations d'identification.

#### Je ne dispose pas d’un accès établi via IAM Identity Center
<a name="idc-access"></a>

1. Ajoutez un utilisateur et ajoutez des autorisations administratives en suivant la procédure de [configuration de l'accès utilisateur avec le répertoire IAM Identity Center par défaut](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html) du *guide de l'AWS IAM Identity Center utilisateur*. 

1. L'ensemble `AdministratorAccess` d'autorisations ne doit pas être utilisé pour le développement normal. Nous vous recommandons plutôt d'utiliser l'ensemble d'`PowerUserAccess`autorisations prédéfini, sauf si votre employeur a créé un ensemble d'autorisations personnalisé à cette fin.

   Suivez à nouveau la même procédure de [configuration de l'accès utilisateur avec la procédure d'annuaire par défaut d'IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/quick-start-default-idc.html), mais cette fois :
   + Au lieu de créer le `Admin team` groupe, créez-en un `Dev team` et remplacez-le par la suite dans les instructions.
   + Vous pouvez utiliser l'utilisateur existant, mais celui-ci doit être ajouté au nouveau `Dev team` groupe.
   + Au lieu de créer l'ensemble d'`AdministratorAccess`autorisations, `PowerUserAccess` créez-en un et remplacez-le par la suite dans les instructions.

   Lorsque vous aurez terminé, vous devriez avoir les éléments suivants :
   + Un `Dev team` groupe.
   + Une `PowerUserAccess` autorisation attachée définie pour le `Dev team` groupe.
   + Votre utilisateur a été ajouté au `Dev team` groupe.

1. Quittez le portail et reconnectez-vous pour voir vos options Comptes AWS et celles pour `Administrator` ou`PowerUserAccess`. Sélectionnez `PowerUserAccess` lorsque vous travaillez avec votre outil/SDK. 

#### J'y ai déjà accès AWS via un fournisseur d'identité fédéré géré par mon employeur (tel que Microsoft Entra ou Okta)
<a name="federated-access"></a>

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

#### J'y ai déjà accès AWS via le portail AWS d'accès géré par mon employeur
<a name="accessportal-access"></a>

Connectez-vous AWS via le portail AWS d'accès. 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. 

#### J'y ai déjà accès AWS via un fournisseur d'identité personnalisé fédéré géré par mon employeur
<a name="customfederated-access"></a>

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

### Étape 2 : Configuration SDKs et outils pour utiliser IAM Identity Center
<a name="configureAccess"></a>

1.  Sur votre machine de développement, installez la dernière version AWS CLI. 

   1. Consultez la section [Installation ou mise à jour de la dernière version du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dans le *guide de AWS Command Line Interface l'utilisateur*. 

   1.  (Facultatif) Pour vérifier que le AWS CLI fonctionne, ouvrez une invite de commande et exécutez la `aws --version` commande. 

1. Connectez-vous au portail d' AWS accès. Votre employeur peut fournir cette URL ou vous pouvez l'obtenir par e-mail après l'**étape 1 : Établir l'accès**. Si ce n'est pas le cas, trouvez l'**URL de votre portail d'AWS accès** sur le **tableau de bord** de [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/). 

   1. Dans le portail AWS d'accès, dans l'onglet **Comptes**, sélectionnez le compte individuel à gérer. Les rôles de votre utilisateur sont affichés. Choisissez **les clés d'accès** pour obtenir les informations d'identification pour la ligne de commande ou l'accès programmatique pour l'ensemble d'autorisations approprié. Utilisez l'ensemble `PowerUserAccess` d'autorisations prédéfini, ou le jeu d'autorisations que vous ou votre employeur avez créé pour appliquer les autorisations du moindre privilège au développement. 

   1. Dans la boîte de dialogue **Obtenir les informations d'identification**, choisissez **macOS et Linux** ou **Windows**, selon votre système d'exploitation.

   1. Choisissez la méthode d'**identification IAM Identity Center** pour obtenir les `SSO Region` valeurs `Issuer URL` et dont vous avez besoin pour l'étape suivante. Remarque : `SSO Start URL` peut être utilisé de manière interchangeable avec`Issuer URL`.

1. Dans l'invite de AWS CLI commande, exécutez la `aws configure sso` commande. Lorsque vous y êtes invité, entrez les valeurs de configuration que vous avez collectées à l'étape précédente. Pour plus de détails sur cette AWS CLI commande, voir [Configurer votre profil avec l'`aws configure sso`assistant](https://docs.aws.amazon.com/cli/latest/userguide/sso-configure-profile-token.html#sso-configure-profile-token-auto-sso). 

   1. Pour l'invite`SSO Start URL`, entrez la valeur que vous avez obtenue pour`Issuer URL`. 

   1.  Pour le **nom du profil CLI**, nous vous recommandons de le saisir *default* lorsque vous commencez. Pour plus d'informations sur la façon de définir des profils (nommés) autres que ceux par défaut et leur variable d'environnement associée, consultez[Profils](file-format.md#file-format-profile). 

1. (Facultatif) Dans l'invite de AWS CLI commande, confirmez l'identité de la session active en exécutant la `aws sts get-caller-identity` commande. La réponse doit indiquer l'ensemble d'autorisations IAM Identity Center que vous avez configuré. 

1. Si vous utilisez un AWS SDK, créez une application pour celui-ci dans votre environnement de développement.

   1. Pour certains SDKs, des packages supplémentaires tels que `SSO` et `SSOOIDC` doivent être ajoutés à votre application avant de pouvoir utiliser l'authentification IAM Identity Center. Pour plus de détails, consultez votre SDK spécifique.

   1.  Si vous avez déjà configuré l'accès à AWS, passez en revue votre AWS `credentials` fichier partagé pour en détecter d'éventuels[AWS clés d'accès](feature-static-credentials.md). Vous devez supprimer toutes les informations d'identification statiques avant que le SDK ou l'outil n'utilise les informations d'identification du centre d'identité IAM en raison de la [Comprendre la chaîne des fournisseurs d'informations d'identification](standardized-credentials.md#credentialProviderChain) priorité. 

 Pour en savoir plus sur la façon dont les outils SDKs et utilisent et actualisent les informations d'identification à l'aide de cette configuration, consultez[Comment l'authentification IAM Identity Center est-elle résolue AWS SDKs et quels outils ?](understanding-sso.md). 

Pour configurer les paramètres du fournisseur IAM Identity Center directement dans le `config` fichier partagé, consultez [Fournisseur d'identifiants IAM Identity Center](feature-sso-credentials.md) ce guide.

## Actualisation des sessions d'accès au portail
<a name="refreshSession"></a>

Votre accès finira par expirer et le SDK ou l'outil rencontrera une erreur d'authentification. La date d'expiration dépend de la durée de session que vous avez configurée. Pour actualiser à nouveau la session du portail d'accès en cas de besoin, utilisez la commande AWS CLI pour exécuter la `aws sso login` commande. 

Vous pouvez prolonger à la fois la durée de session du portail d'accès IAM Identity Center et celle de la session d'ensemble d'autorisations. Cela allonge le délai pendant lequel vous pouvez exécuter le code avant de devoir vous reconnecter manuellement avec le AWS CLI. Pour plus d’informations, consultez les rubriques suivantes dans le *AWS IAM Identity Center Guide de l’utilisateur* :
+ **Durée de session IAM Identity Center** : [configurez la durée des sessions du portail d' AWS accès de vos utilisateurs](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) 
+ **Autoriser définir la durée de la session** — [Définir la durée de la session](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)

# Comment l'authentification IAM Identity Center est-elle résolue AWS SDKs et quels outils ?
<a name="understanding-sso"></a>



## Termes pertinents du centre d'identité IAM
<a name="ssoterms"></a>

Les termes suivants vous aident à comprendre le processus et la configuration sous-jacents AWS IAM Identity Center. La documentation du AWS SDK APIs utilise des noms différents de ceux d'IAM Identity Center pour certains de ces concepts d'authentification. Il est utile de connaître les deux noms. 

Le tableau suivant montre comment les noms alternatifs sont liés les uns aux autres.


| Nom du centre d'identité IAM | Nom de l'API du SDK | Description | 
| --- | --- | --- | 
| Identity Center  | sso  | Bien que AWS Single Sign-On soit renommé, les espaces de noms de l'ssoAPI conserveront leur nom d'origine à des fins de rétrocompatibilité. Pour plus d’informations, consultez [IAM Identity Center rename](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html#renamed) dans le Guide de l’utilisateur AWS IAM Identity Center . | 
| Console IAM Identity CenterConsole d'administration |   | La console que vous utilisez pour configurer l'authentification unique.  | 
| AWS URL du portail d'accès  |  | Une URL propre à votre compte IAM Identity Center, par exemplehttps://xxx.awsapps.com/start. Vous vous connectez à ce portail à l'aide de vos identifiants de connexion IAM Identity Center.  | 
| Session sur le portail d'accès à l'IAM Identity Center  | Session d'authentification  | Fournit un jeton d'accès au porteur à l'appelant.  | 
| Session d'ensemble d'autorisations  |   | La session IAM que le SDK utilise en interne pour effectuer les Service AWS appels. Dans les discussions informelles, il est possible que cette session soit incorrectement appelée « session de rôle ». | 
| Informations d'identification du jeu d'autorisations  | AWS informations d'identificationinformations d'identification sigv4  | Les informations d'identification que le SDK utilise réellement pour la plupart des Service AWS appels (en particulier, tous les Service AWS appels sigv4). Dans les discussions informelles, il est possible que cela soit appelé à tort « informations d'identification du rôle ». | 
| Fournisseur d'identifiants IAM Identity Center  | Fournisseur d'informations d'identification SSO  | Comment obtenez-vous les informations d'identification, telles que la classe ou le module fournissant les fonctionnalités.  | 

## Comprendre la résolution des informations d'identification du SDK pour Services AWS
<a name="idccredres"></a>

L'API IAM Identity Center échange les informations d'identification du jeton porteur contre des informations d'identification sigv4. La plupart Services AWS sont des sigv4 APIs, à quelques exceptions près comme Amazon CodeWhisperer et Amazon CodeCatalyst. Ce qui suit décrit le processus de résolution des informations d'identification permettant de prendre en charge la plupart des Service AWS appels visant à obtenir le code de votre application. AWS IAM Identity Center

### Démarrer une session sur le portail AWS d'accès
<a name="idccredres1"></a>
+ Commencez le processus en vous connectant à la session à l'aide de vos informations d'identification.
  + Utilisez la `aws sso login` commande dans le AWS Command Line Interface (AWS CLI). Cela démarre une nouvelle session IAM Identity Center si vous n'avez pas encore de session active.
+ Lorsque vous démarrez une nouvelle session, vous recevez un jeton d'actualisation et un jeton d'accès de la part d'IAM Identity Center. AWS CLI Il met également à jour un fichier JSON de cache SSO avec un nouveau jeton d'accès et un nouveau jeton d'actualisation et le rend disponible pour utilisation par SDKs.
+ Si vous avez déjà une session active, la AWS CLI commande réutilise la session existante et expirera chaque fois que la session existante expirera. Pour savoir comment définir la durée d'une session IAM Identity Center, voir [Configurer la durée des sessions du portail d' AWS accès de vos utilisateurs](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-user-session.html) dans le *Guide de l'AWS IAM Identity Center utilisateur*. 
  + La durée maximale des sessions a été étendue à 90 jours afin de réduire le besoin de connexions fréquentes.

### Comment le SDK obtient les informations d'identification pour les appels Service AWS
<a name="idccredres2"></a>

SDKs fournir un accès Services AWS lorsque vous instanciez un objet client par service. Lorsque le profil sélectionné du AWS `config` fichier partagé est configuré pour la résolution des informations d'identification IAM Identity Center, IAM Identity Center est utilisé pour résoudre les informations d'identification de votre application. 
+ Le [processus de résolution des informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain) est terminé pendant l'exécution lorsqu'un client est créé.

Pour récupérer les informations d'identification pour sigv4 à APIs l'aide de l'authentification unique IAM Identity Center, le SDK utilise le jeton d'accès IAM Identity Center pour obtenir une session IAM. Cette session IAM est appelée session d'ensemble d'autorisations et permet d' AWS accéder au SDK en assumant un rôle IAM. 
+  La durée de session de l'ensemble d'autorisations est définie indépendamment de celle de la session IAM Identity Center.
  + Pour savoir comment définir la durée de session définie par les autorisations, voir [Définir la durée de session](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html) dans le *guide de AWS IAM Identity Center l'utilisateur*.
+  Sachez que les informations d'identification de l'ensemble d'autorisations sont également appelées informations *AWS d'identification et informations d'identification* *sigv4 dans la plupart des documentations d'*API du AWS SDK.

Les informations d'identification de l'ensemble d'autorisations sont renvoyées par un appel [getRoleCredentials](https://docs.aws.amazon.com/singlesignon/latest/PortalAPIReference/API_GetRoleCredentials.html)de l'API IAM Identity Center au SDK. L'objet client du SDK utilise ce rôle IAM supposé pour effectuer des appels Service AWS, par exemple pour demander à Amazon S3 de répertorier les buckets de votre compte. L'objet client peut continuer à fonctionner en utilisant ces informations d'identification du jeu d'autorisations jusqu'à l'expiration de la session du jeu d'autorisations. 

### Expiration et actualisation de la session
<a name="idccredres3"></a>

Lorsque vous utilisez le[Configuration du fournisseur de jetons SSO](feature-sso-credentials.md#sso-token-config), le jeton d'accès horaire obtenu auprès d'IAM Identity Center est automatiquement actualisé à l'aide du jeton d'actualisation.
+ Si le jeton d'accès a expiré lorsque le SDK essaie de l'utiliser, le SDK utilise le jeton d'actualisation pour essayer d'obtenir un nouveau jeton d'accès. L'IAM Identity Center compare le jeton d'actualisation à la durée de la session de votre portail d'accès à l'IAM Identity Center. Si le jeton d'actualisation n'est pas expiré, le centre d'identité IAM répond avec un autre jeton d'accès.
+ Ce jeton d'accès peut être utilisé soit pour actualiser la session d'ensemble d'autorisations des clients existants, soit pour résoudre les informations d'identification des nouveaux clients. 

Toutefois, si la session du portail d'accès à l'IAM Identity Center est expirée, aucun nouveau jeton d'accès n'est accordé. Par conséquent, la durée définie d'autorisations ne peut pas être renouvelée. Il expirera (et l'accès sera perdu) chaque fois que la durée de session définie par le cache expirera pour les clients existants. 

Tout code qui crée un nouveau client échouera à l'authentification dès l'expiration de la session IAM Identity Center. Cela est dû au fait que les informations d'identification de l'ensemble d'autorisations ne sont pas mises en cache. Votre code ne sera pas en mesure de créer un nouveau client et de terminer le processus de résolution des informations d'identification tant que vous ne disposerez pas d'un jeton d'accès valide. 

Pour récapituler, lorsque le SDK a besoin de nouvelles informations d'identification d'un ensemble d'autorisations, le SDK vérifie d'abord les informations d'identification existantes valides et les utilise. Cela s'applique qu'il s'agisse d'un nouveau client ou d'un client existant dont les informations d'identification ont expiré. Si les informations d'identification ne sont pas trouvées ou si elles ne sont pas valides, le SDK appelle l'API IAM Identity Center pour obtenir de nouvelles informations d'identification. Pour appeler l'API, elle a besoin du jeton d'accès. Si le jeton d'accès est expiré, le SDK utilise le jeton d'actualisation pour essayer d'obtenir un nouveau jeton d'accès auprès du service IAM Identity Center. Ce jeton est accordé si votre session du portail d'accès à l'IAM Identity Center n'a pas expiré. 

# Utilisation d'IAM Roles Anywhere pour l'authentification et les outils AWS SDKs
<a name="access-rolesanywhere"></a>

Vous pouvez utiliser IAM Roles Anywhere pour obtenir des informations d'identification de sécurité temporaires dans IAM pour les charges de travail telles que les serveurs, les conteneurs et les applications qui s'exécutent en dehors de. AWS Pour utiliser IAM Roles Anywhere, vos charges de travail doivent utiliser des certificats X.509. Votre administrateur cloud doit fournir le certificat et la clé privée nécessaires pour configurer IAM Roles Anywhere en tant que fournisseur d'informations d'identification.

## Étape 1 : configurer les rôles IAM n'importe où
<a name="config-ira"></a>

IAM Roles Anywhere permet d'obtenir des informations d'identification temporaires pour une charge de travail ou un processus qui s'exécute en dehors de AWS. Une ancre de confiance est établie avec l'autorité de certification afin d'obtenir des informations d'identification temporaires pour le rôle IAM associé. Le rôle définit les autorisations dont bénéficiera votre charge de travail lorsque votre code s'authentifie auprès d'IAM Roles Anywhere.

Pour connaître les étapes de configuration de l'ancre de confiance, du rôle IAM et du profil IAM Roles Anywhere, consultez la section [Création d'une ancre de confiance et d'un profil dans Gestion des identités et des accès AWS Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/getting-started.html) du guide de l'utilisateur d'*IAM Roles Anywhere*.

**Note**  
Un *profil figurant* dans le *guide de l'utilisateur d'IAM Roles Anywhere* fait référence à un concept unique au sein du service IAM Roles Anywhere. Cela n'est pas lié aux profils contenus dans le AWS `config` fichier partagé. 

## Étape 2 : Utiliser les rôles IAM n'importe où
<a name="use-ira"></a>

Pour obtenir des informations d'identification de sécurité temporaires auprès d'IAM Roles Anywhere, utilisez l'outil d'aide aux informations d'identification fourni par IAM Roles Anywhere. L'outil d'identification met en œuvre le processus de signature pour IAM Roles Anywhere.

Pour obtenir des instructions sur le téléchargement de l'outil d'aide aux informations d'identification, consultez la section [Obtention d'informations d'identification de sécurité temporaires auprès de Gestion des identités et des accès AWS Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html) dans le guide de l'utilisateur d'*IAM Roles Anywhere*.

Pour utiliser les informations d'identification de sécurité temporaires d'IAM Roles Anywhere avec AWS SDKs et le AWS CLI, vous pouvez configurer le `credential_process` paramètre dans le AWS `config` fichier partagé. Le AWS CLI support SDKs et un fournisseur d'informations d'identification de processus utilisé `credential_process` pour s'authentifier. Ce qui suit montre la structure générale à définir`credential_process`.

```
credential_process = [path to helper tool] [command] [--parameter1 value] [--parameter2 value] [...]  
```

La `credential-process` commande de l'outil d'assistance renvoie des informations d'identification temporaires dans un format JSON standard compatible avec le `credential_process` paramètre. Notez que le nom de la commande contient un trait d'union mais que le nom du paramètre contient un trait de soulignement. La commande nécessite les paramètres suivants :
+ `private-key`— Le chemin d'accès à la clé privée qui a signé la demande. 
+ ` certificate`— Le chemin d'accès au certificat. 
+ `role-arn`— L'ARN du rôle pour lequel vous souhaitez obtenir des informations d'identification temporaires. 
+ `profile-arn`— L'ARN du profil qui fournit un mappage pour le rôle spécifié. 
+ `trust-anchor-arn`— L'ARN de l'ancre de confiance utilisée pour l'authentification. 

Votre administrateur cloud doit fournir le certificat et la clé privée. Les trois valeurs ARN peuvent être copiées à partir du AWS Management Console. L'exemple suivant montre un `config` fichier partagé qui configure la récupération d'informations d'identification temporaires à partir de l'outil d'assistance. 

```
[profile dev]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```

 Pour les paramètres facultatifs et des informations supplémentaires sur les outils d'assistance, voir [IAM Roles Anywhere Credential](https://github.com/aws/rolesanywhere-credential-helper#readme) Helper on. GitHub 

Pour plus de détails sur le paramètre de configuration du SDK lui-même et sur le fournisseur d'informations d'identification du processus, consultez ce [Fournisseur d'identifiants de processus](feature-process-credentials.md) guide.

# Assumer un rôle avec des AWS informations d'identification pour l'authentification AWS SDKs et des outils
<a name="access-assume-role"></a>

Assumer un rôle implique l'utilisation d'un ensemble d'informations d'identification de sécurité temporaires pour accéder à AWS des ressources auxquelles vous n'auriez peut-être pas accès autrement. Ces informations d'identification temporaires incluent un ID de clé d'accès, une clé d'accès secrète et un jeton de sécurité. Pour en savoir plus sur les demandes d'API AWS Security Token Service (AWS STS), consultez la section [Actions](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) de la *référence AWS Security Token Service d'API*. 

Pour configurer votre SDK ou votre outil afin qu'il assume un rôle, vous devez d'abord créer ou identifier un *rôle* spécifique à assumer. Les rôles IAM sont identifiés de manière unique par un rôle Amazon Resource Name ([ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)). Les rôles établissent des relations de confiance avec une autre entité. L'entité de confiance qui utilise le rôle peut être une Service AWS ou une autre Compte AWS. Pour en savoir plus sur les rôles IAM, consultez la section [Utilisation des rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html) dans le Guide de l'utilisateur *IAM*. 

Une fois le rôle IAM identifié, si ce rôle vous fait confiance, vous pouvez configurer votre SDK ou votre outil pour utiliser les autorisations accordées par le rôle. 

**Note**  
Il est recommandé d' AWS utiliser des points de terminaison régionaux dans la mesure du possible et de configurer votre[Région AWS](feature-region.md). 

## Assumez un rôle IAM
<a name="credOrSourceAssumeRole"></a>

Lorsque vous assumez un rôle, AWS STS renvoie un ensemble d'informations d'identification de sécurité temporaires. Ces informations d'identification proviennent d'un autre profil ou de l'instance ou du conteneur dans lequel votre code est exécuté. Le plus souvent, ce type d'attribution de rôle est utilisé lorsque vous possédez les AWS informations d'identification d'un compte, mais que votre application doit accéder aux ressources d'un autre compte. 

### Étape 1 : configurer un rôle IAM
<a name="credOrSourceAssumeRole_step1"></a>

Pour configurer votre SDK ou votre outil afin qu'il assume un rôle, vous devez d'abord créer ou identifier un rôle spécifique à assumer. Les rôles IAM sont identifiés de manière unique à l'aide d'un [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) de rôle. Les rôles établissent des relations de confiance avec une autre entité, généralement au sein de votre compte ou pour un accès entre comptes. Pour configurer cela, consultez la section [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) dans le guide de l'*utilisateur IAM*.

### Étape 2 : Configuration du SDK ou de l'outil
<a name="credOrSourceAssumeRole_step2"></a>

Configurez le SDK ou l'outil pour obtenir des informations d'identification auprès de `credential_source` ou`source_profile`. 

`credential_source`À utiliser pour obtenir des informations d'identification à partir d'un conteneur Amazon ECS, d'une instance Amazon EC2 ou de variables d'environnement. 

`source_profile`À utiliser pour obtenir des informations d'identification à partir d'un autre profil. `source_profile`prend également en charge le chaînage des rôles, qui consiste en des hiérarchies de profils dans lesquelles un rôle assumé est ensuite utilisé pour assumer un autre rôle.

Lorsque vous le spécifiez dans un profil, le SDK ou l'outil lance automatiquement l'appel d' AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API correspondant pour vous. Pour récupérer et utiliser des informations d'identification temporaires en assumant un rôle, spécifiez les valeurs de configuration suivantes dans le AWS `config` fichier partagé. Pour plus de détails sur chacun de ces paramètres, consultez la [Paramètres du fournisseur d'informations d'identification du rôle](feature-assume-role-credentials.md#feature-assume-role-credentials-settings) section. 
+ `role_arn`- À partir du rôle IAM que vous avez créé à l'étape 1
+ Configurez `credential_source` soit `source_profile`
+ (Facultatif) `duration_seconds` 
+ (Facultatif) `external_id` 
+ (Facultatif) `mfa_serial` 
+ (Facultatif) `role_session_name` 

Les exemples suivants montrent la configuration des deux options d'attribution de rôle dans un `config` fichier partagé :

```
role_arn = arn:aws:iam::123456789012:role/my-role-name
credential_source = Ec2InstanceMetadata
```

```
[profile-with-user-that-can-assume-role]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[profile dev]
region = us-east-1
output = json
role_arn = arn:aws:iam::123456789012:role/my-role-name
source_profile = profile-with-user-that-can-assume-role
role_session_name = my_session
```

Pour plus de détails sur tous les paramètres du fournisseur d'informations d'identification d'assumer un rôle, consultez [Assumer le rôle de fournisseur d'informations d'identification](feature-assume-role-credentials.md) ce guide.

# Assumer un rôle avec l'identité Web ou OpenID Connect pour l'authentification et les outils AWS SDKs
<a name="access-assume-role-web"></a>

Assumer un rôle implique l'utilisation d'un ensemble d'informations d'identification de sécurité temporaires pour accéder à AWS des ressources auxquelles vous n'auriez peut-être pas accès autrement. Ces informations d'identification temporaires incluent un ID de clé d'accès, une clé d'accès secrète et un jeton de sécurité. Pour en savoir plus sur les demandes d'API AWS Security Token Service (AWS STS), consultez la section [Actions](https://docs.aws.amazon.com/STS/latest/APIReference/API_Operations.html) de la *référence AWS Security Token Service d'API*. 

Pour configurer votre SDK ou votre outil afin qu'il assume un rôle, vous devez d'abord créer ou identifier un *rôle* spécifique à assumer. Les rôles IAM sont identifiés de manière unique par un rôle Amazon Resource Name ([ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)). Les rôles établissent des relations de confiance avec une autre entité. L'entité de confiance qui utilise le rôle peut être un fournisseur d'identité Web, OpenID Connect (OIDC) ou une fédération SAML. Pour en savoir plus sur les rôles IAM, consultez la section [Méthodes pour assumer un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le Guide de l'*utilisateur IAM*. 

Une fois le rôle IAM configuré dans votre SDK, s'il est configuré pour faire confiance à votre fournisseur d'identité, vous pouvez configurer davantage votre SDK pour qu'il assume ce rôle afin d'obtenir des informations d'identification temporaires. AWS 

**Note**  
Il est recommandé d' AWS utiliser des points de terminaison régionaux dans la mesure du possible et de configurer votre[Région AWS](feature-region.md). 

## Fédérez avec l'identité Web ou OpenID Connect
<a name="webidentity"></a>

Vous pouvez utiliser les jetons Web JSON (JWTs) provenant de fournisseurs d'identité publics, tels que Login With Amazon, Facebook, Google pour obtenir des AWS informations d'identification temporaires`AssumeRoleWithWebIdentity`. Selon la manière dont ils sont utilisés, ils JWTs peuvent être appelés jetons d'identification ou jetons d'accès. Vous pouvez également utiliser des JWTs documents émis par des fournisseurs d'identité (IdPs) compatibles avec le protocole de découverte de l'OIDC, tels que EntraId ou PingFederate.

Si vous utilisez Amazon Elastic Kubernetes Service, cette fonctionnalité permet de spécifier différents rôles IAM pour chacun de vos comptes de service dans un cluster Amazon EKS. Cette fonctionnalité de Kubernetes est distribuée JWTs à vos pods, qui sont ensuite utilisés par ce fournisseur d'informations d'identification pour obtenir des informations d'identification temporaires. AWS Pour plus d'informations sur cette configuration Amazon EKS, consultez la section [Rôles IAM pour les comptes de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) dans le **guide de l'utilisateur Amazon EKS**. Toutefois, pour une option plus simple, nous vous recommandons d'utiliser [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) à la place si votre [SDK le prend en charge](feature-container-credentials.md#feature-container-credentials-sdk-compat).

### Étape 1 : configurer un fournisseur d'identité et un rôle IAM
<a name="webidentity_step1"></a>

Pour configurer la fédération avec un IdP externe, utilisez un fournisseur d'identité IAM pour fournir des AWS informations sur l'IdP externe et sa configuration. Cela établit la *confiance* entre votre Compte AWS IdP et l'IdP externe. Avant de configurer le SDK pour utiliser le jeton Web JSON (JWT) pour l'authentification, vous devez d'abord configurer le fournisseur d'identité (IdP) et le rôle IAM utilisé pour y accéder. Pour les configurer, consultez la section [Création d'un rôle pour l'identité Web ou OpenID Connect Federation (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html) dans le guide de l'utilisateur *IAM*.

### Étape 2 : Configuration du SDK ou de l'outil
<a name="webidentity_step2"></a>

Configurez le SDK ou l'outil pour utiliser un jeton Web JSON (JWT) à des AWS STS fins d'authentification. 

Lorsque vous le spécifiez dans un profil, le SDK ou l'outil lance automatiquement l'appel d' AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)API correspondant pour vous. Pour récupérer et utiliser des informations d'identification temporaires à l'aide de la fédération d'identité Web, spécifiez les valeurs de configuration suivantes dans le AWS `config` fichier partagé. Pour plus de détails sur chacun de ces paramètres, consultez la [Paramètres du fournisseur d'informations d'identification du rôle](feature-assume-role-credentials.md#feature-assume-role-credentials-settings) section. 
+ `role_arn`- À partir du rôle IAM que vous avez créé à l'étape 1
+ `web_identity_token_file`- Depuis l'IdP externe
+ (Facultatif) `duration_seconds` 
+ (Facultatif) `role_session_name` 

Voici un exemple de configuration de `config` fichier partagé pour assumer un rôle avec une identité Web :

```
[profile web-identity]
role_arn=arn:aws:iam::123456789012:role/my-role-name
web_identity_token_file=/path/to/a/token
```

**Note**  
Pour les applications mobiles, pensez à utiliser Amazon Cognito. Amazon Cognito agit en tant que courtier d'identité et effectue une grande partie du travail de fédération à votre place. Cependant, le fournisseur d'identité Amazon Cognito n'est pas inclus dans les bibliothèques principales de SDKs and tools comme les autres fournisseurs d'identité. Pour accéder à l'API Amazon Cognito, incluez le client du service Amazon Cognito dans la version ou les bibliothèques de votre SDK ou outil. Pour une utilisation avec AWS SDKs, consultez les [exemples de code](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html) dans le manuel *Amazon Cognito Developer Guide*.

Pour plus de détails sur tous les paramètres du fournisseur d'informations d'identification d'assumer un rôle, consultez [Assumer le rôle de fournisseur d'informations d'identification](feature-assume-role-credentials.md) ce guide.

# Utilisation de clés AWS d'accès pour l'authentification AWS SDKs et d'outils
<a name="access-users"></a>

L'utilisation de clés d' AWS accès est une option d'authentification lors de l'utilisation AWS SDKs d'outils.

## Utiliser des identifiants à court terme
<a name="credentials-temporary"></a>

 Nous vous recommandons de configurer votre SDK ou outil à utiliser [Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md) pour utiliser les options de durée de session prolongée. 

Toutefois, pour configurer directement les informations d'identification temporaires du SDK ou de l'outil, consultez[Utilisation d'informations d'identification à court terme pour l'authentification AWS SDKs et d'outilsInformations d’identification à court terme](access-temp-idc.md).

## Utilisez des identifiants à long terme
<a name="credentials-long-term"></a>

**Avertissement**  
Afin d’éviter les risques de sécurité, n’employez pas les utilisateurs IAM pour l’authentification lorsque vous développez des logiciels spécialisés ou lorsque vous travaillez avec des données réelles. Préférez la fédération avec un fournisseur d’identité tel que [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

### Gérez l'accès à travers Comptes AWS
<a name="manage-access-accounts"></a>

En tant que bonne pratique en matière de sécurité, nous vous recommandons AWS Organizations d'utiliser IAM Identity Center pour gérer l'accès de tous vos Comptes AWS utilisateurs. Pour plus d’informations, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

Vous pouvez créer des utilisateurs dans IAM Identity Center, utiliser Microsoft Active Directory, utiliser un fournisseur d'identité (IdP) SAML 2.0 ou fédérer individuellement votre IdP avec. Comptes AWS En utilisant l'une de ces approches, vous pouvez proposer une expérience d'authentification unique à vos utilisateurs. Vous pouvez également appliquer l'authentification multifactorielle (MFA) et utiliser des informations d'identification Compte AWS temporaires pour l'accès. Cela diffère d'un utilisateur IAM, qui est un identifiant à long terme qui peut être partagé et qui peut augmenter le risque de sécurité pour vos AWS ressources.

### Création d'utilisateurs IAM pour les environnements sandbox uniquement
<a name="create-iam-user-sandbox"></a>

Si vous débutez dans ce domaine AWS, vous pouvez créer un utilisateur IAM de test, puis l'utiliser pour exécuter des didacticiels et découvrir ce qui AWS a à offrir. Vous pouvez utiliser ce type d'identifiant lorsque vous apprenez, mais nous vous recommandons d'éviter de l'utiliser en dehors d'un environnement sandbox.

Pour les cas d'utilisation suivants, il peut être judicieux de commencer avec les utilisateurs IAM dans AWS :
+ Démarrage avec votre AWS SDK ou outil et exploration Services AWS dans un environnement sandbox.
+ Exécution de scripts, de tâches et d'autres processus automatisés planifiés qui ne prennent pas en charge un processus de connexion assisté par un humain dans le cadre de votre apprentissage.

Si vous utilisez des utilisateurs IAM en dehors de ces cas d'utilisation, passez à IAM Identity Center ou fédérez votre fournisseur d'identité Comptes AWS dès que possible. Pour plus d'informations, consultez la section [Fédération des identités dans AWS](https://aws.amazon.com/identity/federation/).

### Clés d'accès utilisateur IAM sécurisées
<a name="secure-iam-access-keys"></a>

Vous devez régulièrement alterner les clés d'accès utilisateur IAM. Suivez les instructions de la section [Rotation des touches d'accès](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) du *guide de l'utilisateur IAM*. Si vous pensez avoir accidentellement partagé vos clés d'accès utilisateur IAM, faites pivoter vos clés d'accès.

Les clés d'accès utilisateur IAM doivent être stockées dans le AWS `credentials` fichier partagé sur la machine locale. Ne stockez pas les clés d'accès utilisateur IAM dans votre code. N'incluez aucun fichier de configuration contenant vos clés d'accès utilisateur IAM dans un logiciel de gestion de code source. Des outils externes, tels que le projet open source [git-secrets](https://github.com/awslabs/git-secrets), peuvent vous aider à éviter de transférer par inadvertance des informations sensibles dans un dépôt Git. Pour plus d’informations, consultez [Identités IAM (utilisateurs, groupes et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) dans le *Guide de l’utilisateur  IAM*.

Pour configurer un utilisateur IAM pour qu'il démarre, voir[Utilisation d'informations d'identification à long terme pour l'authentification AWS SDKs et d'outils](access-iam-users.md).

# Utilisation d'informations d'identification à court terme pour l'authentification AWS SDKs et d'outils
<a name="access-temp-idc"></a>

 Nous vous recommandons de configurer votre AWS SDK ou votre outil pour l'utiliser [Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md) avec des options de durée de session prolongée. Toutefois, vous pouvez copier et utiliser les informations d'identification temporaires disponibles sur le portail AWS d'accès. De nouvelles informations d’identification devront être copiées à leur expiration. Vous pouvez utiliser les informations d’identification temporaires dans un profil ou les utiliser comme valeurs pour les propriétés système et les variables d’environnement.

Bonne pratique : au lieu de gérer manuellement les clés d'accès et un jeton dans le fichier d'informations d'identification, nous recommandons que votre application utilise des informations d'identification temporaires fournies par : 
+ Un service de AWS calcul, tel que l'exécution de votre application sur Amazon Elastic Compute Cloud ou dans AWS Lambda.
+ Une autre option de la chaîne des fournisseurs d'informations d'identification, telle que[Utilisation d'IAM Identity Center pour authentifier le AWS SDK et les outils](access-sso.md).
+ Vous pouvez également utiliser le [Fournisseur d'identifiants de processus](feature-process-credentials.md) pour récupérer des informations d'identification temporaires.

**Configuration d'un fichier d'informations d'identification à l'aide d'informations d'identification à court terme extraites du portail AWS d'accès**

1. [Créez un fichier d'informations d'identification partagé](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html).

1. Dans le fichier d'informations d'identification, collez le texte d'espace réservé suivant jusqu'à ce que vous y colliez des informations d'identification temporaires fonctionnelles.

   ```
   [default]
   aws_access_key_id=<value from AWS access portal>
   aws_secret_access_key=<value from AWS access portal>
   aws_session_token=<value from AWS access portal>
   ```

1. Enregistrez le fichier. Le fichier `~/.aws/credentials` devrait maintenant exister sur votre système de développement local. Ce fichier contient le [profil [par défaut]](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile) utilisé par le SDK ou l'outil si aucun profil nommé spécifique n'est spécifié. 

1. [Connectez-vous au portail d' AWS accès](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html).

1. Suivez ces instructions pour l'[actualisation manuelle des informations d'identification](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) afin de copier les informations d'identification du rôle IAM depuis le portail d' AWS accès.

   1. Pour l'étape 4 des instructions liées, choisissez le nom du rôle IAM qui accorde l'accès pour vos besoins de développement. Ce rôle porte généralement un nom tel que **PowerUserAccess**« **Développeur** ».

   1. Pour l'étape 7 des instructions liées, sélectionnez l'option **Ajouter manuellement un profil à votre fichier AWS d'informations d'identification** et copiez le contenu.

1. Collez les informations d'identification copiées dans votre `credentials` fichier local. Le nom de profil généré n'est pas nécessaire si vous utilisez le `default` profil. Votre fichier doit ressembler à ce qui suit.

   ```
   [default]
   aws_access_key_id=AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
   ```

1. Enregistrez le fichier `credentials`.

Lorsque le kit SDK crée un client de service, il accède à ces informations d’identification temporaires et les utilise pour chaque demande. Les paramètres du rôle IAM choisi à l'étape 5a déterminent [la durée de validité des informations d'identification temporaires](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html). La durée maximale est de douze heures.

Une fois les informations d'identification temporaires expirées, répétez les étapes 4 à 7.

# Utilisation d'informations d'identification à long terme pour l'authentification AWS SDKs et d'outils
<a name="access-iam-users"></a>

**Avertissement**  
Afin d’éviter les risques de sécurité, n’employez pas les utilisateurs IAM pour l’authentification lorsque vous développez des logiciels spécialisés ou lorsque vous travaillez avec des données réelles. Préférez la fédération avec un fournisseur d’identité tel que [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html).

Si vous utilisez un utilisateur IAM pour exécuter votre code, le SDK ou l'outil de votre environnement de développement s'authentifie en utilisant les informations d'identification utilisateur IAM à long terme dans le fichier partagé. AWS `credentials` Consultez la rubrique [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) et passez à IAM Identity Center ou à d'autres informations d'identification temporaires dès que possible.

## Avertissements et conseils importants concernant les informations d'identification
<a name="iam-warnings-and-guidelines"></a>

**Avertissements concernant les informations d'identification**
+ ***N'utilisez PAS*** les informations d'identification root de votre compte pour accéder aux ressources AWS . Ces informations d’identification offrent un accès illimité au compte et sont difficiles à révoquer.
+ ***N’incluez PAS*** de clés d’accès littérales ou d’informations d’identification dans vos fichiers d’application. Vous risqueriez en effet d’exposer accidentellement vos informations d’identification si, par exemple, vous chargiez le projet sur un référentiel public.
+ ***N’incluez PAS*** de fichiers contenant des informations d’identification dans votre zone de projet.
+ Sachez que toutes les informations d'identification stockées dans le AWS `credentials` fichier partagé sont stockées en texte brut.

**Conseils supplémentaires pour gérer les informations d'identification en toute sécurité**

Pour une discussion générale sur la manière de gérer les AWS informations d'identification en toute sécurité, consultez la section [Meilleures pratiques pour la gestion des clés AWS d'accès](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) dans le [Références générales AWS](https://docs.aws.amazon.com/general/latest/gr/). En plus de cette discussion, envisagez de prendre les mesures suivantes :
+ Utilisez des [rôles IAM](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) pour les tâches Amazon Elastic Container Service (Amazon ECS).
+ Utilisez des [rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) pour les applications qui s'exécutent sur des instances Amazon EC2.

## Prérequis : créer un compte AWS
<a name="signup"></a>

Pour utiliser un utilisateur IAM pour accéder aux AWS services, vous avez besoin d'un AWS compte et d' AWS informations d'identification.

1. **Créez un compte.**

   Pour créer un AWS compte, consultez [Commencer : êtes-vous un nouvel AWS utilisateur ?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html) dans le *guide Gestion de compte AWS de référence*.

1. **Créez un utilisateur administratif.**

   Évitez d'utiliser votre compte utilisateur root (le compte initial que vous créez) pour accéder à la console de gestion et aux services. Au lieu de cela, créez un compte utilisateur administratif, comme décrit à la section [Création d'un utilisateur administratif](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) du *Guide de l’utilisateur IAM*.

   Après avoir créé le compte utilisateur administratif et enregistré les informations de connexion, **veillez à vous déconnecter de votre compte utilisateur root** et reconnectez-vous à l'aide du compte administratif.

Aucun de ces comptes n'est approprié pour le développement AWS ou l'exécution d'applications AWS. La meilleure pratique consiste à créer des utilisateurs, des ensembles d'autorisations ou des rôles de service adaptés à ces tâches. Pour en savoir plus, consultez [Appliquer les autorisations de moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) dans le *Guide de l’utilisateur IAM*.

## Étape 1 : création de votre utilisateur IAM
<a name="step1authIamUser"></a>
+ Créez votre utilisateur IAM en suivant la procédure [Création d’utilisateurs IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) du *Guide de l’utilisateur IAM*. Lors de la création de votre utilisateur IAM :
  + Nous vous recommandons de sélectionner **Fournir un accès utilisateur au AWS Management Console**. Cela vous permet d'afficher les Services AWS informations relatives au code que vous exécutez dans un environnement visuel, par exemple en consultant les journaux de AWS CloudTrail diagnostic ou en téléchargeant des fichiers sur Amazon Simple Storage Service, ce qui est utile lors du débogage de votre code.
  + Pour **Définir les autorisations** - **Options d'autorisation**, sélectionnez **Joindre directement les politiques** pour définir la manière dont vous souhaitez attribuer les autorisations à cet utilisateur. 
    + La plupart des didacticiels du kit SDK « Démarrage » utilisent le service Amazon S3 comme exemple. Pour fournir à votre application un accès complet à Amazon S3, sélectionnez la politique `AmazonS3FullAccess` à attacher à cet utilisateur.
  + Vous pouvez ignorer les étapes facultatives de cette procédure concernant la définition des limites d'autorisation ou des balises. 

## Étape 2 : récupération de vos clés d’accès
<a name="stepGetKeys"></a>

1. Dans le volet de navigation de la console IAM, sélectionnez **Utilisateurs**, puis le **User name** de l’utilisateur que vous avez créé précédemment.

1. Sur la page de l’utilisateur, sélectionnez la page **Informations d’identification de sécurité**. Ensuite, sous **Clés d’accès**, sélectionnez **Créer une clé d’accès**.

1. Pour l'**étape 1 de création d'une clé d'accès**, choisissez soit **l'interface de ligne de commande (CLI)**, soit **le code local**. Les deux options génèrent le même type de clé à utiliser à la fois avec le AWS CLI et le SDKs.

1. Pour **Créer une clé d’accès – Étape 2**, saisissez une balise facultative, puis cliquez sur **Suivant**.

1. Pour **Créer une clé d’accès – Étape 3**, sélectionnez **Télécharger le fichier .csv** afin d’enregistrer le fichier `.csv` contenant la clé d’accès et la clé d’accès secrète de l’utilisateur IAM. Vous aurez besoin de ces informations ultérieurement.
**Avertissement**  
Utilisez les mesures de sécurité appropriées pour protéger ces informations d'identification.

1. Sélectionnez **Done (Terminé)**. 

## Étape 3 : mettre à jour le `credentials` fichier partagé
<a name="stepauthIamUser"></a>

1. Créez ou ouvrez le fichier AWS `credentials` partagé. Ce fichier est `~/.aws/credentials` sous Linux et macOS, et `%USERPROFILE%\.aws\credentials` sous Windows. Pour plus d'informations, voir [Emplacement des fichiers d'informations d'identification](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html).

1. Ajoutez le texte suivant au fichier `credentials` partagé. Remplacez l'exemple de valeur d'ID et l'exemple de valeur de clé par les valeurs du `.csv` fichier que vous avez téléchargé précédemment. 

   ```
   [default]
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   ```

   

1. Enregistrez le fichier.

Le `credentials` fichier partagé est le moyen le plus courant de stocker les informations d'identification. Elles peuvent également être définies en tant que variables d'environnement, voir [AWS clés d'accès](feature-static-credentials.md) pour les noms des variables d'environnement. C'est une façon de démarrer, mais nous vous recommandons de passer à IAM Identity Center ou à d'autres informations d'identification temporaires dès que possible. Après avoir cessé d'utiliser des informations d'identification à long terme, pensez à supprimer ces informations d'identification du `credentials` fichier partagé.

# Utilisation des rôles IAM pour authentifier les applications déployées sur Amazon EC2
<a name="access-iam-roles-for-ec2"></a>

Cet exemple décrit la configuration d'un Gestion des identités et des accès AWS rôle avec un accès Amazon S3 à utiliser dans votre application déployée sur une instance Amazon Elastic Compute Cloud. 

Pour exécuter votre application AWS SDK sur une instance Amazon Elastic Compute Cloud, créez un rôle IAM, puis accordez à votre EC2 instance Amazon l'accès à ce rôle. Pour plus d'informations, consultez la section [Rôles IAM pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) dans le *guide de l' EC2 utilisateur Amazon*.

## Créer un rôle IAM
<a name="createRoleForEc2"></a>

L'application AWS SDK que vous développez accède probablement à au moins une application Service AWS pour effectuer des actions. Créez un rôle IAM qui accorde les autorisations nécessaires à l'exécution de votre application.

 Cette procédure crée un rôle qui accorde un accès en lecture seule à Amazon S3, par exemple. La plupart des guides du AWS SDK contiennent des didacticiels de « mise en route » tirés d'Amazon S3.

1. Connectez-vous à la console IAM AWS Management Console et ouvrez-la à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse.

1. Dans le volet de navigation, sélectionnez **Rôles**, puis sélectionnez **Créer un rôle**.

1. Pour **Sélectionner une entité de confiance**, sous **Type d'entité fiable**, sélectionnez **Service AWS**.

1. Sous **Cas d'utilisation**, choisissez **Amazon EC2**, puis sélectionnez **Suivant**.

1. Pour **Ajouter des autorisations**, cochez la case **Amazon S3 Read Only Access** dans la liste des politiques, puis sélectionnez **Suivant**. 

1. Entrez un nom pour le rôle, puis sélectionnez **Créer un rôle**. *N'oubliez pas ce nom car vous en aurez besoin lors de la création de votre EC2 instance Amazon.*

## Lancez une EC2 instance Amazon et spécifiez votre rôle IAM
<a name="launchAndSpecify"></a>

Vous pouvez créer et lancer une EC2 instance Amazon à l'aide de votre rôle IAM en procédant comme suit :
+ Suivez [Lancer rapidement une instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html#liw-quickly-launch-instance) dans le *guide de EC2 l'utilisateur Amazon*. Toutefois, avant l'étape finale de soumission, effectuez également les opérations suivantes :
  + Sous **Détails avancés**, pour le **profil d'instance IAM**, choisissez le rôle que vous avez créé à l'étape précédente.

 Avec cette EC2 configuration IAM et Amazon, vous pouvez déployer votre application sur l' EC2 instance Amazon et votre application aura un accès en lecture au service Amazon S3. 

## Connect à l' EC2 instance
<a name="net-dg-hosm-connect"></a>

Connectez-vous à l' EC2 instance Amazon afin de pouvoir y transférer votre application, puis exécuter l'application. Vous aurez besoin du fichier contenant la partie privée de la paire de clés que vous avez utilisée sous **Key pair (login)** lorsque vous avez créé votre instance, c'est-à-dire le fichier PEM.

Pour ce faire, suivez les instructions correspondant à votre type d'instance : [Connect to your Linux instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html) or [Connect to your Windows instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html). Lorsque vous vous connectez, faites-le de manière à pouvoir transférer des fichiers de votre machine de développement vers votre instance. 

**Note**  
Sur un terminal Linux ou macOS, vous pouvez utiliser la commande de copie sécurisée pour copier votre application. Pour l'utiliser `scp` avec une paire de clés, vous pouvez utiliser la commande suivante : `scp -i path/to/key file/to/copy ec2-user@ec2-xx-xx-xxx-xxx.compute.amazonaws.com:~`  
Pour plus d'informations sur Windows, voir [Transférer des fichiers vers des instances Windows](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instanceWindowsFileTransfer.html).

Si vous utilisez un AWS kit d'outils, vous pouvez souvent également vous connecter à l'instance à l'aide du kit d'outils. Pour plus d'informations, consultez le guide de l'utilisateur spécifique à la boîte à outils que vous utilisez.

## Exécutez votre application sur l' EC2 instance
<a name="net-dg-hosm-run-the-app"></a>

1. Copiez les fichiers de votre application depuis votre disque local vers votre EC2 instance Amazon.

1. Lancez l'application et vérifiez qu'elle s'exécute avec les mêmes résultats que sur votre machine de développement.

1. (Facultatif) Vérifiez que l'application utilise les informations d'identification fournies par le rôle IAM.

   1. Connectez-vous à la EC2 console Amazon AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Sélectionnez l’instance.

   1. Choisissez **Actions**, **Sécurité**, puis **Modifier le rôle IAM**.

   1.  Pour le **rôle IAM**, détachez le rôle IAM en choisissant **Aucun** rôle IAM.

   1.  Choisissez **Mettre le rôle IAM à jour**.

   1. Réexécutez l'application et vérifiez qu'elle renvoie une erreur d'autorisation.

# Utiliser le plugin TIP pour accéder Services AWS
<a name="access-tip"></a>

 La propagation sécurisée des identités (TIP) est une fonctionnalité AWS IAM Identity Center qui permet aux administrateurs d' Services AWS accorder des autorisations en fonction des attributs de l'utilisateur tels que les associations de groupes. Avec la propagation d'identité sécurisée, le contexte d'identité est ajouté à un rôle IAM pour identifier l'utilisateur qui demande l'accès aux AWS ressources. Ce contexte est propagé à d'autres Services AWS. 

 Le contexte d'identité comprend les informations Services AWS utilisées pour prendre des décisions d'autorisation lorsqu'ils reçoivent des demandes d'accès. Ces informations incluent des métadonnées qui identifient le demandeur (par exemple, un utilisateur du IAM Identity Center), l'accès Service AWS auquel l'accès est demandé (par exemple, Amazon Redshift) et l'étendue de l'accès (par exemple, accès en lecture seule). Le destinataire Service AWS utilise ce contexte, ainsi que toutes les autorisations attribuées à l'utilisateur, pour autoriser l'accès à ses ressources. Pour plus d'informations, reportez-vous à la section [Vue d'ensemble de la propagation des identités fiables](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html) dans le Guide de AWS IAM Identity Center l'utilisateur. 

 Le plugin TIP peut être utilisé avec un Services AWS support de propagation d'identité fiable. À titre de cas d'utilisation de référence, consultez [la section Configuration d'une application Amazon Q Business AWS IAM Identity Centerà l'aide](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) du *guide de l'utilisateur Amazon Q Business*. 

**Note**  
 Si vous utilisez Amazon Q Business, consultez [Configuration d'une application Amazon Q Business à l'aide AWS IAM Identity Center](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/create-application.html) d'instructions spécifiques au service. 

## Conditions préalables à l'utilisation du plugin TIP
<a name="prereq-tip"></a>

Les ressources suivantes sont nécessaires pour que le plugin fonctionne : 

1. Vous devez utiliser le AWS SDK pour Java ou le AWS SDK pour JavaScript. 

1. Vérifiez que le service que vous utilisez prend en charge la propagation d'identités fiables.

   Consultez la colonne **Permet la propagation d'identités fiables via IAM Identity Center** du tableau des [applications AWS gérées qui s'intègrent à IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-that-work-with-identity-center.html) dans le guide de l'*AWS IAM Identity Center utilisateur*. 

1. Activez le centre d'identité IAM et la propagation fiable des identités.

   Consultez les [conditions préalables et considérations relatives au TIP](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html) dans le *guide de AWS IAM Identity Center l'utilisateur*. 

1. Vous devez avoir une Identity-Center-integrated candidature. 

   Consultez la section [Applications AWS gérées ou Applications](https://docs.aws.amazon.com/singlesignon/latest/userguide/awsapps-quick-start-setting-up-identity-center-to-test-awsmanagedapps.html) [gérées par le client](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html) dans le *Guide de AWS IAM Identity Center l'utilisateur*. 

1. Vous devez configurer un émetteur de jetons sécurisé (TTI) et connecter votre service à IAM Identity Center. 

   *Consultez [les sections Conditions requises pour les émetteurs de jetons fiables](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites) et [Tâches de configuration d'un émetteur de jetons de confiance](https://docs.aws.amazon.com/singlesignon/latest/userguide/setuptrustedtokenissuer.html#setuptrustedtokenissuer-tasks) dans le guide de l'AWS IAM Identity Center utilisateur.*

## Pour utiliser le plugin TIP dans votre code
<a name="using-tip"></a>

1. Créez une instance du plugin de propagation d'identité sécurisé.

1. Créez une instance de client de service pour interagir avec votre client de service Service AWS et personnalisez-le en ajoutant le plug-in de propagation d'identité sécurisé. 

Le plugin TIP prend les paramètres d'entrée suivants :
+ **`webTokenProvider`**: fonction que le client implémente pour obtenir un jeton OpenID auprès de son fournisseur d'identité externe. 
+ **`accessRoleArn`**: L'ARN du rôle IAM à assumer par le plugin avec le contexte d'identité de l'utilisateur pour obtenir les informations d'identification améliorées. 
+ **`applicationArn`**: chaîne d'identifiant unique du client ou de l'application. Cette valeur est un ARN d'application pour lequel OAuth des autorisations sont configurées. 
+ **`ssoOidcClient`**: (Facultatif) Un client OIDC SSO, tel que [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/ssooidc/SsoOidcClient.html)pour Java ou [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sso-oidc/)pour JavaScript, avec des configurations définies par le client. S’il n’est pas fourni, un client OIDC utilisant `applicationRoleArn` sera instancié et utilisé. 
+  **`stsClient`**: (Facultatif) Un AWS STS client avec des configurations définies par le client, utilisé pour assumer le `accessRoleArn` contexte d'identité de l'utilisateur. S'il n'est pas fourni, un AWS STS client utilisant `applicationRoleArn` sera instancié et utilisé. 
+ **`applicationRoleArn`**: (Facultatif) L'ARN du rôle IAM à utiliser pour que l'OIDC et les AWS STS clients puissent être initialisés. `AssumeRoleWithWebIdentity`
  + S'ils ne sont pas fournis, **les** `stsClient` paramètres `ssoOidcClient` et doivent être fournis.
  + S'il est fourni, il ne `applicationRoleArn` peut pas s'agir de la même valeur que le `accessRoleArn` paramètre. `applicationRoleArn`est utilisé pour créer le STSClient, qui est utilisé pour assumer le rôle AccessRole. Si le même rôle est utilisé pour `applicationRole` les deux`accessRole`, cela signifierait utiliser un rôle pour s'assumer (hypothèse d'un rôle propre), ce qui est déconseillé par. AWS Consultez l'[annonce](https://aws.amazon.com/blogs/security/announcing-an-update-to-iam-role-trust-policy-behavior/) pour plus de détails.

### Considérations relatives à `ssoOidcClient``stsClient`, et `applicationRoleArn` paramètres
<a name="considerations-tip"></a>

Lors de la configuration du plug-in TIP, tenez compte des exigences d'autorisation suivantes en fonction des paramètres que vous fournissez :
+ Si vous fournissez `ssoOidcClient` et `stsClient` :
  + Les informations d'identification figurant sur le `ssoOidcClient` doivent être `oauth:CreateTokenWithIAM` autorisées à appeler le centre d'identité afin d'obtenir le contexte utilisateur spécifique au centre d'identité.
  + Les informations d'identification `stsClient` devraient être `sts:AssumeRole` activées et `sts:SetContext` les autorisations activées`accessRole`. `accessRole`doit également être configuré avec une relation de confiance avec les informations d'identification activées`stsClient`.
+ Si vous fournissez `applicationRoleArn` :
  + `applicationRole`doit disposer des `oauth:CreateTokenWithIAM` `sts:SetContext` autorisations `sts:AssumeRole` et des autorisations sur les ressources requises (instance IdC`accessRole`) car elles seront utilisées pour créer des clients OIDC et STS.
  + `applicationRole`doit avoir une relation de confiance avec le fournisseur d'identité utilisé pour générer le`webToken`, car il `webToken` sera utilisé pour assumer le rôle d'application via l'[AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)appel du plugin.

**Exemple ApplicationRole de configuration :**

Politique de confiance avec le fournisseur de jetons Web :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::ACCOUNT_ID:oidc-provider/IDENTITY_PROVIDER_URL"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "IDENTITY_PROVIDER_URL:aud": "CLIENT_ID_TO_BE_TRUSTED"
                }
            }
        }
    ]
}
```

Politique d'autorisation :

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ],
            "Resource": [
                "accessRoleArn"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sso-oauth:CreateTokenWithIAM"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Exemples de code utilisant TIP
<a name="tip-code-example"></a>

Les exemples ci-dessous montrent comment implémenter le plugin TIP dans votre code à l'aide du AWS SDK pour Java ou du AWS SDK pour JavaScript.

------
#### [ Java ]

Pour utiliser le plugin TIP dans votre AWS SDK pour Java projet, vous devez le déclarer en tant que dépendance dans le `pom.xml` fichier de votre projet. 

```
<dependency>
<groupId>software.amazon.awsidentity.trustedIdentityPropagation</groupId>
<artifactId>aws-sdk-java-trustedIdentityPropagation-java-plugin</artifactId>
   <version>2.0.0</version>
</dependency>
```

Dans votre code source, incluez l'instruction de package requise pour`software.amazon.awssdk.trustedidentitypropagation`. 

Les exemples suivants montrent deux manières de créer une instance du plugin de propagation d'identité sécurisé et de l'ajouter à un client de service. Les deux exemples utilisent Amazon S3 en tant que service et sont utilisés `S3AccessGrantsPlugin` pour gérer les autorisations spécifiques aux utilisateurs, mais ils peuvent être appliqués à tout Service AWS ce qui prend en charge la propagation d'identité sécurisée (TIP). 

**Note**  
Pour ces exemples, vous devez configurer les autorisations spécifiques à l'utilisateur à partir de S3 Access Grants. Reportez-vous à la [documentation relative aux subventions d'accès S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) pour plus de détails.

**Option 1 : créer et transmettre des clients OIDC et STS**

```
SsoOidcClient oidcClient = SsoOidcClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

StsClient stsClient = StsClient.builder()
    .region(Region.US_EAST_1)
    .credentialsProvider(credentialsProvider).build();

TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .ssoOidcClient(oidcClient)
        .stsClient(stsClient)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

**Option 2 : Transférer applicationRoleArn et reporter la création du client au plugin**

```
TrustedIdentityPropagationPlugin trustedIdentityPropagationPlugin = TrustedIdentityPropagationPlugin.builder()
        .webTokenProvider(() -> webToken)
        .applicationArn(idcApplicationArn)
        .accessRoleArn(accessRoleArn)
        .applicationRoleArn(applicationRoleArn)
        .build();

S3AccessGrantsPlugin accessGrantsPlugin = S3AccessGrantsPlugin.builder()
        .build();

S3Client s3Client =
        S3Client.builder().region(Region.US_EAST_1)
                .crossRegionAccessEnabled(true)
                .addPlugin(trustedIdentityPropagationPlugin)
                .addPlugin(accessGrantsPlugin)
                .build();

final var resp = s3Client.getObject(GetObjectRequest.builder()
        .key("path/to/object/fileName")
        .bucket("bucketName")
        .build());
```

Pour plus de détails et la source, voir [ trusted-identity-propagation-java](https://github.com/aws-sdk-plugin/trusted-identity-propagation-java)ci-dessous GitHub.

------
#### [ JavaScript ]

Exécutez la commande suivante pour installer le package du plugin d'authentification TIP dans votre AWS SDK pour JavaScript projet : 

```
$  npm i @aws-sdk-extension/trusted-identity-propagation
```

La version finale `package.json` doit inclure une dépendance similaire à la suivante : 

```
  "dependencies": {
"@aws-sdk-extension/trusted-identity-propagation": "^2.0.0"
  },
```

 Dans votre code source, importez la `TrustedIdentityPropagationExtension` dépendance requise. 

 Les exemples suivants montrent deux manières de créer une instance du plugin de propagation d'identité sécurisé et de l'ajouter à un client de service. Les deux exemples utilisent Amazon S3 en tant que service et utilisent Amazon S3 Access Grants pour gérer les autorisations spécifiques aux utilisateurs, mais ils peuvent être appliqués à tout Service AWS ce qui prend en charge la propagation d'identité sécurisée (TIP). 

**Note**  
Pour ces exemples, vous devez configurer les autorisations spécifiques à l'utilisateur à partir d'Amazon S3 Access Grants. Consultez la [documentation Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) pour plus de détails.

**Option 1 : créer et transmettre des clients OIDC et STS**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            ssoOidcClient: customOidcClient,
            stsClient: customStsClient,
            accessRoleArn: accessRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  // Create a new S3 client with the temporary credentials
  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  // Use the temporary S3 client to perform the operation
  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  // Process the S3 object data
  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

**Option 2 : Transférer applicationRoleArn et reporter la création du client au plugin**

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
import { S3ControlClient, GetDataAccessCommand } from "@aws-sdk/client-s3-control";
import { TrustedIdentityPropagationExtension } from "@aws-sdk-extension/trusted-identity-propagation";

const s3ControlClient = new S3ControlClient({
    region: "us-east-1",
    extensions: [
        TrustedIdentityPropagationExtension.create({
            webTokenProvider: async () => {
                return 'ID_TOKEN_FROM_YOUR_IDENTITY_PROVIDER';
            },
            accessRoleArn: accessRoleArn,
            applicationRoleArn: applicationRoleArn,
            applicationArn: applicationArn,
        }),
    ],
});

// Same S3 AccessGrants workflow as Option 1
const getDataAccessParams = {
  Target: "S3_URI_PATH",
  Permission: "READ",
  AccountId: ACCOUNT_ID,
  InstanceArn: S3_ACCESS_GRANTS_ARN,
  TargetType: "Object",
};

try {
  const command = new GetDataAccessCommand(getDataAccessParams);
  const response = await s3ControlClient.send(command);

  const credentials = response.Credentials;

  const temporaryS3Client = new S3Client({
    region: "us-east-1",
    credentials: {
      accessKeyId: credentials.AccessKeyId,
      secretAccessKey: credentials.SecretAccessKey,
      sessionToken: credentials.SessionToken,
    },
  });

  const s3Params = {
    Bucket: "BUCKET_NAME",
    Key: "S3_OBJECT_KEY",
  };
  const getObjectCommand = new GetObjectCommand(s3Params);
  const s3Object = await temporaryS3Client.send(getObjectCommand);

  const fileContent = await s3Object.Body.transformToString();

  console.log("Successfully retrieved S3 object:", fileContent);
} catch (error) {
  console.error("Error accessing S3 data:", error);
}
```

Pour plus de détails et la source, voir [trusted-identity-propagation-js](https://github.com/aws-sdk-plugin/trusted-identity-propagation-js)ci-dessous GitHub.

------