Passer au contenu

Comment puis-je utiliser l'interface de ligne de commande AWS pour authentifier l'accès aux ressources AWS à l'aide d'un jeton MFA ?

Lecture de 5 minute(s)
0

Je souhaite utiliser un jeton d'authentification multifactorielle (MFA) avec l'interface de la ligne de commande AWS (AWS CLI) pour authentifier l'accès à mes ressources AWS.

Brève description

Vous pouvez activer jusqu'à huit appareils MFA pour chaque utilisateur d'AWS Identity and Access Management (IAM).

Remarque : L'activation de la MFA pour l'utilisateur racine n'affecte que les informations d'identification de ce dernier. Chaque identité IAM de votre compte AWS comporte sa propre configuration MFA.

Pour activer la MFA, consultez la section Sécuriser la connexion de votre utilisateur racine grâce à l'authentification multifactorielle (MFA) et Authentification multifactorielle AWS dans IAM.

Résolution

Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Pour utiliser l'interface de ligne de commande AWS afin de vous authentifier auprès des ressources AWS, utilisez l'action d'API GetSessionToken pour obtenir des informations d'identification temporaires. Les informations d'identification temporaires sont valides pendant 12 heures par défaut. Utilisez le paramètre duration-seconds pour configurer la durée des informations d'identification temporaires pour une durée comprise entre 15 minutes et 36 heures.

Remarque : L'utilisateur a besoin d’autorisations IAM appropriées pour utiliser le GetSessionToken. Pour en savoir plus, consultez la section Comment puis-je appliquer l'authentification MFA aux utilisateurs IAM qui utilisent la console de gestion AWS et l'AWS CLI ?

ARN de l’appareil MFA

Pour obtenir l’Amazon Resource Name (ARN) de l'appareil MFA, procédez comme suit :

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, sélectionnez Utilisateurs, puis sélectionnez votre utilisateur IAM.
  3. Sur la page Résumé, sélectionnez l’onglet Informations d'identification de sécurité.
  4. Dans Appareil MFA affecté, copiez l'ARN de l’appareil MFA.

Utiliser l'interface de ligne de commande AWS pour obtenir des informations d'identification temporaires

Exécutez la commande get-session-token :

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

Exemple de sortie :

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

Important : Assurez-vous que le numéro de série, le jeton et l'ARN de l’appareil MFA sont corrects. Si tel n'est pas le cas, vous recevrez peut-être un message d'erreur similaire au message suivant :

« An error occurred (AccessDenied) when calling the GetSessionToken operation: MultiFactorAuthentication failed, unable to validate MFA code. Please verify your MFA serial number is valid and associated with this user. »

Pour authentifier votre périphérique matériel MFA, le numéro de série se trouve généralement au dos de l'appareil et sa valeur est similaire à GAHT12345678. Pour authentifier votre appareil virtuel MFA, la valeur est similaire à arn:aws:iam::123456789012:mfa/user.

Remarque : L'AWS CLI prend en charge l'authentification MFA uniquement avec un appareil MFA virtuel ou matériel. L'AWS CLI ne prend pas en charge l'authentification MFA avec la clé de sécurité FIDO.

Pour plus d'informations, consultez la section Affecter des appareils MFA dans l'AWS CLI ou l'API AWS.

Utiliser des informations d'identification temporaires pour exporter leurs valeurs vers des variables d'environnement

Exécutez les commandes suivantes en fonction de votre système d’exploitation :

Linux

export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-outputexport AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output  
export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output

Windows

set AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-outputset AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output  
set AWS_SESSION_TOKEN=example-session-Token-as-in-previous-output

Avant de réexécuter la commande get-session-token, exécutez les commandes suivantes pour annuler la définition des variables d'environnement :

Linux

unset AWS_ACCESS_KEY_IDunset AWS_SECRET_ACCESS_KEY  
unset AWS_SESSION_TOKEN

Windows

set AWS_ACCESS_KEY_ID=set AWS_SECRET_ACCESS_KEY=  
set AWS_SESSION_TOKEN=

Utiliser des informations d'identification temporaires avec des profils nommés

Vous pouvez également utiliser des profils nommés pour spécifier les commandes qui requièrent une authentification MFA. Dans le fichier d’informations d’identification qui se trouve dans le dossier .aws du répertoire de base de l'utilisateur, ajoutez une nouvelle configuration de profil pour émettre des commandes authentifiées.
Exemple de configuration de profil :

[mfa]aws_access_key_id = example-access-key-as-in-returned-outputaws_secret_access_key = example-secret-access-key-as-in-returned-output  
aws_session_token = example-session-token-as-in-returned-output

Une fois les informations d'identification expirées, exécutez à nouveau la commande get-session-token. Puis, exportez les valeurs renvoyées vers les variables d'environnement ou la configuration du profil.

Il est recommandé d'exécuter un script ou une tâche cron en arrière-plan qui vérifie l'expiration à partir de la sortie de la commande get-session-token. Si le jeton MFA a expiré, assurez-vous que le script ou la tâche cron vous invite à vous réauthentifier.

Lorsque vous utilisez des profils nommés pour vous authentifier, spécifiez l'option de profil suivie du nom du profil. Cela permet de vérifier que les appels d'API utilisent la MFA pour s'authentifier.

Informations connexes

Comment puis-je réinitialiser un appareil MFA perdu ou cassé pour mon utilisateur IAM ou l'utilisateur racine de mon compte AWS ?

Comment puis-je appliquer l'authentification MFA aux utilisateurs IAM qui utilisent la console de gestion AWS et l'AWS CLI ?