¿Puede requerir MFA para cuentas AWS IAM?

23

¿Es posible requerir que se habilite la autenticación multifactor (MFA) para cuentas específicas / todas las cuentas IAM en Amazon Web Services?

Hay opciones para los requisitos de contraseña y está claro cómo se puede elegir agregarlo a la cuenta, pero no está claro si existe una opción para obligar a los usuarios a tener MFA.

Joe
fuente
Política de IAM que requiere MFA para la mayoría de las acciones: docs.aws.amazon.com/IAM/latest/UserGuide/…
Simon Woodside

Respuestas:

13

La respuesta es sí, la hay. Mediante el uso de una condición. Por ejemplo, para cuentas de administrador:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*", 
      "Condition":
      {
          "Null":{"aws:MultiFactorAuthAge":"false"}
      }
    }
  ]
}

Aplicará MFA tanto para la autenticación de contraseña como para la autenticación basada en token utilizando la API.

smad
fuente
66
Hacerlo de esta manera lo requeriría tanto para el acceso a la consola como a la API; ¿sería posible exigir que sea de solamente acceso a la consola?
jeffbyrnes
Ni idea. Sé que es molesto para la API (CLI) ya que MFA no está bien soportado. Por cierto, realmente no veo el punto de establecer una seguridad más fuerte si es una forma de evitarlo utilizando otro método de acceso.
smad
3
@smad Creo que el punto sería que las credenciales de token se generarán automáticamente y se almacenarán en el disco duro del usuario, por lo que el único vector de ataque es obtenerlo de la computadora del usuario, ya sea a través de malware, robando la computadora, etc. La contraseña en Por otro lado, puede ser débil o reutilizarse en otros sitios, por lo que hay un vector de ataque adicional de fuerza bruta u obtención de un volcado de contraseña de un sitio pirateado. Una política de contraseñas puede ayudar, pero es difícil evitar que las personas, por ejemplo, usen una palabra del diccionario con solo el i reemplazado por 1 o
danny
@jeffbyrnes Cuando habilita un usuario para MFA, esto solo se habilita de forma predeterminada para el acceso a la consola. Luego debe usar la política de IAM como esta para definir qué acciones API / CLI requieren MFA, si corresponde.
SeanFromIT
1
No estoy seguro de que esto funcione, al menos, ¡a menos que no lo haya aplicado correctamente! (como una nueva política, asignada al grupo de Administradores). Tanto los administradores nuevos como los existentes en mi cuenta pueden iniciar sesión sin haber configurado MFA.
Tim Malone,
8

Después de mirar un poco, parece que la respuesta es "algo así". En IAM, un administrador puede configurar un MFA para otro usuario de IAM. Aunque esto puede ser un poco complicado si está configurando un MFA virtual, es posible. Luego, si al usuario no se le han otorgado permisos para actualizar / eliminar su MFA, se requiere efectivamente.

Si bien aún no he determinado la lista completa de acciones que deben denegarse (o simplemente no otorgarse), esta publicación parece tener la información, y actualizaré esta respuesta una vez que la haya probado.

[Actualizar]

Pude configurar a los usuarios como usuarios avanzados (por lo tanto, no les otorgé acceso a las funciones de un IAM, aunque estoy seguro de que podría ser más granular) e implementar su MFA con ellos. Con esta metodología, no podrán desactivarla.

Joe
fuente
1
¿sabe si es posible permitir que los usuarios de IAM configuren MFA ellos mismos?
Cabalgata
Si es así, no he encontrado el camino.
Joe
2
@MattTagg sí, es posible, ver docs.aws.amazon.com/IAM/latest/UserGuide/…
dasil003
1

Sí, puede requerir MFA para cuentas IAM tanto para la consola web como para la awsclilínea de comandos. De hecho, no es posible requerir de manera confiable MFA para la consola web mientras no se requiere para la awsclilínea de comando, ya que ambos golpean las mismas API. Digo 'confiablemente' porque con una política compleja de IAM es posible permitir algunas awsclioperaciones sin MFA mientras se aplica MFA para la consola web. Sin embargo, los resultados son algo impredecibles y, además, las claves IAM son igualmente desprotegidas, si no más peligrosas. Mi recomendación es requerirlo para ambos, y luego quizás crear claves desprotegidas para usos especiales donde MFA está absolutamente contraindicado. Para procesos automatizados, los roles serían una mejor opción en general.

Para facilitar las operaciones de MFA en la línea de comandos, he creado un conjunto de scripts de bash y un ejemplo de política de cumplimiento de MFA cuidadosamente diseñado que facilita la conexión / desconexión de vMFAd, y para iniciar y administrar sesiones de MFA. Funcionan en macOS y variantes de Linux, pero probablemente no en Windows (no probado).

Ville
fuente
0

Aparentemente no. Parece que MFA para cuentas IAM es opcional, aunque sería mejor publicar en los foros de soporte de AWS para obtener una respuesta autorizada.

Tom O'Connor
fuente
Gracias por el enlace, pero responde una pregunta diferente sobre cuándo se requerirá MFA una vez que esté habilitado. Esta pregunta es sobre si la habilitación se puede hacer cumplir.
Joe
0

Documentamos algunas consideraciones para el multifactor API de AWS en general (dónde agregar las condiciones, cuáles son las implicaciones, etc.) en la documentación de algunas herramientas personalizadas ( https://github.com/kreuzwerker/awsu ) que desarrollamos para usar Yubikeys como fuente de los tokens TOTP. Esto hace que trabajar con roles y credenciales a largo plazo + tokens de sesión sea bastante fácil.

bostezo
fuente