Comment puis-je utiliser un jeton MFA pour authentifier l'accès à mes ressources AWS via l'AWS CLI ?
Comment puis-je utiliser un jeton MFA pour authentifier l'accès à mes ressources AWS avec l'Interface de la ligne de commande AWS (AWS CLI) ?
Résolution
Une bonne pratique consiste à protéger votre compte et ses ressources à l'aide d'un périphérique authentification multifactorielle (MFA). Si vous planifiez d'interagir avec vos ressources à l'aide de l'AWS CLI lorsque vous utilisez un dispositif MFA, vous devez créer une session temporaire. Si vous utilisez un dispositif MFA matériel, la valeur est similaire à GAHT12345678. Si vous utilisez un MFA virtuel, la valeur peut être trouvée en consultant les informations d'identification de sécurité. Cela ressemble à arn:aws:iam::123456789012:mfa/user. Pour plus d'informations, consultez la section Vérification du statut MFA.
Important :
- La prise en charge des clés de sécurité est uniquement disponible avec la Console de gestion AWS. Pour plus d'informations, consultez la section Activation d'une clé de sécurité FIDO (console). Autrement, vous pouvez utiliser un dispositif MFA virtuel. Pour plus d'informations, consultez Activation et gestion des appareils MFA virtuels (interface de ligne de commande (CLI AWS ou API AWS)).
- Tous les utilisateurs IAM doivent disposer d'autorisations suffisantes pour créer, afficher et désactiver les appareils MFA attribués à leur utilisateur. Ils doivent également avoir un appareil MDA allumé et attribué à leur utilisateur avant de commencer.
- Si vous recevez des erreurs lors de l'exécution des commandes de l'interface de ligne de commande AWS, assurez-vous que vous utilisez la version la plus récente de l'interface de ligne de commande AWS.
Exécutez la commande sts get-session-token de l'interface de ligne de commande AWS en remplaçant les variables par les informations de votre compte, de vos ressources et de l’appareil MFA :
$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token
Vous recevez une sortie avec des informations d'identification temporaires et un délai d'expiration (par défaut, 12 heures), similaire à 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 seconde) à l'aide de l'option --duration-seconds dans la commande sts get-session-token. La durée peut être comprise entre 900 secondes (15 minutes) et 129 600 secondes (36 heures). Si vous utilisez les informations d'identification de l'utilisateur root, la durée est comprise entre 900 secondes (15 minutes) et 3 600 secondes (1 heure).
Utilisation des informations d'identification temporaires 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=example-access-key-as-in-previous-output export 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-output set AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output set AWS_SESSION_TOKEN=example-session-Token-as-in-previous-output
Si vous définissez les variables d'environnement, veillez à les annuler avant de faire un nouvel appel get-session-token à l'aide de ces commandes.
Linux:
unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY unset AWS_SESSION_TOKEN
Windows:
set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
Utilisation d'informations d'identification temporaires avec des profils nommés
Vous pouvez également utiliser des profils nommés afin de spécifier les commandes qui nécessitent une authentification MFA. Pour ce faire, modifiez le fichier d'informations d'identification dans le dossier .aws du répertoire de base 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] aws_access_key_id = example-access-key-as-in-returned-output aws_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 vers la configuration de profil.
Conseil : envisagez d'exécuter un script ou une tâche cron en arrière-plan qui vérifie « expiration » à partir de la sortie de la commande get-session-token, puis qui invite à procéder à une réauthentification.
Si l'AWS CLI est configurée à l'aide de la commande configure, il existe une configuration par défaut avec des informations d'identification d'utilisateur AWS Identity and Access Management (IAM) permanentes. Cet utilisateur IAM peut utiliser des commandes qui ne nécessitent pas d'authentification MFA.
Exemple de configuration :
.aws/credentials
[default] aws_access_key_id = example-access-Key-for-an-IAM-user aws_secret_access_key = example-secret-access-key-for-IAM-user
Remarque : vous ne pouvez pas utiliser le paramètre mfa_serial avec des informations d'identification IAM permanentes.
Remarque : si vous utilisez des profils pour authentifier les commandes à l'aide de l'interface de ligne de commande AWS, spécifiez l'option --profile suivie du nom du profil pour vérifier que les appels sont authentifiés à l'aide de MFA.
Par exemple, cette commande utilise les informations d'identification de profil par défaut et n'est pas authentifiée via MFA.
$ aws s3 ls
Important : assurez-vous de bien comprendre la priorité des informations d'identification, afin de vérifier que les bonnes informations d'identification sont utilisées lors des appels d'API. Cela peut être fait à l'aide de la commande GetCallerIdentity.
$ aws s3 ls --profile mfa
Vous pouvez également exiger qu'un utilisateur soit authentifié à l'aide d'une MFA pour effectuer des actions d'API spécifiques avec les conditions aws:MultiFactorAuthPresent ou aws:MultiFactorAuthAge dans une politique IAM.
Informations connexes
Activation des appareils MFA pour les utilisateurs d'AWS
Dispositif d'authentification multifactorielle (MFA) perdu ou inutilisable
Vidéos associées

Contenus pertinents
- demandé il y a 2 moislg...
- demandé il y a 3 moislg...
- demandé il y a 3 jourslg...
- demandé il y a un moislg...
- demandé il y a 4 moislg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a 7 mois
- AWS OFFICIELA mis à jour il y a 7 mois