Comment appliquer l'authentification MFA pour les utilisateurs IAM qui utilisent I'interface de la ligne de commande AWS (AWS CLI) ?

Lecture de 3 minute(s)
0

J'ai créé une politique de condition d'authentification multifactorielle (MFA) pour limiter l'accès aux services AWS pour les utilisateurs AWS Identity and Access Management (IAM). La stratégie fonctionne avec la Console de gestion AWS, mais pas avec AWS Command Line Interface (AWS CLI). Comment utiliser la MFA avec l'interface de ligne de commande AWS ?

Brève description

L'exemple de stratégie IAM suivant exige que les utilisateurs IAM utilisent la 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 utilisent la Console de gestion AWS sont invités à saisir des informations d'identification d'authentification MFA. Ils peuvent ensuite accéder aux services AWS. Cependant, les utilisateurs IAM qui utilisent AWS CLI ne sont pas invités à saisir des informations d'identification d'authentification MFA et peuvent accéder aux services AWS.

Solution

Remarque : en cas d'erreurs lors de l'exécution de commandes de l'interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente de l'interface de la ligne de commande AWS.

La clé 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 stratégie n'est pas présente, 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 n'autorisent l'accès que si l'authentification MFA est utilisée.

L'opérateur de condition booléen vous permet de restreindre l'accès avec une valeur de clé définie sur true (vrai) ou false (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, l'opérateur IfExists évalue l'élément de condition comme true (vrai) de la manière suivante :

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

Remarque : Les utilisateurs IAM qui utilisent l'interface de ligne de commandes AWS avec des informations d'identification à long terme 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 multifacteur

AssumeRole

Activation et gestion d'appareils MFA virtuels (interface de ligne de commande AWS ou API AWS)

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