Хотите назначить несколько ролей Google Cloud IAM для учетной записи службы через terraform - PullRequest
1 голос
/ 07 мая 2020

Хотите назначить несколько ролей IAM для одной учетной записи службы через terraform. Подготовил tf-файл для этого, но обнаружил некоторую ошибку, если я go с одной ролью, тогда он может быть успешно назначен, но когда я пытаюсь использовать несколько ролей IAM, это дает некоторую ошибку.

data "google_iam_policy" "auth1" {
  binding {
    role = "roles/cloudsql.admin"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]    
    role = "roles/secretmanager.secretAccessor"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]      
    role = "roles/datastore.owner"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]  
    role = "roles/storage.admin"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]      
  }
}

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

1 Ответ

4 голосов
/ 07 мая 2020

Согласно документации

Каждая конфигурация документа должна иметь один или несколько блоков привязки, каждый из которых принимает следующие аргументы: ....

Вам нужно повторить привязку, вот так

data "google_iam_policy" "auth1" {
  binding {
    role = "roles/cloudsql.admin"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]
  }
  binding {
    role = "roles/secretmanager.secretAccessor"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]
  }
  binding {
    role = "roles/datastore.owner"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]
  }
  binding {
    role = "roles/storage.admin"
    members = [
      "serviceAccount:${google_service_account.service_account_1.email}",
    ]
  }
}

То же самое и с командой gcloud, вы можете добавить только 1 роль за раз в список адресов электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...