

**Cette documentation concerne AWS CLI uniquement la version 1 du.**

Nous avons annoncé la sortie end-of-support de la AWS CLI version 1. Nous vous recommandons de migrer vers la AWS CLI version 2. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, consultez l'[annonce](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/). Pour la documentation relative à la version 2 du AWS CLI, consultez le [guide de l'utilisateur de la version 2](https://docs.aws.amazon.com/cli/latest/userguide/).

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.

# Authentification et informations d'accès pour AWS CLI
<a name="cli-chap-authentication"></a>

Vous devez établir la manière dont ils AWS CLI s'authentifient AWS lorsque vous développez avec des AWS services. Pour configurer les informations d'identification pour l'accès par programmation au AWS CLI, choisissez l'une des options suivantes. Les options sont présentées par ordre de recommandation.


****  

| Type d’authentification | Objectif | Instructions | 
| --- | --- | --- | 
| Informations d’identification à court terme pour les utilisateurs IAM | Utiliser les informations d’identification à court terme pour les utilisateurs IAM, qui sont plus sécurisées que celles à long terme. Si des informations d’identification sont compromises, leur durée d’utilisation est limitée avant qu’elles n’expirent. | [Authentification à l'aide d'informations d'identification à court terme pour AWS CLI](cli-authentication-short-term.md) | 
| Utilisateurs IAM ou sur une instance Amazon EC2.  | Utiliser les métadonnées d’une instance Amazon EC2 pour demander des informations d’identification temporaires à l’aide du rôle attribué à l’instance Amazon EC2. | [Utilisation des métadonnées de l'instance Amazon EC2 comme informations d'identification dans AWS CLI](cli-configure-metadata.md) | 
| Endosser des rôles pour les autorisations | Associer une autre méthode d’identification et endosser un rôle pour un accès temporaire aux Services AWS auxquels le compte utilisateur n’a peut-être pas accès. | [Utilisation d'un rôle IAM dans AWS CLI](cli-configure-role.md) | 
| Informations d’identification à long terme des utilisateurs IAM | (Non recommandé) Utiliser des informations d’identification à long terme qui n’expirent jamais. | [Authentification à l'aide des informations d'identification utilisateur IAM pour AWS CLI](cli-authentication-user.md) | 
| Stockage externe des utilisateurs du personnel IAM ou  | (Non recommandé) Associer une autre méthode d’identification, mais stocker les valeurs d’informations d’identification dans un emplacement extérieur à l’ AWS CLI. Cette méthode n’est sécurisée que dans la mesure où l’emplacement externe où les informations d’identification sont stockées est sûr. | [Obtenir des informations d'identification par le biais d'un processus externe dans le AWS CLI](cli-configure-sourcing-external.md) | 

## Configuration et priorité des informations d’identification
<a name="cli-chap-authentication-precedence"></a>

Les informations d'identification et les paramètres de configuration se trouvent à plusieurs endroits, tels que les variables d'environnement système ou utilisateur, les fichiers de AWS configuration locaux, ou sont explicitement déclarés sur la ligne de commande en tant que paramètre. Certains emplacements l’emportent sur d’autres. Les informations d’identification de l’ AWS CLI et les paramètres de configuration ont priorité dans l’ordre suivant :

1. **[Options de ligne de commande](cli-configure-options.md)** : remplacent les paramètres de tout autre emplacement, par exemple les paramètres `--region`, `--output` et `--profile`.

1. **[Variables d’environnement](cli-configure-envvars.md)** : vous pouvez stocker les valeurs dans les variables d’environnement système.

1. **[Endosser un rôle](cli-configure-role.md)** : endossez les autorisations d’un rôle IAM au moyen de la configuration ou de la commande [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role.html).

1. **[Endosser un rôle avec une identité web](cli-configure-role.md)** : endossez les autorisations d’un rôle IAM utilisant une identité web au moyen de la configuration ou de la commande [https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/v1/reference/sts/assume-role-with-web-identity.html).

1. **[Fichier d’informations d’identification](cli-configure-files.md)** : les fichiers `credentials` et `config` sont mis à jour lorsque vous exécutez la commande `aws configure`. Le fichier `credentials` est situé dans `~/.aws/credentials` sous Linux ou macOS, ou dans `C:\Users\USERNAME\.aws\credentials` sous Windows.

1. **[Processus personnalisé](cli-configure-sourcing-external.md)** : obtenez vos informations d’identification auprès d’une source externe.

1. **[Fichier de configuration](cli-configure-files.md)** : les fichiers `credentials` et `config` sont mis à jour lorsque vous exécutez la commande `aws configure`. Le fichier `config` est situé dans `~/.aws/config` sous Linux ou macOS, ou dans `C:\Users\USERNAME\.aws\config` sous Windows.

1. **[Informations d’identification de conteneur](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** : vous pouvez associer un rôle IAM à chacune de vos définitions de tâches Amazon Elastic Container Service (Amazon ECS). Les informations d’identification temporaires pour ce rôle sont ensuite disponibles pour les conteneurs de cette tâche. Pour plus d’informations, consultez [Rôles IAM pour les tâches](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dans le *Guide du développeur Amazon Elastic Container Service*.

1. **[Informations d’identification de profil d’instance Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** : vous pouvez associer un rôle IAM à chacune de vos instances Amazon Elastic Compute Cloud (Amazon EC2). Les informations d’identification temporaires pour ce rôle sont ensuite disponibles pour l’exécution du code dans l’instance. Les informations d’identification sont fournies au moyen du service de métadonnées Amazon EC2. Pour plus d’informations, consultez [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’utilisateur Amazon EC2* et [Utilisation des profils d’instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dans le *Guide de l’utilisateur IAM*.

## Rubriques supplémentaires de cette section
<a name="cli-chap-authentication-topics"></a>
+ [Authentification à l'aide d'informations d'identification à court terme pour AWS CLI](cli-authentication-short-term.md)
+ [Utilisation d'un rôle IAM dans AWS CLI](cli-configure-role.md)
+ [Authentification à l'aide des informations d'identification utilisateur IAM pour AWS CLI](cli-authentication-user.md)
+ [Utilisation des métadonnées de l'instance Amazon EC2 comme informations d'identification dans AWS CLI](cli-configure-metadata.md)
+ [Obtenir des informations d'identification par le biais d'un processus externe dans le AWS CLI](cli-configure-sourcing-external.md)

# Authentification à l'aide d'informations d'identification à court terme pour AWS CLI
<a name="cli-authentication-short-term"></a>

Nous vous recommandons de configurer votre kit SDK ou votre outil pour utiliser l’[authentification IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html) avec des options d’extension de la durée des sessions. 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.

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

1. Suivez [ces instructions](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html) pour copier les informations d'identification du rôle IAM depuis le portail AWS d'accès.

   1. Pour l'étape 2 des instructions associées, choisissez le AWS compte et le nom du rôle IAM qui accordent 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 4, sélectionnez l’option **Ajouter un profil à votre fichier d’informations d’identification AWS ** et copiez le contenu. 

1. Créez ou ouvrez le fichier `credentials` partagé. Ce fichier est `~/.aws/credentials` sous Linux et macOS, et `%USERPROFILE%\.aws\credentials` sous Windows. Pour de plus amples informations, veuillez consulter [Paramètres des fichiers de configuration et d'identification dans AWS CLI](cli-configure-files.md). 

1. Ajoutez le texte suivant au fichier `credentials` partagé. Remplacez les exemples de valeurs par les informations d’identification que vous avez copiées. 

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

1. Ajoutez la région et le format par défaut de votre choix au fichier `config` partagé. 

   ```
   [default]
   region=us-west-2
   output=json
   
   [profile user1]
   region=us-east-1
   output=text
   ```

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

Répétez ces étapes chaque fois que vos informations d’identification expirent.

# Utilisation d'un rôle IAM dans AWS CLI
<a name="cli-configure-role"></a>

Un [rôle Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) est un outil d'autorisation qui permet à un utilisateur d'obtenir des autorisations supplémentaires (ou différentes), ou d'obtenir des autorisations pour effectuer des actions dans un autre AWS compte. 

**Topics**
+ [Conditions préalables](#cli-role-prereqs)
+ [Présentation de l’utilisation des rôles IAM](#cli-role-overview)
+ [Configuration et utilisation d’un rôle](#cli-role-prepare)
+ [Utilisation de l’authentification multifactorielle](#cli-configure-role-mfa)
+ [Rôles entre comptes et ID externe](#cli-configure-role-xaccount)
+ [Spécification d’un nom de session de rôle pour faciliter l’audit](#cli-configure-role-session-name)
+ [Utilisation d’un rôle à l’aide d’une identité web](#cli-configure-role-oidc)
+ [Suppression des informations d’identification mises en cache](#cli-configure-role-cache)

## Conditions préalables
<a name="cli-role-prereqs"></a>

Pour utiliser les commandes `iam`, vous devez installer et configurer l’ AWS CLI. Cela inclut la configuration d’un profil configuré, en supposant qu’un rôle soit associé à une autre méthode d’informations d’identification. Pour plus d’informations, consultez [Installation, mise à jour et désinstallation de l’ AWS CLI](cli-chap-install.md). 

## Présentation de l’utilisation des rôles IAM
<a name="cli-role-overview"></a>

Vous pouvez configurer le AWS Command Line Interface (AWS CLI) pour utiliser un rôle IAM en définissant un profil pour le rôle dans le `~/.aws/config` fichier. 

L’exemple suivant illustre un profil de rôle nommé `marketingadmin`. Si vous exécutez des commandes avec `--profile marketingadmin` (ou si vous le spécifiez avec la [variable d'AWS\$1PROFILE environnement](cli-configure-envvars.md)), AWS CLI utilise les informations d'identification définies dans un profil distinct `user1` pour assumer le rôle avec l'Amazon Resource Name (ARN)`arn:aws:iam::123456789012:role/marketingadminrole`. Vous pouvez exécuter toutes les opérations permises par les autorisations affectées à ce rôle.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
source_profile = user1
```

Vous pouvez ensuite spécifier un `source_profile` qui pointe sur un profil nommé séparé qui contient les informations d’identification de l’utilisateur avec l’autorisation d’utiliser ce rôle. Dans l’exemple précédent, le profil `marketingadmin` utilise les informations d’identification du profil `user1`. Lorsque vous spécifiez qu'une AWS CLI commande doit utiliser le profil`marketingadmin`, elle recherche AWS CLI automatiquement les informations d'identification du `user1` profil lié et les utilise pour demander des informations d'identification temporaires pour le rôle IAM spécifié. Pour ce faire, la CLI utilise l'AssumeRoleopération [sts :](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) en arrière-plan. Ces informations d’identification temporaires sont ensuite utilisées pour exécuter la commande d’ AWS CLI demandée. Le rôle spécifié doit être associé à des politiques d'autorisation IAM autorisant l'exécution de la AWS CLI commande demandée.

Pour exécuter une AWS CLI commande depuis une instance Amazon Elastic Compute Cloud (Amazon EC2) ou un conteneur Amazon Elastic Container Service (Amazon ECS), vous pouvez utiliser un rôle IAM associé au profil d'instance ou au conteneur. Si vous ne spécifiez aucun profil ni ne définissez aucune variable d’environnement, ce rôle est utilisé directement. Cela vous permet d’éviter de stocker des clés d’accès à longue durée de vie sur vos instances. Vous pouvez également utiliser ces rôles d’instance ou de conteneur uniquement pour obtenir les informations d’identification d’un autre rôle. Pour ce faire, vous devez utiliser `credential_source` (au lieu de `source_profile`) pour spécifier comment trouver les informations d’identification. L’attribut `credential_source` prend en charge les valeurs suivantes :
+ `Environment` : extrait les informations d’identification source à partir des variables d’environnement.
+ `Ec2InstanceMetadata` : utilise le rôle IAM attaché au profil d’instance Amazon EC2.
+ `EcsContainer` : utilise le rôle IAM attaché au conteneur Amazon ECS.

L’exemple suivant illustre le même rôle `marketingadminrole` utilisé en référençant un profil d’instance Amazon EC2.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
```

Lorsque vous invoquez un rôle, vous disposez d’options supplémentaires dont vous pouvez avoir besoin, telles que l’utilisation d’une authentification multifactorielle et d’un ID externe (utilisé par des sociétés tierces pour accéder aux ressources de leurs clients). Vous pouvez également spécifier des noms de session de rôle uniques qui peuvent être audités plus facilement dans AWS CloudTrail les journaux.

## Configuration et utilisation d’un rôle
<a name="cli-role-prepare"></a>

Lorsque vous exécutez des commandes à l'aide d'un profil qui spécifie un rôle IAM, il AWS CLI utilise les informations d'identification du profil source pour appeler AWS Security Token Service (AWS STS) et demander des informations d'identification temporaires pour le rôle spécifié. L’utilisateur dans le profil source doit avoir l’autorisation d’appeler `sts:assume-role` pour le rôle dans le profil spécifié. Le rôle doit avoir une relation d’approbation qui permet à l’utilisateur dans le profil source d’utiliser le rôle. Le processus de récupération, puis d’utilisation d’informations d’identification temporaires pour un rôle revient à *assumer le rôle*.

Vous pouvez créer un rôle dans IAM avec les autorisations que vous souhaitez que les utilisateurs endossent en suivant la procédure [Création d’un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *. Si le rôle et l’utilisateur du profil source sont dans le même compte, vous pouvez entrer votre propre ID de compte lors de la configuration de la relation de confiance du rôle.

Une fois le rôle créé, modifiez la relation de confiance afin d’autoriser l’utilisateur à assumer ce rôle. 

L’exemple suivant illustre une politique d’approbation que vous pouvez attacher à un rôle. Cette politique autorise le rôle à être assumé par n’importe quel utilisateur dans le compte 123456789012 ***si*** l’administrateur de ce compte accorde explicitement l’autorisation `sts:AssumeRole` à l’utilisateur.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

La politique d’approbation n’accorde pas réellement d’autorisations. L’administrateur du compte doit déléguer l’autorisation d’assumer le rôle à des utilisateurs individuels en associant une politique aux autorisations appropriées. L’exemple suivant illustre une politique que vous pouvez attacher à un utilisateur et qui permet à l’utilisateur d’assumer uniquement le rôle `marketingadminrole`. Pour plus d’informations sur l’octroi d’un accès utilisateur pour assumer un rôle, consultez [Octroi d’autorisations à un utilisateur pour assumer un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) dans le *Guide de l’utilisateur IAM*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::123456789012:role/marketingadminrole"
    }
  ]
}
```

------

L'utilisateur n'a pas besoin d'autorisations supplémentaires pour exécuter les AWS CLI commandes à l'aide du profil de rôle. Au lieu de cela, les autorisations pour exécuter la commande proviennent de celles qui sont attachées au *rôle*. Vous associez des politiques d'autorisation au rôle pour spécifier quelles actions peuvent être effectuées sur quelles AWS ressources. Pour plus d’informations sur l’attachement d’autorisations à un rôle (qui fonctionne de manière identique à un utilisateur), consultez [Modification des autorisations pour un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) dans le *Guide de l’utilisateur IAM*.

Maintenant que vous avez correctement configuré le profil de rôle, les autorisations de rôle, la relation d’approbation du rôle et les autorisations utilisateur, vous pouvez utiliser ce rôle au niveau de la ligne de commande en appelant l’option `--profile`. Par exemple, ce qui suit appelle la commande `ls` d’Amazon S3 en utilisant les autorisations attachées au rôle `marketingadmin`, tel que défini par l’exemple au début de cette rubrique.

```
$ aws s3 ls --profile marketingadmin
```

Si vous souhaitez utiliser le rôle pour plusieurs appels, vous pouvez définir la variable d’environnement `AWS_PROFILE` pour la session en cours à partir de la ligne de commande. Lorsque cette variable d’environnement est définie, vous n’avez pas besoin de spécifier l’option `--profile` pour chaque commande. 

**Linux ou macOS**

```
$ export AWS_PROFILE=marketingadmin
```

**Windows**

```
C:\> setx AWS_PROFILE marketingadmin
```

Pour plus d’informations sur la configuration des utilisateurs et des rôles, consultez [Identités IAM (utilisateurs, groupes d’utilisateurs et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) et [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id-roles.html) dans le *Guide de l’utilisateur IAM*.

## Utilisation de l’authentification multifactorielle
<a name="cli-configure-role-mfa"></a>

Pour une sécurité accrue, vous pouvez exiger que les utilisateurs fournissent une clé à usage unique générée à partir d’un périphérique d’authentification multifactorielle (MFA), d’un appareil U2F ou d’une application mobile lorsqu’ils essaient d’effectuer un appel en utilisant le profil de rôle.

Tout d’abord, vous pouvez choisir de modifier la relation d’approbation sur le rôle IAM pour exiger une authentification MFA. De cette façon, aucun utilisateur ne peut utiliser le rôle sans l’authentification MFA. Pour obtenir un exemple, consultez la ligne `Condition` dans l’exemple suivant. Cette politique permet à l’utilisateur nommé `anika` d’assumer le rôle auquel la politique est attachée, mais uniquement s’il s’authentifie à l’aide de l’authentification MFA. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:user/anika" },
      "Action": "sts:AssumeRole",
      "Condition": { "Bool": { "aws:multifactorAuthPresent": true } }
    }
  ]
}
```

------

Ajoutez ensuite une ligne au profil de rôle qui spécifie l’ARN du périphérique MFA de l’utilisateur. L’exemple de fichier `config` suivant montre deux profils de rôle qui utilisent tous deux les clés d’accès pour l’utilisateur `anika` afin de demander des informations d’identification temporaires pour le rôle `cli-role`. L’utilisateur `anika` dispose des autorisations requises pour assumer le rôle, accordées par la politique d’approbation du rôle.

```
[profile role-without-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile=cli-user

[profile role-with-mfa]
region = us-west-2
role_arn= arn:aws:iam::128716708097:role/cli-role
source_profile = cli-user
mfa_serial = arn:aws:iam::128716708097:mfa/cli-user

[profile cli-user]
region = us-west-2
output = json
```

Le paramètre `mfa_serial` peut utiliser un ARN, comme indiqué, ou le numéro de série d’un jeton MFA matériel.

Le premier profil, `role-without-mfa`, ne nécessite pas d’authentification MFA. Cependant, étant donné que l’exemple précédent de politique d’approbation attachée au rôle exige l’authentification MFA, toute tentative d’exécuter une commande avec ce profil échoue.

```
$ aws iam list-users --profile role-without-mfa

An error occurred (AccessDenied) when calling the AssumeRole operation: Access denied
```

La deuxième entrée de profil, `role-with-mfa`, identifie un périphérique MFA à utiliser. Lorsque l'utilisateur tente d'exécuter une AWS CLI commande avec ce profil, il est AWS CLI invité à saisir le mot de passe à usage unique (OTP) fourni par le dispositif MFA. Si l’authentification MFA réussit, la commande exécute l’opération demandée. L’OTP ne s’affiche pas à l’écran.

```
$ aws iam list-users --profile role-with-mfa
Enter MFA code for arn:aws:iam::123456789012:mfa/cli-user:
{
    "Users": [
        {
            ...
```

## Rôles entre comptes et ID externe
<a name="cli-configure-role-xaccount"></a>

Vous pouvez permettre aux utilisateurs d’utiliser des rôles qui appartiennent à différents comptes en configurant le rôle en tant que rôle entre comptes. Lors de la création du rôle, définissez le type de rôle sur **Autre compte AWS **, comme décrit dans [Création d’un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html). Le cas échéant, sélectionnez **MFA obligatoire**. L’option **MFA obligatoire** configure la condition appropriée dans la relation de confiance comme décrit dans la section [Utilisation de l’authentification multifactorielle](#cli-configure-role-mfa).

Si vous utilisez un [ID externe](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) pour accorder un contrôle supplémentaire aux personnes susceptibles d’utiliser un rôle entre les comptes, vous devez ajouter le paramètre `external_id` au profil de rôle. Généralement, vous utilisez uniquement cette option lorsque l’autre compte est contrôlé par une personne qui ne fait pas partie de votre entreprise ou organisation.

```
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```

## Spécification d’un nom de session de rôle pour faciliter l’audit
<a name="cli-configure-role-session-name"></a>

Lorsque de nombreuses personnes partagent un rôle, la vérification devient plus difficile. Vous souhaitez associer chaque opération appelée à la personne à l’origine de cet appel. Toutefois, lorsque la personne utilise un rôle, la prise en charge du rôle est une action distincte de l’appel d’une opération, et vous devez corréler les deux manuellement.

Vous pouvez simplifier cela en spécifiant des noms de session de rôle uniques lorsque les utilisateurs assument un rôle. Pour ce faire, vous devez ajouter un paramètre `role_session_name` à chaque profil nommé dans le fichier `config` qui spécifie un rôle. La valeur de `role_session_name` est transmise à l’opération `AssumeRole` et devient partie intégrante de l’ARN de la session de rôle. Il est également inclus dans les AWS CloudTrail journaux de toutes les opérations enregistrées.

Par exemple, vous pouvez créer un profil basé sur le rôle comme suit : 

```
[profile namedsessionrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
source_profile = default
role_session_name = Session_Maria_Garcia
```

La session de rôle prend alors l’ARN suivant.

```
arn:aws:iam::234567890123:assumed-role/SomeRole/Session_Maria_Garcia
```

En outre, tous les AWS CloudTrail journaux incluent le nom de session du rôle dans les informations capturées pour chaque opération.

## Utilisation d’un rôle à l’aide d’une identité web
<a name="cli-configure-role-oidc"></a>

Vous pouvez configurer un profil pour indiquer qu'il AWS CLI doit assumer un rôle à l'aide de la [fédération d'identité Web et d'Open ID Connect (OIDC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html). Lorsque vous le spécifiez dans un profil, il AWS CLI passe automatiquement l' AWS STS `AssumeRoleWithWebIdentity`appel correspondant pour vous.

**Note**  
Lorsque vous spécifiez un profil qui utilise un rôle IAM, il AWS CLI effectue les appels appropriés pour récupérer des informations d'identification temporaires. Ces informations d’identification sont stockées dans `~/.aws/cli/cache`. Les AWS CLI commandes suivantes qui spécifient le même profil utilisent les informations d'identification temporaires mises en cache jusqu'à leur expiration. À ce stade, les informations d'identification AWS CLI sont automatiquement actualisées.

Pour récupérer et utiliser des informations d’identification temporaires à l’aide de la fédération d’identité web, vous pouvez spécifier les valeurs de configuration suivantes dans un profil partagé.

[role\$1arn](#cli-configure-role)  
Spécifie l’ARN du rôle à assumer.

web\$1identity\$1token\$1file  
Spécifie le chemin d'accès à un fichier contenant un jeton d'accès OAuth 2.0 ou un jeton d'identification OpenID Connect fourni par le fournisseur d'identité. L’ AWS CLI charge ce fichier et transmet son contenu en tant qu’argument `WebIdentityToken` de l’opération `AssumeRoleWithWebIdentity`.

[role\$1session\$1name](#cli-configure-role-session-name)  
Spécifie un nom facultatif appliqué à cette session assume-role.

Voici un exemple de configuration pour la configuration minimale requise pour configurer un profil de rôle de responsable avec profil identité web :

```
# In ~/.aws/config

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

Vous pouvez également fournir cette configuration à l’aide de [variables d’environnement](cli-configure-envvars.md).

AWS\$1ROLE\$1ARN  
ARN du rôle à assumer.

AWS\$1WEB\$1FICHIER\$1JETON D'IDENTITÉ  
Chemin d’accès au fichier de jeton d’identité web.

AWS\$1ROLE\$1NOM\$1SESSION  
Nom appliqué à cette session assume-role.

**Note**  
Ces variables d’environnement s’appliquent actuellement uniquement au rôle « assume » avec le fournisseur d’identité web. Ils ne s’appliquent pas à la configuration générale du fournisseur de rôle.

## Suppression des informations d’identification mises en cache
<a name="cli-configure-role-cache"></a>

Lorsque vous utilisez un rôle, les informations d'identification temporaires sont mises en AWS CLI cache localement jusqu'à leur expiration. La prochaine fois que vous essaierez de les utiliser, ils AWS CLI essaieront de les renouveler en votre nom. 

Si les informations d’identification temporaires de votre rôle sont [révoquées](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html), elles ne sont pas renouvelées automatiquement et les tentatives d’utilisation échouent. Cependant, vous pouvez supprimer le cache pour forcer le AWS CLI à récupérer de nouvelles informations d'identification.

**Linux ou macOS**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

# Authentification à l'aide des informations d'identification utilisateur IAM pour AWS CLI
<a name="cli-authentication-user"></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).

Cette section explique comment configurer les paramètres de base avec un utilisateur IAM. Il s’agit notamment de vos informations d’identification de sécurité à l’aide des fichiers `config` et `credentials`. 

**Contents**
+ [Étape 1 : création de votre utilisateur IAM](#cli-authentication-user-create)
+ [Étape 2 : récupération de vos clés d’accès](#cli-authentication-user-get)
+ [Étape 3 : configurer le AWS CLI](#cli-authentication-user-configure.title)
  + [Utilisation de `aws configure`](#cli-authentication-user-configure-wizard)

## Étape 1 : création de votre utilisateur IAM
<a name="cli-authentication-user-create"></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*. 
+ Pour **Options d’autorisation**, choisissez **Attacher directement les politiques** pour définir la manière dont vous souhaitez affecter des 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.

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

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 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 **Créer une clé d’accès – Étape 1**, sélectionnez **Interface de ligne de commande (CLI)**.

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.

1. Sélectionnez Terminé.

## Étape 3 : configurer le AWS CLI
<a name="cli-authentication-user-configure.title"></a>

Pour une utilisation générale, les AWS CLI informations suivantes sont nécessaires :
+ ID de clé d’accès
+ Clé d’accès secrète
+ AWS Région
+ Format de sortie

 AWS CLI Stocke ces informations dans un *profil* (un ensemble de paramètres) nommé `default` dans le `credentials` fichier. Par défaut, les informations de ce profil sont utilisées lorsque vous exécutez une AWS CLI commande qui ne spécifie pas explicitement le profil à utiliser. Pour plus d’informations sur le fichier `credentials`, consultez [Paramètres des fichiers de configuration et d'identification dans AWS CLI](cli-configure-files.md).

Pour configurer le AWS CLI, appliquez l'une des procédures suivantes :

**Topics**
+ [Utilisation de `aws configure`](#cli-authentication-user-configure-wizard)

### Utilisation de `aws configure`
<a name="cli-authentication-user-configure-wizard"></a>

Pour une utilisation générale, la `aws configure` commande est le moyen le plus rapide de configurer votre AWS CLI installation. Cet assistant de configuration vous invite à saisir toutes les informations dont vous avez besoin pour commencer. Sauf indication contraire à l'aide de l'`--profile`option, cette information est AWS CLI stockée dans le `default` profil.

L’exemple suivant configure un profil `default` à l’aide d’exemples de valeurs. Remplacez-les par vos propres valeurs comme décrit dans les sections suivantes.

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

L’exemple suivant configure un profil nommé `userprod` à l’aide d’exemples de valeurs. Remplacez-les par vos propres valeurs comme décrit dans les sections suivantes.

```
$ aws configure --profile userprod
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

# Utilisation des métadonnées de l'instance Amazon EC2 comme informations d'identification dans AWS CLI
<a name="cli-configure-metadata"></a>

Lorsque vous exécutez le formulaire AWS CLI depuis une instance Amazon Elastic Compute Cloud (Amazon EC2), vous pouvez simplifier la fourniture d'informations d'identification pour vos commandes. Chaque instance Amazon EC2 contient des métadonnées que l’ AWS CLI peut interroger directement pour obtenir les informations d’identification temporaires. Lorsqu'un rôle IAM est attaché à l'instance, il récupère AWS CLI automatiquement et en toute sécurité les informations d'identification à partir des métadonnées de l'instance. 

Pour désactiver ce service, utilisez la variable d'environnement [AWS\$1EC2\$1METADATA\$1DISABLED](cli-configure-envvars.md#envvars-list-AWS_EC2_METADATA_DISABLED).

**Topics**
+ [Conditions préalables](#cli-configure-metadata-prereqs)
+ [Configuration d’un profil pour les métadonnées Amazon EC2](#cli-configure-metadata-configure)

## Conditions préalables
<a name="cli-configure-metadata-prereqs"></a>

Pour utiliser les informations d'identification Amazon EC2 avec le AWS CLI, vous devez effectuer les opérations suivantes :
+ Installez et configurez l’ AWS CLI. Pour plus d’informations, consultez [Installation, mise à jour et désinstallation de l’ AWS CLI](cli-chap-install.md) et [Authentification et informations d'accès pour AWS CLI](cli-chap-authentication.md).
+ Vous comprenez les fichiers de configuration et les profils nommés. Pour de plus amples informations, veuillez consulter [Paramètres des fichiers de configuration et d'identification dans AWS CLI](cli-configure-files.md). 
+ Vous avez créé un rôle Gestion des identités et des accès AWS (IAM) qui a accès aux ressources nécessaires, et vous avez attaché ce rôle à l'instance Amazon EC2 lorsque vous la lancez. *Pour plus d'informations, consultez [les politiques IAM pour Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policies-for-amazon-ec2.html) EC2 dans le guide de l'*utilisateur Amazon EC2* [et l'octroi de l'accès AWS aux ressources aux applications exécutées sur des instances Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html) dans le guide de l'utilisateur IAM.*

## Configuration d’un profil pour les métadonnées Amazon EC2
<a name="cli-configure-metadata-configure"></a>

Pour spécifier que vous voulez utiliser les informations d’identification disponibles dans le profil d’instance Amazon EC2 d’hébergement, utilisez la syntaxe suivante dans le profil nommé dans votre fichier de configuration. Consultez les étapes suivantes pour plus d’instructions. 

```
[profile profilename]
role_arn = arn:aws:iam::123456789012:role/rolename
credential_source = Ec2InstanceMetadata
region = region
```

1. Créez un profil dans votre fichier de configuration.

   ```
   [profile profilename]
   ```

1. Ajoutez votre rôle ARN IAM qui a accès aux ressources nécessaires.

   ```
   role_arn = arn:aws:iam::123456789012:role/rolename
   ```

1. Spécifiez `Ec2InstanceMetadata` comme source d’informations d’identification.

   ```
   credential_source = Ec2InstanceMetadata
   ```

1. Définissez votre région.

   ```
   region = region
   ```

**Exemple**

L’exemple suivant suppose le rôle *`marketingadminrole`* et utilise la région `us-west-2` dans un profil d’instance Amazon EC2 nommé `marketingadmin`.

```
[profile marketingadmin]
role_arn = arn:aws:iam::123456789012:role/marketingadminrole
credential_source = Ec2InstanceMetadata
region = us-west-2
```

# Obtenir des informations d'identification par le biais d'un processus externe dans le AWS CLI
<a name="cli-configure-sourcing-external"></a>

**Avertissement**  
Cette rubrique aborde l’utilisation d’informations d’identification provenant d’un processus externe. Un risque de sécurité peut exister si la commande de génération des informations d’identification devient accessible à des processus ou utilisateurs non approuvés. Nous vous recommandons d'utiliser les alternatives sécurisées prises en charge par le AWS CLI et AWS afin de réduire le risque de compromettre vos informations d'identification. Veillez à sécuriser le fichier `config` et tous les outils et fichiers de support afin d’éviter toute divulgation.  
Assurez-vous que votre outil d'identification personnalisé n'écrit aucune information secrète, `StdErr` car le SDKs et AWS CLI peut capturer et enregistrer ces informations, les exposant potentiellement à des utilisateurs non autorisés.

Si vous disposez d'une méthode pour générer ou rechercher des informations d'identification qui n'est pas directement prise en charge par le AWS CLI, vous pouvez la configurer AWS CLI pour l'utiliser en configurant le `credential_process` paramètre dans le `config` fichier. 

Par exemple, vous pourriez inclure une entrée comme celle-ci dans le fichier `config` :

```
[profile developer]
credential_process = /opt/bin/awscreds-custom --username helen
```

**Syntaxe**  
Pour créer cette chaîne d’une manière compatible avec n’importe quel système d’exploitation, suivez ces règles :
+ Si le chemin d’accès ou le nom du fichier contient un espace, entourez le chemin d’accès complet et le nom du fichier de guillemets doubles (" "). Le chemin et le nom de fichier peuvent contenir uniquement les caractères suivants : A-Z a-z 0-9 - \$1. espace
+ Si un nom de paramètre ou une valeur de paramètre contient un espace, entourez cet élément de guillemets doubles (" "). Entourez uniquement le nom ou la valeur, pas la paire.
+ N’incluez aucune variable d’environnement dans les chaînes. Par exemple, vous ne pouvez pas inclure `$HOME` ou `%USERPROFILE%`.
+ Ne spécifiez pas le dossier de base comme `~`. Vous devez spécifier le chemin d’accès complet.

**Exemple pour Windows**

```
credential_process = "C:\Path\To\credentials.cmd" parameterWithoutSpaces "parameter with spaces"
```

**Exemple pour Linux ou macOS**

```
credential_process = "/Users/Dave/path/to/credentials.sh" parameterWithoutSpaces "parameter with spaces"
```

**Sortie attendue du programme d’informations d’identification**

 AWS CLI Exécute la commande comme indiqué dans le profil, puis lit les données à partir de`STDOUT`. La commande que vous spécifiez doit générer sur `STDOUT` une sortie JSON qui correspond à la syntaxe suivante :

```
{
  "Version": 1,
  "AccessKeyId": "an AWS access key",
  "SecretAccessKey": "your AWS secret access key",
  "SessionToken": "the AWS session token for temporary credentials", 
  "Expiration": "ISO8601 timestamp when the credentials expire"
}
```

**Note**  
À la date de cette publication, la clé `Version` doit être définie sur `1`. Cela pourrait augmenter avec le temps à mesure que la structure évolue.

La `Expiration` clé est un [ISO8601](https://en.wikipedia.org/wiki/ISO_8601)horodatage formaté. Si la clé `Expiration` n’est pas présente dans la sortie de l’outil, l’interface de ligne de commande suppose que les informations d’identification sont des informations d’identification à long terme qui ne s’actualisent pas. Dans le cas contraire, les informations d’identification sont considérées comme temporaires et sont actualisées automatiquement en réexécutant la commande `credential_process` avant leur expiration.

**Note**  
Le AWS CLI ne met ***pas*** en cache les informations d'identification des processus externes de la même manière qu'il assume les informations d'identification des rôles. Si la mise en cache est obligatoire, vous devez la mettre en œuvre dans le processus externe.

Le processus externe peut renvoyer un code de retour non nul pour indiquer qu’une erreur s’est produite lors de la récupération des informations d’identification.