Aws-cli: Поддержка U2F

Созданный на 26 сент. 2018  ·  45Комментарии  ·  Источник: aws/aws-cli

Согласно блогу AWS, U2F теперь поддерживается для входа в консоль:
https://aws.amazon.com/blogs/security/use-yubikey-security-key-sign-into-aws-management-console/

Особенно важно, чтобы на aws-cli был путь для поддержки этого, чтобы мы могли нажимать, чтобы выполнять команды, вместо того, чтобы иметь долгоживущие токены на диске / в памяти.

feature-request v2

Самый полезный комментарий

Насколько я понимаю, STS / IAM должна будет получить поддержку API для ключей безопасности в качестве токенов MFA, прежде чем двигаться дальше?

Может ли кто-нибудь пролить свет на это? Конечно, если он еще не поддерживается, то он не за горами ...?

РЕДАКТИРОВАТЬ:

Пожалуйста, не позволяйте этому превратиться в один из тех неприятных случаев, когда компания предполагает, что никого из ее клиентов не волнует какая-то функция, потому что они реализовали не очень полезную версию, а потом ее никто не использовал.

Я никогда не использую веб-интерфейс для входа в консоль Amazon. Для меня все это управляется CLI, потому что у меня есть несколько учетных записей, с которыми мне нужно иметь дело (и т. Д.). И даже если я _did_ использовал веб-интерфейс для входа в систему, то в нынешнем виде мне нужно было бы использовать _duplicate account_ всех моих существующих учетных записей для использования с U2F, потому что мне все равно нужно было бы использовать мой старый Google / LastPass / любой аутентификатор для всего aws-cli материала.

Итак ... У поддержки U2F от AWS есть _потенциал_, чтобы стать чем-то, к чему я был бы _ действительно_ энтузиазм, но без поддержки CLI это пока не стоит трогать. Я полагаю, что многие люди находятся в одной лодке.

Все 45 Комментарий

AFAIK, U2F обычно работает только в веб-браузере. Как вы ожидаете, что он будет использоваться из CLI? Запустить браузер?

@JensRantil Нет, любое приложение может взаимодействовать с токеном U2F.

Источник: я поддерживаю libu2f-* и pam-u2f в Debian;)

Похоже, что U2F пока не поддерживается для доступа к API:

Вы не можете использовать доступ к API, защищенный MFA, с ключами безопасности U2F.

Тем не менее, я определенно передал этот отзыв команде обслуживания. По моему собственному опыту, U2F в 100000 раз удобнее, чем любой другой второй фактор, поэтому я бы хотел увидеть его даже для себя.

Единственное предостережение заключается в том, что это должна быть функция V2, поскольку я совершенно уверен, что мы должны задействовать зависимости c для взаимодействия с токеном u2f.

@JordonPhillips К вашему сведению, есть хост-библиотека Python U2F от Yubico; это сам 100% Python, но зависит от hidapi , который IIRC использует libusb и libudev .
OTOH, он уже доступен во всех основных дистрибутивах, так что это не должно иметь большого значения?

Также потребуется (как и при любом использовании U2F), чтобы пользователь мог взаимодействовать с устройством U2F; Yubico поддерживает восходящие правила udev в libu2f-host , которые я отправил в Debian как libu2f-udev (так что их можно установить, не загружая библиотеку C), что является зависимостью от task-desktop (начиная с Debian 10 «buster»), поэтому у большинства пользователей он будет установлен прямо из коробки; в stretch (текущая стабильная версия Debian) мы отправили правила udev для U2F в пакете udev , так что он там тоже доступен.
TL; DR: Debian должен иметь правильные разрешения для устройств U2F в jessie и далее (выпущенных более года назад), как и все производные Debian (если только они не изо всех сил пытались сломать U2F ...)

Это было бы очень полезно для меня. Доставать телефон 10-20 раз в день, чтобы скопировать TOTP, - это не весело. 😅 Если бы я мог вместо этого просто коснуться своего Yubikey, мой опыт использования aws-cli был бы _so_ намного приятнее.

@nbraud похоже, что интерфейс python, который они используют, не предоставляет колеса Linux, поэтому для его установки потребуется, чтобы у пользователя был установлен компилятор. В настоящее время это не является обязательным требованием для установки cli, поэтому добавление этой библиотеки было бы критическим изменением для многих пользователей.

@JordonPhillips Что касается внесения

  1. Сделайте его необязательной зависимостью в v1, и тогда люди, которым это действительно небезразлично, могут скомпилировать со специальным флагом, чтобы включить его. Таким образом, они соглашаются на «предварительный просмотр» того, что в конечном итоге станет частью клиента v2 по умолчанию.

  2. Разделите часть U2F на отдельный двоичный файл и обнаружите его присутствие во время выполнения. Затем пользователям, которые попытаются использовать AWS CLI с U2F, будет сказано «установите этот другой инструмент», чтобы он заработал. Так, например, на Mac я был бы на один brew install aws-cli-u2f от блаженства. 😃

Да, я был бы более чем счастлив установить дополнительный модуль компиляции из исходного кода, чтобы получить эту функциональность. Это будет необходимо только на машинах разработчиков, которые почти всегда уже имеют компилятор, но в любом случае не на серверах.

Альтернативой python-u2f-host может быть python-fido2, который

Я задержу дыхание ради этого 👍

Насколько я понимаю, STS / IAM должна будет получить поддержку API для ключей безопасности в качестве токенов MFA, прежде чем двигаться дальше?

Насколько я понимаю, STS / IAM должна будет получить поддержку API для ключей безопасности в качестве токенов MFA, прежде чем двигаться дальше?

Может ли кто-нибудь пролить свет на это? Конечно, если он еще не поддерживается, то он не за горами ...?

РЕДАКТИРОВАТЬ:

Пожалуйста, не позволяйте этому превратиться в один из тех неприятных случаев, когда компания предполагает, что никого из ее клиентов не волнует какая-то функция, потому что они реализовали не очень полезную версию, а потом ее никто не использовал.

Я никогда не использую веб-интерфейс для входа в консоль Amazon. Для меня все это управляется CLI, потому что у меня есть несколько учетных записей, с которыми мне нужно иметь дело (и т. Д.). И даже если я _did_ использовал веб-интерфейс для входа в систему, то в нынешнем виде мне нужно было бы использовать _duplicate account_ всех моих существующих учетных записей для использования с U2F, потому что мне все равно нужно было бы использовать мой старый Google / LastPass / любой аутентификатор для всего aws-cli материала.

Итак ... У поддержки U2F от AWS есть _потенциал_, чтобы стать чем-то, к чему я был бы _ действительно_ энтузиазм, но без поддержки CLI это пока не стоит трогать. Я полагаю, что многие люди находятся в одной лодке.

@jeffparsons полностью согласен с тем, что U2F MFA для CLI / SDK действительно необходим. Бьюсь об заклад, они будут сопротивляться использованию подхода libusb / python-fido, поскольку он плохо согласуется с его использованием в SDK ruby ​​/ java и т. Д. Однако U2F с ответом на вызов одним касанием был бы довольно универсальным.

кстати, вы можете очень легко переключать учетные записи в веб-консоли, взяв на себя роль другой учетной записи
нравиться:
https://signin.aws.amazon.com/switchrole?roleName=SomeAdminRole&account=YourAccountNumberOrAlias
видеть:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html

Затем вы можете увидеть переключатель ролей в раскрывающемся списке вашего пользователя / учетной записи в правом верхнем углу страницы.

также этот парень может что-то сказать ...

Вот тоже очень хорошее решение https://github.com/kreuzwerker/awsu

Работа с несколькими настройками разных учетных записей, каждая из которых с отдельным idp, использующим один и тот же U2F со всеми из них, была бы огромным облегчением для меня.
У меня также не было бы проблем с установкой / компиляцией дополнительной зависимости, чтобы получить это в v1 в качестве предварительного просмотра.

Есть ли какие-либо движения по проблемам с отрицательной стороны?

Как бы то ни было, aws-vault, похоже, довольно близок к слиянию с поддержкой U2F: https://github.com/99designs/aws-vault/pull/316

Тем не менее, я абсолютно поддерживаю добавление встроенной поддержки U2F в официальный инструмент AWS CLI.

Как бы то ни было, похоже, что aws-vault довольно близок к слиянию с поддержкой U2F: 99designs / aws-vault # 316

Нет, это просто создание токенов TOTP с помощью Yubikey. Это обходной путь, позволяющий использовать Yubikey, но не U2F.

(Кажется, это то же самое, что делает awsu .)

Весь MFA в awscli сложно настроить, и отсутствие поддержки yubikey не помогает.
MFA в 2019 году должна быть обязательной, а не ультрасовременной.

Есть ли в этом прогресс?

просто столкнулся с этим. Удалите поддержку Yubikey с веб-консоли, если вы не планируете поддерживать ее в cli. Огромная трата времени - приходиться гуглить все это и выяснять, что AWS не поддерживает то, что рекламирует.

Довольно смешно, что этот вопрос открыт уже 440 дней и еще не решен.

Поддержка CLI будет, как уже говорилось ранее, высоко ценится

Привет, мы хотели бы применить MFA для всех пользователей-людей с помощью https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html (из-за отсутствия лучшее решение), но теперь оказывается, что мы либо должны:

а) полностью отказаться от идеи, или
б) заставить всех перейти с U2F на TOTP.

Тот факт, что IAM не поддерживает несколько устройств MFA, тоже плохая шутка ...

Скоро 2020 год. Удобное и безопасное (читай: U2F) решение MFA - необходимость, а не роскошь, на мой взгляд. Особенно в областях, где злоумышленники могут нанести серьезный финансовый ущерб.

AWS, пожалуйста, пожалуйста, соберитесь с силами и работайте над улучшением поддержки MFA во всей экосистеме (интерфейс командной строки, мобильные приложения, AWS SSO - который также не поддерживает U2F!)

Тот факт, что IAM не поддерживает несколько устройств MFA, тоже плохая шутка ...

Это действительно неловко. Регистрация только одного устройства - это действительно плохая практика, так что приходите на Amazon, исправьте это как можно скорее!

Довольно смешно, что этот вопрос открыт уже 440 дней и еще не решен.

Это еще хуже. В 2013 году кто-то из Amazon написал:

К сожалению, в настоящее время возможно иметь только один MFA для каждой учетной записи.
Однако я поднял этот вопрос с нашей командой разработчиков, чтобы его можно было рассматривать как функцию для будущего развития.
https://forums.aws.amazon.com/thread.jspa?threadID=137055

Я бы понял, что команда может быть занята или нет, но то, что никто даже не удосужился ответить на этот вопрос, меня беспокоит. Это не какой-то недоукомплектованный и недоплачиваемый проект с открытым исходным кодом, которому это может быть оправдано, а сам AWS.

491 день, откроем шампанское на 500! : шампанское:: confetti_ball:

Я предполагаю, что Amazon действительно сосредоточен на проектах GOV, где цена находится на уровне. Эта ветка - один из примеров того, почему я обычно никому не рекомендую использовать AWS.
Конечно, было время, когда они были на передовой, но в настоящее время… им просто не хватает основных функций. Я знаю, что это не по теме, но другой пример - Route 53 все еще не поддерживает DNSSEC, так что готово. Ах да, и MFA следует называть SFA, потому что в реализации AWS нет «Multi».

Извините за напыщенную речь, но, скорее всего, эту ветку никто не смотрит, кроме тех, кому нужна эта функция.
Всего пара дней до 500 :)!

Я бы очень хотел, чтобы это было добавлено. Я считаю, что мобильные телефоны сильно отвлекают, и мне не хотелось бы вынимать телефон несколько раз в час, когда я взаимодействую с сервисами AWS.

Это было обновлено несколько дней назад - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Это кому-нибудь поможет?

Это кому-нибудь поможет?

К сожалению нет. ИМХО, это еще одна проблема, что AWS нужны сложные скрипты для использования даже кода токена. Я использую сторонний модуль PyPi aws-mfa python script, чтобы обойти это.
Но спасибо за мысль @ chris-bateman!

Это было обновлено несколько дней назад - https://aws.amazon.com/premiumsupport/knowledge-center/authenticate-mfa-cli/

Внизу статьи есть кнопка «Что-нибудь, что мы могли бы улучшить? Сообщите нам», и я обязательно буду нажимать ее.

Я выполнил свою часть работы и оставил комментарий в разделе «дайте нам знать». Я также был бы очень рад, если бы эта функция была реализована.

то же спасибо за публикацию @steinybot

Добавляем грустный комментарий, что он еще не реализован
why

Двухлетний юбилей приближается менее чем через 2 месяца. Он, должно быть, приближается, верно? Верно?

Хорошие новости: если вы не используете aws-vault, вам следует это сделать. Они только что представили поддержку Yubikey. Если у вас есть yubikey, поддерживающий TOTP, вы можете добавить код MFA внутрь. Хотя в идеале этого можно было бы ожидать от Amazon, мы все можем согласиться с тем, что им просто все равно, пока Джефф становится богаче.
У него отличная поддержка ролей и тому подобного, часть меня грустит, что это сторонний инструмент, но это то, что мне нравится в открытом исходном коде: у вас есть варианты.
ссылка: https://github.com/99designs/aws-vault/blob/master/USAGE.md#using -a-yubikey

Хотя aws-vault великолепен, он поддерживает TOTP, а не U2F.

после долгих ожиданий этого я теперь использую https://github.com/kreuzwerker/awsu

@nbraud похоже, что интерфейс python, который они используют, не предоставляет колеса Linux, поэтому для его установки потребуется, чтобы у пользователя был установлен компилятор. В настоящее время это не является обязательным требованием для установки cli, поэтому добавление этой библиотеки было бы критическим изменением для многих пользователей.

Хотя @jeffparsons указал на некоторые разумные возможные обходные пути, если вы используете одну из других более крупных библиотек с большим количеством зависимостей, я также отмечу , что есть меньшая библиотека Python, которую следует учитывать: six . Он упаковывает свои собственные привязки на основе ctypes к вызовам HID в ОС, совместимые с MacOS, Linux и Windows, и, вероятно, охватит «достаточно» вариантов использования.

Кто-нибудь еще над этим работает? Примет ли команда aws-cli патч для каких-либо прототипов этой функциональности?

РЕДАКТИРОВАТЬ: после прочтения дополнительной информации из руководства пользователя IAM похоже, что U2F не поддерживается на уровне API, поэтому даже если aws-cli поддерживает интерактивную аутентификацию токена U2F, это не выглядит как GetSessionToken и AssumeRole поддерживают это на данный момент (как указано ниже):

Важно понимать следующие аспекты защиты MFA для операций API:

  • Защита MFA доступна только с временными учетными данными, которые должны быть получены с помощью AssumeRole или GetSessionToken.
  • Вы не можете использовать доступ к API, защищенный MFA, с ключами безопасности U2F.

Также, что касается социального комментария от @kiwimato :

Хотя в идеале этого можно было бы ожидать от Amazon, мы все можем согласиться с тем, что им просто все равно, пока Джефф становится богаче.

Пожалуйста, поймите, что это тема разработки программного обеспечения, а не дискуссионный форум о капитализме. Команды AWS состоят из настоящих людей, которые, по моему опыту, довольно быстро исправляют ошибки в botocore . Если вас что-то беспокоит, осознайте, что во многом это открытый исходный код, что означает, что вы можете помочь внести исправление или, по крайней мере, помочь провести мозговой штурм по некоторым вариантам.

Однако, хотя сам базовый API AWS, похоже, не поддерживает ничего, кроме TOTP для MFA, похоже, что эта проблема может быть более серьезной проблемой, чем aws-cli просто не поддерживающий клиентские функции. Надеюсь, AWS сможет поднять этот тикет, как только API будет поддерживать U2F, чтобы мы могли получить поддержку клиентов.

По крайней мере, подобное решение поможет с переключением контекста между вашим компьютером и телефоном.
https://authy.com/

Есть ли здесь какое-либо расчетное время прибытия? Очень беспокоит то, что, по всей видимости, никто в мире не использует передовые методы MFA для использования AWS cli.

Очень беспокоит то, что, по всей видимости, никто в мире не использует передовые методы MFA для использования AWS cli.

@ james-callahan, это неправда. Мы ограничиваем доступ к ролям только тем, кто авторизован с помощью MFA. Например:

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

Затем мы используем инструмент под названием aws-mfa для управления получением временных кредитов от STS и обновления наших файлов учетных данных AWS. Есть и другие способы управления взаимодействием с STS для той же цели.

Этот билет посвящен добавлению поддержки специально для U2F.

@ james-callahan, это неправда. Мы ограничиваем доступ к ролям только тем, кто авторизован с помощью MFA.

Это работает только с TOTP; что не следует рассматривать как второй фактор высокого качества из-за простоты фишинговых учетных данных TOTP и т. д.
Это усугубляется тем фактом, что AWS не позволяет регистрировать одновременно устройство U2F и TOTP для одного пользователя IAM, поэтому, если вы хотите использовать U2F для доступа к пользовательскому интерфейсу, вы не можете использовать какой-либо MFA из cli.

Для тех пользователей, которым это нужно, мы создаем две учетные записи:

  1. пользователь для консоли, где они включают U2F или не могут получить доступ ни к чему.
  2. пользователь для доступа cli, где они добавляют ключи доступа и включают MFA или не могут получить доступ ни к чему.

Довольно сложно выполнить фишинг-фишинг TOTP из учетной записи, использующей только клиентский доступ.

@craighurley
Это выглядит немного излишним для обходного пути IMO. Вы должны поддерживать 2 аккаунта для управления безопасностью организации AWS только для того, чтобы на консоли был U2F.
Я не считаю это разумным решением для любой компании, которая хочет использовать U2F.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги