Аутентификация Terraform с помощью Okta

Аутентификация Terraform с помощью Okta

Компания, в которой я работаю, использует устаревший логин от okta для AWS. Таким образом, для использования aws-cli необходима утилита aws-okta, которая требует okta MFA перед запуском любой команды aws-cli.

Я пишу инфраструктуру в Terraform и не нашел, как заставить Terraform использовать Okta, чтобы он мог создавать компоненты AWS.

Это возможно?

Кроме того, это необходимо запустить в конвейере ci/cd, и я не уверен, как это будет работать там из-за MFA. Какие-нибудь предложения вы могли бы мне дать?

решение1

Да... довольно много подходов доступно для Okta. Okta делает SSO/федеративную идентификацию действительно простой, в AWS, сторонних SaaS-инструментах и ​​устаревших инструментах, использующих аутентификацию LDAP и т. д., предоставляя обширные журналы/аудиторские следы

https://github.com/oktadeveloper/okta-aws-cli-assume-role
https://github.com/segmentio/aws-okta
https://bitbucket.org/atlassian/cloudtoken/src/master/
https://github.com/Nike-Inc/gimme-aws-creds

Мы используем gimme-aws-creds для примерно 30 аккаунтов AWS. Мы используем подход контейнера docker как на Mac, так и на PC в нашей команде devops и командах разработчиков. Он позволяет пользователю принять роль в определенном аккаунте AWS, и вы можете запустить terraform на своем ПК. Вы также можете использовать функцию принятия роли в поставщике Terraform AWS
https://www.terraform.io/docs/providers/aws/index.html

С точки зрения CI/CD вам не нужна Okta и вам не нужна MFA. Сервер Jenkins EC2 или эквивалент будет иметь роль экземпляра для принятия других ролей в той же учетной записи или других учетных записях. Terraform будет использовать эту предполагаемую роль. Мы используем Okta для защиты нашего сервера Jenkins (аутентификация LDAP).

Связанный контент