Ashwin vous montre comment
authentifier l'accès
à l'aide de l'interface de ligne de commande AWS

authenticate-mfa-cli-ashwin

Comment utiliser un jeton MFA pour l’authentification de l’accès à mes ressources AWS par le biais de l’interface de ligne de commande AWS (AWS CLI) ?

Il est recommandé de protéger votre compte et ses ressources en utilisant un périphérique Multi-Factor Authentication. Si vous prévoyez d’interagir avec vos ressources à l’aide d’AWS CLI en utilisant un appareil MFA, il est préférable de créer un jeton de session temporaire. Si vous utilisez un périphérique physique MFA, la valeur de l'ARN est similaire à GAHT12345678. Si vous utilisez un périphérique MFA, la valeur est similaire à arn:aws:iam::123456789012:mfa/user. Pour plus d'informations, consultez Contrôle du statut MFA.

Une fois que vous avez installé et configuré la dernière version d’AWS CLI, exécutez la commande AWS CLI sts get-session-token, en remplaçant les variables par des informations relatives à votre compte, à vos ressources et à l’appareil MFA :

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

Vous recevez un résultat contenant des informations d’identification provisoire et un délai d’expiration de ces dernières (par défaut, il est de 12 heures), dans un format ressemblant à ce qui suit :

{
"Credentials": {
    "SecretAccessKey": "secret-access-key",
    "SessionToken": "temporary-session-token",
    "Expiration": "expiration-date-time",
    "AccessKeyId": "access-key-id"
    ;}
}

Remarque : Vous pouvez spécifier une durée d’expiration (en secondes) en utilisant l’option --duration-seconds dans la même commande, la valeur étant comprise entre 900 secondes (15 minutes) à 129600 secondes (36 heures). Si vous utilisez les informations d’identification d’un utilisateur racine, la plage se situe entre 900 secondes (15 minutes) et 3600 secondes (1 heure).

Utilisation d'informations d'identification temporaire avec des variables d'environnement

Vous pouvez utiliser des informations d’identification temporaires en exportant leurs valeurs vers des variables d’environnement à l’aide de ces commandes.

Linux :

$ export AWS_ACCESS_KEY_ID=<Access-Key-as-in-Previous-Output>
$ export AWS_SECRET_ACCESS_KEY=<Secret-Access-Key-as-in-Previous-Output>
$ export AWS_SESSION_TOKEN=<Session-Token-as-in-Previous-Output>

Windows :

> set AWS_ACCESS_KEY_ID=<Access-Key-as-in-Previous-Output>
> set AWS_SECRET_ACCESS_KEY=<Secret-Access-Key-as-in-Previous-Output>
> set AWS_SESSION_TOKEN=<Session-Token-as-in-Previous-Output>

Si vous définissez des variables d’environnement, assurez-vous de les annuler avant de faire un appel get-session-token à l’aide de ces commandes.

> unset AWS_ACCESS_KEY_ID
> unset AWS_SECRET_ACCESS_KEY
> unset AWS_SESSION_TOKEN

Utilisation des informations d’authentification avec des profils nommés

Vous pouvez également utiliser des profils nommés pour spécifier les commandes nécessitant une authentification MFA. Pour ce faire, modifiez le fichier d'informations d'identification dans le dossier .aws du répertoire d’accueil de l’utilisateur pour ajouter une nouvelle configuration de profil en vue d’émettre des commandes authentifiées MFA. Voici un exemple de configuration de profil :

[mfa]
output = json
region = us-east-1
aws_access_key_id = <Access-key-as-in-returned-output>
aws_secret_access_key = <Secret-access-key-as-in-returned-output>
aws_session_token = <Session-Token-as-in-returned-output>

Une fois que les informations d’identification ont expiré, exécutez la commande get-session-token, puis exportez les valeurs renvoyées vers les variables d’environnement ou vers la configuration du profil. Pensez à exécuter un script ou une tâche cron en arrière-plan pour contrôler l’expiration, puis demander une nouvelle authentification.

Si l'AWS CLI est configurée à l’aide de la commande aws configure, il existe une configuration par défaut avec les informations d’identification permanentes d’un utilisateur IAM utilisée par les commandes ne nécessitant pas d’authentification MFA.

Configuration d’échantillon :

.aws/credentials

[default]
aws_access_key_id = <Access-Key-for-an-IAM-User>
aws_secret_access_key = <Secret-Access-Key-for-IAM-User>

Remarque : Si vous utilisez des profils pour authentifier des commandes à l’aide de l'interface de ligne de commande AWS, spécifiez l’option --profile suivie du nom de profil pour vous assurer que les appels sont authentifiés à l’aide de MFA.

Par exemple, cette commande utilise les informations d’identification par défaut et n’est pas authentifiée avec MFA.

$ aws s3 ls

Il est également important de connaître la Priorité des informations d’identification pour être sûr que ce sont les informations d’identification correctes qui sont utilisées lors des appels d’API.

$ aws s3 ls --profile mfa

Vous pouvez également exiger que l’utilisateur soit authentifié à l’aide d’un MFA pour exécuter des actions d’API particulières en utilisant les conditions aws:MultiFactorAuthPresent ou aws:MultiFactorAuthAge dans une stratégie IAM.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 10/01/2017

Date de mise à jour : 17/08/2018