Aws-cli: Soporte U2F

Creado en 26 sept. 2018  ·  45Comentarios  ·  Fuente: aws/aws-cli

Según el blog de AWS, U2F ahora es compatible con el inicio de sesión de la consola:
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

Es especialmente crítico que haya una ruta para admitir esto en aws-cli para que podamos tocar para ejecutar comandos en lugar de tener tokens de larga duración en el disco / memoria.

feature-request v2

Comentario más útil

Por lo que entiendo, este problema STS / IAM tendrá que obtener soporte API para claves de seguridad como tokens MFA antes de seguir adelante con esto.

¿Alguien puede arrojar luz sobre esto? Seguramente, si aún no es compatible, ¿está a la vuelta de la esquina ...?

EDITAR:

Por favor, no permita que este resulte ser uno de esos casos vergonzosos en los que una empresa asume que a ninguno de sus clientes les importa una función, porque implementaron la versión no súper útil y luego nadie la usó.

Nunca utilizo la interfaz de usuario web para iniciar sesión en la consola de Amazon. Para mí, todo está impulsado por CLI, porque tengo varias cuentas con las que debo tratar (etc.). E incluso si _did_ usé la interfaz de usuario web para iniciar sesión, entonces, tal como está, tendría que cambiar _duplicar cuentas_ de todas mis cuentas existentes para usar con U2F, porque todavía necesitaría usar mi antiguo Google / LastPass / cualquier autenticador para todas las cosas aws-cli .

Entonces ... el soporte U2F de AWS tiene el _potencial_ de convertirse en algo que me entusiasmaría _realmente_, pero sin el soporte CLI aún no vale la pena tocarlo. Imagino que mucha gente está en el mismo barco.

Todos 45 comentarios

AFAIK, U2F generalmente solo funciona en un navegador web. ¿Cómo esperaría que se usara desde CLI? ¿Iniciar un navegador?

@JensRantil No, cualquier tipo de aplicación puede interactuar con un token U2F.

Fuente: mantengo libu2f-* y pam-u2f en Debian;)

Parece que U2F aún no es compatible con el acceso a la API:

No puede utilizar el acceso a API protegido por MFA con claves de seguridad U2F.

Dicho esto, definitivamente he transmitido estos comentarios al equipo de servicio. Mi propia experiencia ha sido que U2F es 100000 veces más utilizable que cualquier otro segundo factor, así que me encantaría verlo incluso para mi propio uso.

La única advertencia es que esto debería ser una característica de V2 ya que estoy bastante seguro de que tenemos que incorporar dependencias de c para interactuar con el token u2f.

@JordonPhillips FYI, hay una biblioteca de host Python U2F de Yubico; es en sí mismo 100% Python, pero depende de hidapi , que IIRC usa libusb y libudev .
OTOH, ya está disponible en todas las distribuciones principales, ¿así que eso no debería ser un gran problema?

También requeriría (como cualquier uso de U2F) que el usuario pueda interactuar con el dispositivo U2F; Yubico mantiene las reglas de udev ascendentes en libu2f-host , que envié en Debian como libu2f-udev (para que se puedan instalar sin tener que acceder a la biblioteca C), que es una dependencia de task-desktop (comenzando en Debian 10 "buster"), por lo que la mayoría de los usuarios lo tendrán instalado de inmediato; en stretch (el estable de Debian actual), enviamos las reglas udev para U2F en el paquete udev , por lo que también está disponible allí.
TL; DR: Debian debería tener los permisos adecuados para dispositivos U2F en jessie en adelante (lanzados hace más de un año), y también todos los derivados de Debian (a menos que se esforzaran por romper U2F ...)

Esto sería de gran ayuda para mí. Sacar mi teléfono de 10 a 20 veces al día para copiar TOTP no es divertido. 😅 Si pudiera tocar mi Yubikey en su lugar, mi experiencia aws-cli sería _so_ mucho más placentera.

@nbraud , parece que la interfaz de Python que usan no proporciona ruedas de Linux, por lo que instalar eso requeriría que el usuario tenga un compilador instalado. Actualmente, esto no es un requisito para instalar el cli, por lo que agregar esa biblioteca sería un cambio importante para muchos usuarios.

@JordonPhillips Con respecto a la introducción de un cambio radical ... puedo imaginar un par de enfoques que permitirían a los usuarios entusiastas beneficiarse de esto pronto sin romper las cosas para los usuarios menos aventureros:

  1. Conviértalo en una dependencia opcional en v1, y luego las personas que realmente se preocupan por él pueden compilar con una bandera especial para habilitarlo. De esta manera, optan por "obtener una vista previa" de lo que eventualmente será parte del cliente v2 de forma predeterminada.

  2. Divida la pieza U2F en un binario separado y detecte su presencia en tiempo de ejecución. Luego, a los usuarios que intentan utilizar la AWS CLI con U2F se les indicará "instale esta otra herramienta" para que funcione. Entonces, en Mac, por ejemplo, estaría a un brew install aws-cli-u2f de la felicidad. 😃

Sí, estaría más que feliz de instalar un módulo opcional de compilación desde el código fuente para obtener esta funcionalidad. Solo sería necesario en las máquinas de desarrollo, que casi siempre ya tendrían un compilador, y no en los servidores de todos modos.

Una alternativa a python-u2f-host sería python-fido2, que

Estaré conteniendo la respiración por esto 👍

Por lo que entiendo, este problema STS / IAM tendrá que obtener soporte API para claves de seguridad como tokens MFA antes de seguir adelante con esto.

Por lo que entiendo, este problema STS / IAM tendrá que obtener soporte API para claves de seguridad como tokens MFA antes de seguir adelante con esto.

¿Alguien puede arrojar luz sobre esto? Seguramente, si aún no es compatible, ¿está a la vuelta de la esquina ...?

EDITAR:

Por favor, no permita que este resulte ser uno de esos casos vergonzosos en los que una empresa asume que a ninguno de sus clientes les importa una función, porque implementaron la versión no súper útil y luego nadie la usó.

Nunca utilizo la interfaz de usuario web para iniciar sesión en la consola de Amazon. Para mí, todo está impulsado por CLI, porque tengo varias cuentas con las que debo tratar (etc.). E incluso si _did_ usé la interfaz de usuario web para iniciar sesión, entonces, tal como está, tendría que cambiar _duplicar cuentas_ de todas mis cuentas existentes para usar con U2F, porque todavía necesitaría usar mi antiguo Google / LastPass / cualquier autenticador para todas las cosas aws-cli .

Entonces ... el soporte U2F de AWS tiene el _potencial_ de convertirse en algo que me entusiasmaría _realmente_, pero sin el soporte CLI aún no vale la pena tocarlo. Imagino que mucha gente está en el mismo barco.

@jeffparsons está totalmente de acuerdo en que se

por cierto, puede cambiar de cuenta en la consola web muy fácilmente asumiendo un rol en la otra cuenta
igual que:
https://signin.aws.amazon.com/switchrole?roleName=SomeAdminRole&account=YourAccountNumberOrAlias
ver:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

Luego puede ver el selector de roles en el menú desplegable de su usuario / cuenta en la esquina superior derecha de la página.

también este tipo podría estar en algo ... https://gist.github.com/woowa-hsw0/caa3340e2a7b390dbde81894f73e379d

Aquí también hay una muy buena solución https://github.com/kreuzwerker/awsu

Trabajar con múltiples configuraciones de múltiples cuentas, todas ellas con un idp separado usando el mismo U2F con todas, sería un gran alivio para mí.
Tampoco tendría ningún problema para instalar / compilar una dependencia adicional para obtener esto en v1 como vista previa.

¿Algún movimiento sobre los temas del lado de las cosas increíbles?

Por lo que vale, aws-vault parece estar bastante cerca de fusionarse en el soporte U2F: https://github.com/99designs/aws-vault/pull/316

Dicho esto, estoy absolutamente a favor de agregar soporte nativo U2F a la herramienta oficial AWS CLI.

Por lo que vale, aws-vault parece estar bastante cerca de fusionarse en el soporte U2F: 99designs / aws-vault # 316

No, eso es solo crear tokens TOTP usando Yubikey. Es una solución alternativa que le permite usar su Yubikey pero no es U2F.

(Parece que esto es lo mismo que hace awsu ).

Todo el MFA en awscli es complicado de configurar y la falta de soporte para yubikey no ayuda.
MFA en 2019 debería ser una característica imprescindible, no de vanguardia.

¿Algún progreso en esto?

me encontré con esto. Elimine el soporte para Yubikey de la consola web si no planea admitirlo en la cli. Es una gran pérdida de tiempo tener que buscar en Google estas cosas y descubrir que AWS no admite lo que anuncia.

Es bastante ridículo que este problema haya estado abierto durante 440 días y aún no se haya resuelto.

El soporte CLI sería muy apreciado, como se dijo anteriormente

Hola, nos gustaría hacer cumplir MFA para todos los usuarios humanos con https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (por la falta de un mejor solución) pero ahora resulta que tenemos que:

a) renunciar por completo a la idea, o
b) obligar a todos a pasar de usar U2F a TOTP.

El hecho de que IAM no admita varios dispositivos MFA también es una broma de mal gusto ...

Es casi el año 2020. La solución MFA conveniente y segura (lea: U2F) es una necesidad, no un lujo en mi opinión. Especialmente en áreas donde los actores malintencionados pueden infligir daños económicos graves.

AWS, por favor, por favor, actúe en conjunto y trabaje para mejorar su compatibilidad con MFA en todo su ecosistema (CLI, aplicaciones móviles, AWS SSO, ¡que tampoco es compatible con U2F!)

El hecho de que IAM no admita varios dispositivos MFA también es una broma de mal gusto ...

Esto es realmente vergonzoso. Registrar solo un dispositivo es una práctica realmente mala, así que ven a Amazon, ¡arregla esto lo antes posible!

Es bastante ridículo que este problema haya estado abierto durante 440 días y aún no se haya resuelto.

Es peor que eso. En 2013, alguien de Amazon escribió:

Desafortunadamente, en este momento solo es posible tener un único MFA por cuenta.
Sin embargo, he planteado esto a nuestro equipo de desarrollo para que se considere una característica para el desarrollo futuro.
https://forums.aws.amazon.com/thread.jspa?threadID=137055

Entiendo que el equipo esté ocupado o no, pero el hecho de que nadie se moleste en responder a este problema es lo que me preocupa. Este no es un proyecto de código abierto con poco personal y mal pagado en el que esto puede ser excusado, sino el propio AWS.

491 días, ¡abramos un champán en 500! : champagne:: confetti_ball:

Supongo que Amazon está realmente enfocado en los proyectos de GOV en los que está el $. Este hilo es un ejemplo de por qué normalmente no recomiendo a nadie que utilice AWS.
Claro, hubo un tiempo en que eran de vanguardia, pero hoy en día ... simplemente carecen de características básicas. Sé que está fuera de tema, pero otro ejemplo es que Route 53 todavía no es compatible con DNSSEC, así que aquí tienes. Ah, sí, y MFA debería llamarse SFA porque no hay "Multi" en la implementación de AWS.

Perdón por la perorata, pero lo más probable es que nadie vea este hilo, excepto las personas de seguridad que realmente quieren la función.
¡Solo un par de días hasta que lleguemos a 500 :)!

Realmente me gustaría que se agregara esto. Los teléfonos móviles me distraen enormemente y preferiría no tener que sacar mi teléfono varias veces por hora cuando interactúo con los servicios de AWS.

Esto se actualizó hace unos días: https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

¿Eso ayuda a alguien?

¿Eso ayuda a alguien?

Tristemente no. En mi humilde opinión, ese es otro problema de que AWS necesita algunos scripts complejos para usar incluso el código del token. Utilizo el módulo PyPi del script python aws-mfa terceros para solucionarlo.
¡Pero gracias por el pensamiento @ chris-bateman!

Esto se actualizó hace unos días: https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Hay un botón "¿Algo que podamos mejorar? Háganos saber" en la parte inferior de ese artículo que seguramente presionaré.

Hice mi parte y dejé un comentario en la parte "háganoslo saber". También estaría muy emocionado si se implementara esta función.

mismo gracias por publicar @steinybot

Añadiendo un triste comentario de que aún no se ha implementado.
why

El segundo aniversario se acerca en menos de 2 meses. Debe estar acercándose ahora, ¿verdad? ¿Derecha?

Buenas noticias: si no usa aws-vault, debería hacerlo. Acaban de presentar el soporte de Yubikey. Si tiene un yubikey que admita TOTP, puede agregar el código MFA en su interior. Si bien lo ideal sería esperarlo de Amazon, todos estamos de acuerdo en que simplemente no les importa mientras Jeff se enriquece.
Tiene un gran soporte para roles y tal, una parte de mí está triste de que esta sea una herramienta de terceros, pero eso es lo que me encanta del código abierto: tienes opciones.
enlace: https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-yubikey

Si bien aws-vault es excelente, es compatible con TOTP, no con U2F.

después de años esperando esto, ahora uso https://github.com/kreuzwerker/awsu

@nbraud , parece que la interfaz de Python que usan no proporciona ruedas de Linux, por lo que instalar eso requeriría que el usuario tenga un compilador instalado. Actualmente, esto no es un requisito para instalar el cli, por lo que agregar esa biblioteca sería un cambio importante para muchos usuarios.

Si bien @jeffparsons señaló algunas posibles soluciones alternativas razonables si usa una de las otras bibliotecas más grandes con más dependencias, también señalaré que hay una biblioteca Python más pequeña que debe considerarse: pyu2f . También se basa en bibliotecas nativas USB HID para comunicarse con claves U2F, pero solo tiene una dependencia de Python: six . Incluye sus propios enlaces basados ​​en ctypes para llamadas HID de SO compatibles con MacOS, Linux y Windows y probablemente cubriría "suficientes" casos de uso.

¿Tenemos a alguien trabajando en esto todavía? ¿Aceptaría el equipo aws-cli un parche para cualquier prototipo de esta funcionalidad?

EDITAR: Después de leer más de la guía del usuario de IAM , parece que U2F no es compatible a nivel de API, por lo que incluso si aws-cli admite la autenticación de token U2F interactiva, no parece GetSessionToken y AssumeRole apoyan esto en este punto (como se cita a continuación):

Es importante comprender los siguientes aspectos de la protección de MFA para las operaciones de API:

  • La protección MFA solo está disponible con credenciales de seguridad temporales, que deben obtenerse con AssumeRole o GetSessionToken.
  • No puede utilizar el acceso a API protegido por MFA con claves de seguridad U2F.

Además, con respecto al comentario social de @kiwimato :

Si bien lo ideal sería esperarlo de Amazon, todos estamos de acuerdo en que simplemente no les importa mientras Jeff se enriquece.

Tenga en cuenta que este es un hilo de desarrollo de software, no un foro de debate sobre el capitalismo. Los equipos de AWS están formados por humanos genuinos que, en mi experiencia, han respondido bastante bien para arreglar las cosas en botocore . Si algo lo está atormentando, tenga en cuenta que la naturaleza de código abierto de gran parte de esto significa que puede ayudar a aportar una solución o al menos ayudar a pensar en algunas opciones.

Sin embargo, aunque la API de AWS subyacente en sí misma no parece admitir nada más allá de TOTP para MFA, parece que este problema puede ser un problema mayor que aws-cli simplemente no admite la funcionalidad del cliente. Con suerte, AWS puede superar este ticket una vez que la API admita U2F para que podamos poner en marcha el soporte al cliente.

Al menos una solución como esta ayudará con el cambio de contexto entre su máquina y su teléfono
https://authy.com/

¿Hay alguna ETA sobre esto? Es muy preocupante que aparentemente nadie en el mundo esté utilizando buenas prácticas de MFA para su uso de AWS cli.

Es muy preocupante que aparentemente nadie en el mundo esté utilizando buenas prácticas de MFA para su uso de AWS cli.

@ james-callahan eso no es cierto. Restringimos el acceso a los roles solo a aquellos que se hayan autorizado con MFA. P.ej:

AssumeRolePolicyDocument:
  Version: '2012-10-17'
  Statement:
    - Effect: Allow
      Principal:
        AWS: !Sub
          - arn:aws:iam::${Account}:root
      Action:
        - sts:AssumeRole
      Condition:
        Bool:
          aws:MultiFactorAuthPresent: 'true'

Luego usamos una herramienta llamada aws-mfa para administrar la obtención de créditos temporales de STS y actualizar nuestros archivos de credenciales de AWS. Hay otras formas de gestionar la interacción con STS para el mismo objetivo.

Este ticket se enfoca en agregar soporte específicamente para U2F.

@ james-callahan eso no es cierto. Restringimos el acceso a los roles solo a aquellos que se hayan autorizado con MFA.

Esto solo funciona con TOTP; que no debe considerarse un segundo factor de alta calidad debido a la facilidad de suplantación de identidad (phishing), credenciales TOTP, etc.
Esto se ve agravado por el hecho de que AWS no le permite inscribir un dispositivo U2F y TOTP a un solo usuario de IAM, por lo que si desea usar U2F para el acceso a la interfaz de usuario, no puede usar ningún MFA de la cli.

Para aquellos usuarios que lo necesiten, creamos dos cuentas:

  1. usuario para consola, donde habilitan U2F o no pueden acceder a nada.
  2. usuario para acceso cli, donde agregan claves de acceso y habilitan MFA o no pueden acceder a nada.

Bastante difícil de phishing TOTP desde una cuenta de acceso exclusivo a cli.

@craighurley
Esto parece un poco exagerado para una solución alternativa, en mi opinión. Debe mantener 2 cuentas para la administración de seguridad de una organización de AWS solo para tener U2F en la consola.
No lo veo como una solución razonable para ninguna empresa que quiera usar U2F.

¿Fue útil esta página
0 / 5 - 0 calificaciones