Назад | Перейти на главную страницу

Создание временных ключей доступа для федеративных пользователей IAM

Мы настроили роли IAM, которые позволяют федеративным пользователям, прошедшим аутентификацию с помощью Okta, получать доступ к Консоли AWS.

Некоторым пользователям требуются временные ключи доступа к AWS для локального использования инструментов командной строки AWS.

Могут ли эти пользователи создать временные ключи доступа в консоли AWS или в сценарии оболочки?

В недавнем проекте мне нужно было, чтобы пользователи использовали Okta для доступа как к консоли AWS, так и к использованию интерфейса командной строки AWS. Итак, я написал инструмент, который будет генерировать временные учетные данные AWS (из STS) с использованием утверждения SAML, созданного на основе входа в систему Okta, которое можно использовать с CLI.

Это позволяет осуществлять весь доступ к AWS через Okta и позволяет входить в систему MFA как для доступа с консоли, так и для доступа через интерфейс командной строки.

Инструмент okta_aws_login.py можно найти по адресу GitHub а дополнительные сведения можно найти в этом сообщении в блоге из серии статей о настройке федерация пользователей с Okta и AWS.

Если я правильно понимаю ваш вариант использования, это невозможно как таковое, потому что полученные временные учетные данные из резервной копии GetFederationToken Само действие API не может использоваться для вызова этих СТС API, см. Таблицу Сравнение функций API-интерфейсов AWS STS для подробностей.

Эта функциональность должна быть предоставлена ​​организацией, отвечающей за долгосрочные учетные данные AWS (Okta), которая может предложить выдачу полученного триплета временных учетных данных для копирования / вставки в сценарии AWS CLI.

Я создал небольшое веб-приложение мы выполняем внутренний запуск, который будет выдавать временные учетные данные AWS для наших пользователей, использующих AssumeRole. Имеет два режима работы:

  • Использование единого входа: пользователь посещает URL-адрес и видит учетные данные, которые он может скопировать.

  • Клиент командной строки: делает https-запрос к веб-приложению (с именем пользователя и паролем Okta). Если аутентификация с помощью Okta прошла успешно, клиент записывает учетные данные в ~ / .aws / credentials.

У меня есть решение для этого; https://github.com/nathan-v/aws_okta_keyman

Поддержка большинства факторов MFA идет прямо из коробки, и ее легко использовать и развертывать на рабочих станциях разработчиков без каких-либо дополнительных услуг или безумных зависимостей. Вы можете начать использовать его сегодня, используя только Python и pip.

Этот инструмент позволяет разработчикам, у которых доступ к AWS объединен с Okta, получать ключи через STS, записанные в ~/.aws/credentials для них под именем профиля, которое они выбирают (необязательно), чтобы вы могли легко управлять ключами из нескольких учетных записей или ролей.