Comment puis-je exiger une authentification MFA pour les utilisateurs IAM qui utilisent AWS CLI ?

Lecture de 3 minute(s)
0

J’ai créé une politique de condition d’authentification multifactorielle (MFA) pour restreindre l’accès aux services AWS pour les utilisateurs de la gestion des identités et des accès AWS (AWS IAM). La politique fonctionne avec la console de gestion AWS, mais pas avec l’interface de la ligne de commande AWS (AWS CLI).

Brève description

L’exemple de politique IAM suivant oblige les utilisateurs IAM à utiliser l’authentification multifactorielle (MFA) pour accéder à des services AWS spécifiques :

{
  "Sid": "BlockMostAccessUnlessSignedInWithMFA",
  "Effect": "Deny",
  "NotAction": [
    "iam:CreateVirtualMFADevice",
    "iam:DeleteVirtualMFADevice",
    "iam:ListVirtualMFADevices",
    "iam:EnableMFADevice",
    "iam:ResyncMFADevice",
    "iam:ListAccountAliases",
    "iam:ListUsers",
    "iam:ListSSHPublicKeys",
    "iam:ListAccessKeys",
    "iam:ListServiceSpecificCredentials",
    "iam:ListMFADevices",
    "iam:GetAccountSummary",
    "sts:GetSessionToken"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "aws:MultiFactorAuthPresent": "false",
      "aws:ViaAWSService": "false"
    }
  }
}

Les utilisateurs IAM qui dispose de la console de gestion AWS sont invités à saisir des informations d’authentification MFA et peuvent ensuite accéder aux services AWS. Cependant, les utilisateurs IAM qui utilisent AWS CLI n’ont pas à saisir leurs informations d’authentification MFA et peuvent accéder aux services AWS.

Résolution

**Remarque :**Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez l’article Résoudre les erreurs AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente d’AWS CLI.

La clé aws:MultiFactorAuthPresent n’existe pas dans les demandes effectuées à l’aide d’informations d’identification à long terme. Avec l’opérateur de condition booléen, si la clé de la politique n’est pas présente, cela signifie que les valeurs ne correspondent pas. La clé MultiFactorAuthPresent ne refuse pas l’accès aux demandes effectuées à l’aide d’informations d’identification à long terme.

Les utilisateurs IAM qui utilisent la console de gestion AWS génèrent des informations d’identification temporaires et autorisent l’accès uniquement si l’authentification multifactorielle est utilisée.

La condition booléenne vous permet de restreindre l’accès à l’aide d’une valeur de clé définie sur vrai ou faux. Vous pouvez ajouter l’opérateur de condition IfExists pour vérifier si la clé MultiFactorAuthPresent est présente dans la demande. Si la clé MultiFactorAuthPresent n’est pas présente, IfExists évalue l’élément de condition comme étant vrai, comme suit :

"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false", "aws:ViaAWSService":"false"} }

Remarque : les utilisateurs IAM qui utilisent AWS CLI avec des informations d’identification longue durée se voient refuser l’accès et doivent utiliser MFA pour s’authentifier. Par conséquent, veillez à utiliser un jeton MFA pour authentifier votre session CLI.

Informations connexes

Utilisation de l’authentification multifactorielle

AssumeRole

Activation et gestion des appareils MFA virtuels (AWS CLI ou AWS API)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans