Aws-cli: Assistance U2F

Créé le 26 sept. 2018  ·  45Commentaires  ·  Source: aws/aws-cli

Selon le blog AWS, U2F est désormais pris en charge pour la connexion à la console :
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

Il est particulièrement essentiel qu'il y ait un chemin pour prendre en charge cela sur aws-cli afin que nous puissions appuyer pour exécuter des commandes au lieu d'avoir des jetons de longue durée sur le disque/la mémoire.

feature-request v2

Commentaire le plus utile

D'après ce que je comprends, STS/IAM devra obtenir la prise en charge de l'API pour les clés de sécurité en tant que jetons MFA avant d'aller de l'avant avec cela ?

Quelqu'un peut-il faire la lumière sur cette question? Sûrement si ce n'est pas déjà pris en charge alors c'est juste au coin de la rue...?

ÉDITER:

S'il vous plaît, ne laissez pas cela s'avérer être l'un de ces cas loufoques où une entreprise suppose qu'aucun de ses clients ne se soucie d'une fonctionnalité, car ils ont implémenté la version pas super utile et ensuite personne ne l'a utilisée.

Je n'utilise jamais l'interface utilisateur Web pour me connecter à la console Amazon. Tout est piloté par CLI pour moi, car j'ai plusieurs comptes avec lesquels je dois traiter (etc.). Et même si j'ai _utilisé_ l'interface utilisateur Web pour me connecter, alors, dans l'état actuel des choses, je devrais m'occuper des _comptes en double_ de tous mes comptes existants à utiliser avec U2F, car j'aurais toujours besoin d'utiliser mon ancien Google/LastPass /quel que soit l'authentificateur pour tous les éléments aws-cli .

Donc... Le support U2F d'AWS a le _potentiel_ de devenir quelque chose qui me _vraiment_ enthousiasmé, mais sans le support CLI, cela ne vaut pas encore la peine d'être touché. J'imagine que beaucoup de gens sont dans le même bateau.

Tous les 45 commentaires

AFAIK, U2F ne fonctionne généralement que dans un navigateur Web. Comment vous attendriez-vous à ce qu'il soit utilisé à partir de CLI ? Lancer un navigateur ?

@JensRantil Non, toute sorte d'application peut interagir avec un jeton U2F.

Source : je maintiens libu2f-* et pam-u2f dans Debian ;)

Il semble qu'U2F ne soit pas encore pris en charge pour l'accès aux API :

Vous ne pouvez pas utiliser l'accès API protégé par MFA avec les clés de sécurité U2F.

Cela dit, j'ai définitivement transmis ces commentaires à l'équipe de service. Ma propre expérience a été que U2F est 100000 fois plus utilisable que tout autre deuxième facteur, donc j'aimerais le voir même pour mon propre usage.

Le seul inconvénient est que cela devrait être une fonctionnalité V2 car je suis à peu près certain que nous devons extraire des dépendances c pour interagir avec le jeton u2f.

@JordonPhillips Pour info , il existe une bibliothèque hôte Python U2F de Yubico; c'est lui-même 100% Python, mais dépend de hidapi , que l'IIRC utilise libusb et libudev .
OTOH, c'est déjà disponible dans toutes les grandes distributions, donc ça ne devrait pas être un gros problème ?

Cela nécessiterait également (comme toute utilisation d'U2F) que l'utilisateur puisse interagir avec l'appareil U2F ; Yubico maintient les règles udev en amont dans libu2f-host , que j'ai livrées dans Debian en tant que libu2f-udev (afin qu'elles puissent être installées sans tirer dans la bibliothèque C), qui est une dépendance de task-desktop (à partir de Debian 10 « buster »), donc la plupart des utilisateurs l'auront installé immédiatement ; dans stretch (l'écurie Debian actuelle), nous avons fourni les règles udev pour U2F dans le paquet udev , elles y sont donc également disponibles.
TL; DR : Debian devrait avoir les bonnes autorisations pour les appareils U2F à partir de Jessie (publié il y a plus d'un an), de même que tous les dérivés de Debian (à moins qu'ils ne se mettent en quatre pour casser U2F...)

Cela me serait extrêmement utile. Sortir mon téléphone 10 à 20 fois par jour pour copier des TOTP n'est pas amusant. 😅 Si je pouvais simplement appuyer sur ma Yubikey à la place, mon expérience aws-cli serait _so_ beaucoup plus agréable.

@nbraud, il semble que l'interface python qu'ils utilisent ne fournisse pas de roues Linux, donc l'installation nécessiterait que l'utilisateur ait un compilateur installé. Ce n'est actuellement pas une exigence pour installer le cli, donc l'ajout de cette bibliothèque serait un changement décisif pour de nombreux utilisateurs.

@JordonPhillips En

  1. Faites-en une dépendance facultative dans la v1, puis les personnes qui s'en soucient vraiment peuvent compiler avec un indicateur spécial pour l'activer. De cette façon, ils choisissent de "prévisualiser" ce qui fera éventuellement partie du client v2 par défaut.

  2. Divisez la pièce U2F en un binaire séparé et détectez sa présence au moment de l'exécution. Ensuite, les utilisateurs qui tentent d'utiliser l'AWS CLI avec U2F se verraient dire « installez cet autre outil » pour le faire fonctionner. Ainsi, sur Mac, par exemple, je serais à un brew install aws-cli-u2f du bonheur. ??

Oui, je serais plus qu'heureux d'installer un module optionnel de compilation à partir des sources pour obtenir cette fonctionnalité. Cela ne serait nécessaire que sur les machines de développement – ​​qui auraient presque toujours déjà un compilateur – et pas sur les serveurs de toute façon.

Une alternative à python-u2f-host serait python-fido2 qui vous

Je retiendrai mon souffle pour ça

D'après ce que je comprends, STS/IAM devra obtenir la prise en charge de l'API pour les clés de sécurité en tant que jetons MFA avant d'aller de l'avant avec cela ?

D'après ce que je comprends, STS/IAM devra obtenir la prise en charge de l'API pour les clés de sécurité en tant que jetons MFA avant d'aller de l'avant avec cela ?

Quelqu'un peut-il faire la lumière sur cette question? Sûrement si ce n'est pas déjà pris en charge alors c'est juste au coin de la rue...?

ÉDITER:

S'il vous plaît, ne laissez pas cela s'avérer être l'un de ces cas loufoques où une entreprise suppose qu'aucun de ses clients ne se soucie d'une fonctionnalité, car ils ont implémenté la version pas super utile et ensuite personne ne l'a utilisée.

Je n'utilise jamais l'interface utilisateur Web pour me connecter à la console Amazon. Tout est piloté par CLI pour moi, car j'ai plusieurs comptes avec lesquels je dois traiter (etc.). Et même si j'ai _utilisé_ l'interface utilisateur Web pour me connecter, alors, dans l'état actuel des choses, je devrais m'occuper des _comptes en double_ de tous mes comptes existants à utiliser avec U2F, car j'aurais toujours besoin d'utiliser mon ancien Google/LastPass /quel que soit l'authentificateur pour tous les éléments aws-cli .

Donc... Le support U2F d'AWS a le _potentiel_ de devenir quelque chose qui me _vraiment_ enthousiasmé, mais sans le support CLI, cela ne vaut pas encore la peine d'être touché. J'imagine que beaucoup de gens sont dans le même bateau.

@jeffparsons est tout à fait d'accord avec le MFA U2F pour le CLI/SDK est vraiment nécessaire. Je parie qu'ils résisteraient à l'approche libusb/python-fido car cela ne correspond pas bien à le faire sur les SDK ruby/java ect. U2F avec une réponse au défi d'une seule touche serait cependant assez universel.

d'ailleurs, vous pouvez changer de compte dans la console Web très facilement en assumant un rôle sur l'autre compte
Comme:
https://signin.aws.amazon.com/switchrole?roleName=SomeAdminRole&account=YourAccountNumberOrAlias
voir:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

Vous pouvez ensuite voir le sélecteur de rôle dans la liste déroulante de votre utilisateur/compte en haut à droite de la page

aussi ce gars pourrait être sur quelque chose ... https://gist.github.com/woowa-hsw0/caa3340e2a7b390dbde81894f73e379d

Voici aussi une très bonne solution https://github.com/kreuzwerker/awsu

Travailler avec plusieurs configurations de comptes multiples, toutes avec un idp séparé utilisant le même U2F avec chacune d'entre elles, serait un énorme allégement de labeur pour moi.
Je n'aurais également aucun problème à installer/compiler une dépendance supplémentaire pour l'obtenir dans la version 1 en tant qu'aperçu.

Y a-t-il un mouvement sur les problèmes du côté des choses ?

Pour ce que ça vaut, aws-vault semble être assez proche de la fusion dans le support U2F : https://github.com/99designs/aws-vault/pull/316

Cela dit, je suis absolument favorable à l'ajout du support natif U2F à l'outil officiel de l'AWS CLI.

Pour ce que ça vaut, aws-vault semble être assez proche de la fusion dans le support U2F : 99designs/aws-vault#316

Non, il s'agit simplement de créer des jetons TOTP à l'aide du Yubikey. C'est une solution de contournement qui vous permet d'utiliser votre Yubikey mais ce n'est pas U2F.

(C'est la même chose que awsu , semble-t-il.)

L'ensemble du MFA dans awscli est difficile à configurer et le manque de support Yubikey n'aide pas.
MFA en 2019 devrait être un must, pas une fonctionnalité de pointe.

Des progrès à ce sujet ?

vient de tomber sur ça. Veuillez supprimer la prise en charge de Yubikey de la console Web si vous ne prévoyez pas de la prendre en charge dans la cli. C'est une énorme perte de temps d'avoir à chercher ce truc sur Google et de découvrir qu'AWS ne prend pas en charge ce qu'il annonce

Assez ridicule que ce problème soit ouvert depuis 440 jours et ne soit pas encore résolu.

Le support CLI serait, comme indiqué précédemment, très apprécié

Salut, nous aimerions appliquer MFA pour tous les utilisateurs humains avec https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (par manque d'un meilleure solution) mais maintenant il s'avère que nous devons soit :

a) abandonner complètement l'idée, ou
b) forcer tout le monde à passer d'U2F à TOTP.

Le fait qu'IAM ne prenne pas en charge plusieurs périphériques MFA est également une mauvaise blague...

Nous sommes presque en 2020. La solution MFA pratique et sécurisée (lire : U2F) est un must, pas un luxe à mon avis. Surtout dans les zones où des acteurs malveillants peuvent infliger de graves dommages financiers.

AWS, s'il vous plaît, s'il vous plaît, s'il vous plaît, rassemblez-vous et travaillez sur l'amélioration de votre support MFA dans tout votre écosystème (CLI, applications mobiles, AWS SSO - qui ne prend pas en charge U2F aussi !)

Le fait qu'IAM ne prenne pas en charge plusieurs périphériques MFA est également une mauvaise blague...

C'est vraiment embarrassant. L'enregistrement d'un seul appareil est une très mauvaise pratique, alors allez sur Amazon, réparez cela dès que possible !

Assez ridicule que ce problème soit ouvert depuis 440 jours et ne soit pas encore résolu.

C'est pire que ça. En 2013, quelqu'un d'Amazon a écrit :

Malheureusement, à l'heure actuelle, il n'est possible d'avoir qu'un seul MFA par compte.
J'ai cependant soulevé cela avec notre équipe de développement pour qu'il soit considéré comme une fonctionnalité pour le développement futur.
https://forums.aws.amazon.com/thread.jspa?threadID=137055

Je comprendrais que l'équipe puisse être occupée ou non, mais le fait que personne ne se soucie même de répondre à cette question est ce qui me préoccupe. Ce n'est pas un projet open source en sous-effectif et sous-payé où cela peut être excusé, mais AWS lui-même.

491 jours, ouvrons un champagne sur 500 ! :champagne: :confetti_ball:

Je suppose qu'Amazon se concentre vraiment sur les projets GOV où se trouve le $. Ce fil est un exemple des raisons pour lesquelles je ne recommande généralement à personne d'utiliser AWS.
Bien sûr, il fut un temps où ils étaient à la pointe de la technologie, mais de nos jours… il manque juste des fonctionnalités de base. Je sais que c'est hors sujet, mais un autre exemple est que Route 53 ne prend toujours pas en charge DNSSEC, alors voilà. Oh oui, et MFA devrait s'appeler SFA car il n'y a pas de "Multi" dans l'implémentation AWS.

Désolé pour la diatribe, mais personne ne regarde probablement ce fil, à l'exception des responsables de la sécurité qui souhaitent réellement la fonctionnalité.
Plus que quelques jours avant d'atteindre 500 :) !

J'aimerais vraiment que cela soit ajouté. Je trouve les téléphones portables extrêmement distrayants et je préfère ne pas avoir à sortir mon téléphone plusieurs fois par heure lorsque j'interagis avec les services AWS.

Cela a été mis à jour il y a quelques jours - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Est-ce que ça aide quelqu'un ?

Est-ce que ça aide quelqu'un ?

Malheureusement non. À mon humble avis, c'est un autre problème qu'AWS a besoin de scripts complexes pour utiliser même le code du jeton. J'utilise le module PyPi de script python tiers aws-mfa pour contourner ce problème.
Mais merci pour la pensée @chris-bateman !

Cela a été mis à jour il y a quelques jours - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Il y a un bouton « Quelque chose que nous pourrions améliorer ? Faites-le-nous savoir » au bas de cet article que je ne manquerai pas d'appuyer.

J'ai fait ma part et laissé un commentaire dans la partie "faites-nous savoir". Je serais également très heureux si cette fonctionnalité est implémentée.

idem merci d'avoir posté @steinybot

Ajout d'un commentaire triste qu'il n'est pas encore mis en œuvre
why

Deux ans d'existence dans moins de 2 mois. Ça doit s'approcher maintenant, non ? Droit?

Bonne nouvelle : si vous n'utilisez pas aws-vault, vous devriez le faire. Ils viennent d'introduire le support Yubikey. Si vous avez une clé Yubike qui prend en charge TOTP, vous pouvez ajouter le code MFA à l'intérieur. Alors que l'idéal serait de l'attendre d'Amazon, nous pouvons tous convenir qu'ils s'en moquent pendant que Jeff s'enrichit.
Il a un grand support pour les rôles et autres, une partie de moi est triste qu'il s'agisse d'un outil tiers, mais c'est ce que j'aime dans l'open source : vous avez des options.
lien : https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-ybikey

Bien qu'aws-vault soit génial, il prend en charge TOTP, pas U2F.

après des siècles d'attente, j'utilise maintenant https://github.com/kreuzwerker/awsu

@nbraud, il semble que l'interface python qu'ils utilisent ne fournisse pas de roues Linux, donc l'installation nécessiterait que l'utilisateur ait un compilateur installé. Ce n'est actuellement pas une exigence pour installer le cli, donc l'ajout de cette bibliothèque serait un changement décisif pour de nombreux utilisateurs.

Alors que @jeffparsons a souligné quelques solutions de contournement potentielles raisonnables si vous utilisez l'une des autres bibliothèques plus grandes avec plus de dépendances, je soulignerai également qu'il existe une bibliothèque Python plus petite qui devrait être prise en compte : pyu2f . Il s'appuie également sur des bibliothèques USB HID natives pour communiquer avec les clés U2F, mais il n'a qu'une seule dépendance Python : six . Il contient ses propres liaisons basées sur ctypes aux appels OS HID compatibles avec MacOS, Linux et Windows et couvrirait probablement "assez" de cas d'utilisation.

Avons-nous encore quelqu'un qui travaille là-dessus? L'équipe aws-cli accepterait-elle un correctif pour tout prototype de cette fonctionnalité ?

EDIT : après avoir lu davantage dans le guide de l'utilisateur IAM, il semble que U2F ne soit pas pris en charge au niveau de l'API, donc même si aws-cli charge l'authentification interactive par jeton U2F, cela ne ressemble pas à GetSessionToken et AssumeRole supportent ceci à ce stade (comme cité ci-dessous):

Il est important de comprendre les aspects suivants de la protection MFA pour les opérations d'API :

  • La protection MFA est disponible uniquement avec des informations d'identification de sécurité temporaires, qui doivent être obtenues avec AssumeRole ou GetSessionToken.
  • Vous ne pouvez pas utiliser l'accès API protégé par MFA avec les clés de sécurité U2F.

Aussi, concernant le commentaire social de @kiwimato :

Alors que l'idéal serait de l'attendre d'Amazon, nous pouvons tous convenir qu'ils s'en moquent pendant que Jeff s'enrichit.

Veuillez réaliser qu'il s'agit d'un fil de discussion sur le développement de logiciels, pas d'un forum de débat sur le capitalisme. Les équipes AWS sont composées de véritables humains qui, selon mon expérience, ont été très réactifs pour réparer les choses dans botocore . Si quelque chose vous tourmente, réalisez que la nature open source d'une grande partie de cela signifie que vous pouvez contribuer à une solution ou au moins aider à réfléchir à certaines options.

Cependant, bien que l'API AWS sous-jacente elle-même ne semble pas prendre en charge autre chose que TOTP pour MFA, il semble que ce problème puisse être un problème plus important que aws-cli ne prend tout simplement pas en charge la fonctionnalité client. Espérons qu'AWS puisse supprimer ce ticket une fois que l'API prend en charge U2F afin que nous puissions lancer le support client.

Au moins une solution comme celle-ci vous aidera à changer de contexte entre votre machine et votre téléphone
https://authy.com/

Y a-t-il un ETA à ce sujet ? Il est très préoccupant qu'apparemment personne au monde n'utilise de bonnes pratiques MFA pour son utilisation de la CLI AWS.

Il est très préoccupant qu'apparemment personne au monde n'utilise de bonnes pratiques MFA pour son utilisation de la CLI AWS.

@james-calahan ce n'est pas vrai. Nous limitons l'accès aux rôles uniquement à ceux qui sont authentifiés avec MFA. Par exemple:

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

Ensuite, nous utilisons un outil appelé aws-mfa pour gérer l'obtention de crédits temporaires auprès de STS et la mise à jour de nos fichiers d'informations d'identification AWS. Il existe d'autres façons de gérer l'interaction avec STS pour le même objectif.

Ce ticket se concentre sur l'ajout d'un support spécifique pour U2F.

@james-calahan ce n'est pas vrai. Nous limitons l'accès aux rôles uniquement à ceux qui sont authentifiés avec MFA.

Cela ne fonctionne qu'avec TOTP ; ce qui ne devrait pas être considéré comme un deuxième facteur de haute qualité en raison de la facilité de phishing des informations d'identification TOTP, etc.
Cela est aggravé par le fait qu'AWS ne vous permet pas d'inscrire à la fois un appareil U2F et un appareil TOTP à un seul utilisateur IAM.

Pour les utilisateurs qui en ont besoin, nous créons deux comptes :

  1. user for console, où ils activent U2F ou ne peuvent accéder à rien.
  2. utilisateur pour l'accès cli, où ils ajoutent des clés d'accès et activent MFA ou ne peuvent accéder à rien.

Assez difficile à hameçonner TOTP à partir d'un compte d'accès cli uniquement.

@craighurley
Cela semble un peu exagéré pour une solution de contournement IMO. Vous devez maintenir 2 comptes pour la gestion de la sécurité d'une organisation AWS juste pour avoir U2F sur la console.
Je ne le vois pas comme une solution raisonnable pour une entreprise qui souhaite utiliser U2F.

Cette page vous a été utile?
0 / 5 - 0 notes