Управление созданием роли в IAM с использованием Terraform - PullRequest
0 голосов
/ 30 января 2020

Постановка проблемы:

Я хочу создать и управлять предположить, что IAM Принимает роли для нескольких AWS учетных записей с использованием Terraform.

Цель для достижения

  • Создание роли IAM Предполагаемые роли во всех учетных записях AWS с использованием модуля Terraform

Фон

IAM Роли будут существовать в каждой учетной записи, и каждая учетная запись будет иметь разное количество Предполагаемых ролей, учитывая, что она будет использоваться различными командами с различным размером. Доступ к учетной записи будет предоставлен через учетную запись Jump AWS, откуда пользователь будет проходить аутентификацию, а затем использовать URL-адрес Assume Role для переключения учетных записей.

Для, например,

Account A  has two IAM roles: admin_role and developer_role
Account B has three IAM roles: admin_role, poweruser_role and developer_role
Account C is a jump account, and it also has admin_role, poweruser_role and developer_role  IAM role

User A log into Account C(with poweruser_role attached to them user) then assumes to Account B(this account has a trust relationship with Account C) using the same poweruser_role.

Что будет правильным решением IAM Terraform для этой настройки инфраструктуры нескольких учетных записей?

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

Заранее спасибо.

1 Ответ

0 голосов
/ 01 февраля 2020

Обычно рекомендуется создать организацию AWS. Организация содержит: - infose c учетную запись (в которой вы создаете пользователей), - главную учетную запись (для совокупного выставления счетов) - затем вы создаете одну учетную запись для среды (например, staging, production, dev) и устанавливаете sh доверительные отношения между ними. Делая это, вы достигаете максимальной гибкости. Фактически вы можете создавать разные группы для разных учетных записей и назначать отдельным пользователям одну или несколько групп.

Пример:

  • CTO является частью главной биллинговой группы, административного администратора и администратора производства
  • Внутренний разработчик является частью административного администратора производства и производства
  • Внешний консультант является частью постановочной администрации

Некоторые ссылки: https://www.liatrio.com/blog/secure-aws-account-structure-with-terraform-and-terragrunt Соответствующий проект GitHub: https://github.com/liatrio/aws-accounts-terraform

...