¿Cómo puedo solicitar la autenticación de MFA para los usuarios de IAM que utilizan la CLI de AWS?

3 minutos de lectura
0

He creado una política de condiciones de autenticación multifactorial (MFA) para restringir el acceso a los servicios de AWS a los usuarios de AWS Identity and Access Management (IAM). La política funciona con la consola de administración de AWS, pero no con la interfaz de línea de comandos de AWS (AWS CLI). ¿Cómo puedo usar MFA con la CLI de AWS?

Descripción corta

El siguiente ejemplo de política de IAM requiere que los usuarios de IAM usen MFA para acceder a servicios de AWS específicos:

{
  "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"
    }
  }
}

A los usuarios de IAM que utilicen la consola de administración de AWS se les pide que introduzcan las credenciales de autenticación de MFA y, a continuación, pueden acceder a los servicios de AWS. Sin embargo, a los usuarios de IAM con la CLI de AWS no se les pide que introduzcan las credenciales de autenticación de MFA y pueden acceder a los servicios de AWS.

Resolución

Nota: Si se muestran errores al ejecutar comandos de AWS CLI, compruebe si está utilizando la versión más reciente de AWS CLI.

La clave MultiFactorAuthPresent no existe en las solicitudes realizadas con credenciales de larga duración. Con el operador de condición Boolean, si la clave de la política no está presente, los valores no coinciden. La clave MultiFactorAuthPresent no deniega el acceso a las solicitudes realizadas con credenciales de larga duración.

Los usuarios de IAM que utilizan la consola de administración de AWS generan credenciales temporales y solo permiten el acceso si se utiliza MFA.

La condición Boolean permite restringir el acceso con un valor clave establecido en true o false. Puede añadir el operador de condición IfExists para comprobar si la clave MultiFactorAuthPresent está presente en la solicitud. Si la clave MultiFactorAuthPresent no está presente, IfExists evalúa el elemento de condición como true de forma similar a lo siguiente:

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

Nota: A los usuarios de IAM que utilicen la CLI de AWS con credenciales a largo plazo se les deniega el acceso y deben usar MFA para autenticarse. Por lo tanto, asegúrese de usar un token de MFA para autenticar su sesión de CLI.


Información relacionada

Uso de la autenticación multifactor

AssumeRole

Activación y administración de dispositivos de MFA virtuales (API de AWS CLI o de AWS)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años