如何解决:读取或编辑 Project Service Foo/container.googleapis.com 时出错:googleapi:错误 403

How To Solve: Error when reading or editing Project Service Foo/container.googleapis.com: googleapi: Error 403

我是 GCP 的新手,我正在尝试通过 Terraform 启用多个 API。

variable "gcp_service_list" {
  description ="Projectof apis"
  type = list(string)
  default = [
    "cloudresourcemanager.googleapis.com",
    "serviceusage.googleapis.com"
  ]
}

resource "google_project_service" "gcp" {
  for_each = toset(var.gcp_service_list)
  project = "project-id"
  service = each.key
}

但我一直运行进入错误

Error when reading or editing Project Service Foo/compute.googleapis.com: googleapi: Error 403: The caller does not have permission, forbidden

我需要授予我的服务帐户什么权限才能执行此操作?

为了在 GCP 中启用服务 API,您用于 运行 Terraform 的用户或服务帐户需要具有以下角色:

roles/serviceusage.serviceUsageAdmin

因此,您必须从控制台向用户或 SA 授予上述角色,或者如果您有 Terraform 资源将角色绑定到 users/SA 也可以使用。

从 Terraform 身份验证的角度来看,如果您使用的是用户帐户,请确保您使用以下命令从终端到 GCP 进行了正确的身份验证:

gcloud auth application-default login

如果您使用的是服务帐户,则需要指定传递 json 密钥文件的环境变量 GOOGLE_APPLICATION_CREDENTIALS

Terraform 身份验证参考:https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference