如何正确创建具有Terraform角色的gcp服务帐户

问题描述 投票:0回答:1

这是我用来创建服务帐户并将其绑定角色的terraform代码:

resource "google_service_account" "sa-name" {
  account_id = "sa-name"
  display_name = "SA"
}

resource "google_project_iam_binding" "firestore_owner_binding" {
  role               = "roles/datastore.owner"
  members = [
    "serviceAccount:sa-name@${var.project}.iam.gserviceaccount.com",
  ]
  depends_on = [google_service_account.sa-name]
}

上面的代码非常有用...除了从该角色先前分配到的项目中的任何其他服务帐户中删除了datastore.owner之外,其他代码都很棒。我们有多个团队使用的单个项目,并且有由不同团队管理的服务帐户。我的terraform代码只有我们团队的服务帐户,最终我们可能破坏其他团队的服务帐户。

还有另一种在Terraform中执行此操作的方法吗?

这当然可以通过GCP UI或gcloud cli完成,不会出现任何问题或影响其他SA。

google-cloud-platform terraform service-accounts terraform-provider-gcp
1个回答
0
投票

这是Terraform的常见问题。要么全部使用它,要么什么都不做。如果您介于两者之间,则可能会发生意外的情况!

如果要使用terraform,则必须将现有的导入到tfstate中。 Here the doc for the bindind,当然,您必须在Terraform文件中添加所有帐户。如果没有,绑定将被删除,但是这次,您将在tf plan中看到删除。

© www.soinside.com 2019 - 2024. All rights reserved.