Управление базовой инфраструктурой с помощью terraform с использованием служебной учетной записи в Google Cloud

Я использую Terraform v0.13.5.1 и хочу управлять базовой инфраструктурой, такой как создание папки, ролей IAM в папке, политик организации, создание проектов, создание учетных записей служб и т. Д.

Вопрос: Мы не можем создавать учетные записи служб на уровне организации или на уровне папок, так как же управлять этой инфраструктурой с помощью учетной записи службы?

Спасибо


person d.s    schedule 24.11.2020    source источник


Ответы (2)


Учетные записи служб создаются для проекта и принадлежат ему. Вы можете создать учетную запись службы в любом проекте, а затем использовать эту учетную запись службы в любом проекте / папке / организации, включая те, которыми вы не владеете и не управляете. Например, я могу добавить вашу учетную запись службы в свой проект, если я знаю адрес электронной почты.

Создав учетную запись службы, вы можете добавить эту учетную запись службы в IAM на уровне организации и папки, назначив соответствующие роли, такие как администратор папки, администратор организации, создатель проекта и т. Д. Попробуйте использовать минимальные права, поскольку эти разрешения наследуются на дочерние уровни: (Организация- ›Папка (и) -› Проект (ы)) или (Папка- ›Проект (ы)).

После того, как вы создали учетную запись службы и назначили правильные роли, вы можете настроить Terraform для использования этой учетной записи службы, либо установив переменную среды GOOGLE_APPLICATION_CREDENTIALS так, чтобы она указывала на файл JSON учетной записи службы, либо указав поставщика Google credentials в файле * .tf.

person John Hanley    schedule 02.12.2020

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

Вы можете выполнять указанные выше операции через консоль GCP или командную строку gcloud. Или даже вы можете выполнить этот первоначальный запуск с Terraform с аутентификацией как обычный пользователь вместо учетной записи службы (т.е. запустить Terraform с вашим пользователем, при условии, что у вас есть привилегии для создания проекта, учетной записи службы и установки политик на уровне организации / папки и т. Д.).

Можно предоставить и роли на уровне организации или папки для учетной записи службы, даже если это всего лишь часть проекта. Чтобы иметь права на создание папок, политик организации, создания учетной записи службы и т. Д., Вы можете предоставить требуемые права этой учетной записи службы, указав https://cloud.google.com/iam/docs/understanding-roles

Например

  • Для создания папок и управления политиками IAM - roles/resourcemanager.folderAdmin
  • Для политик организации - roles/orgpolicy.policyAdmin
  • Для создания проектов - roles/resourcemanager.projectCreator и т. Д.
person Syam Sankar    schedule 24.11.2020