Создание автоматизации с помощью Terraform и Cloubuild на GCP - PullRequest
0 голосов
/ 17 апреля 2020

Я тестировал автоматизацию с Ia C с помощью terraform и хочу воспользоваться этими инструкциями из этого урока Управление проектами GCP с помощью Terraform и автоматизировать их с помощью контроля версий.

Но я сталкиваюсь с ошибкой

err: failed pre-requisites: missing permission on "billingAccounts/billingaccountid": billing.resourceAssociations.create

IAM TF config

resource "google_organization_iam_binding" "tfadmin" {


 org_id = var.org_id
  role    = "roles/billing.resourceAssociations.create"

  members = [
    "serviceAccount:tfadmin@project_id.iam.gserviceaccount.com",
  ]
}

resource "google_billing_account_iam_member" "binding" {
  billing_account_id = var.billing_account
  role               = "roles/billing.user"

  member            =  "serviceAccount:tfadmin@project_id.iam.gserviceaccount.com"



 }

resource "google_service_account" "tfadmin" {
  project      = google_project.project.project_id
  account_id   = "tfadmin"
  display_name = "tfadmin"

}
resource "google_project_iam_binding" "project_name" {
  project = google_project.project.project_id
  role    = "roles/bill.user"

  members = [
   "serviceAccount:${google_service_account.tfadmin.email}",  
    "user:var.billing_account_user",
  ]
}

resource "google_project_iam_policy" "project_id" {
  project     = google_project.project.project_id
  policy_data = data.google_iam_policy.tfadmin.policy_data
}

data "google_iam_policy" "tfadmin" {
  binding {
    role = "roles/resourcemanager.projectCreator"

    members = [
      "serviceAccount:tfadmin@project_id.iam.gserviceaccount.com",
    ]
  }
}

Я ищу, чтобы добавить служебную учетную запись для создания другого проекта GCP с другими gcp services (облако sql, вычислительный движок, движок приложений)

Что-то, чего мне не хватает, не найдено?

1 Ответ

1 голос
/ 19 апреля 2020

Cloud Build, на данный момент используется только учетная запись службы Cloud Build по умолчанию <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com.

Когда вы запускаете terraform в Cloud Build, вы можете простить указание ключа учетной записи.

provider "google" {
//  Useless with Cloud Build
//  credentials = file("${var.CREDENTIAL_FILE}}")
  project = var.PROJECT_ID
  region = "europe-west1"
}

Таким образом, используется служебная учетная запись среды. Здесь это Cloud Build, то есть учетная запись службы по умолчанию Cloud Build.

Предоставьте правильную роль учетной записи службы по умолчанию Cloud Build, и она должна работать.

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