Lea*_*nD1 3 google-cloud-platform terraform terraform-provider-gcp terraform0.12+
我是 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
}
Run Code Online (Sandbox Code Playgroud)
但我不断遇到错误
Error when reading or editing Project Service Foo/compute.googleapis.com: googleapi: Error 403: The caller does not have permission, forbidden
Run Code Online (Sandbox Code Playgroud)
我需要授予我的服务帐户什么权限才能使其能够执行此操作?
为了在 GCP 中启用服务 API,您用于运行 Terraform 的用户或服务帐户需要具有以下角色:
roles/serviceusage.serviceUsageAdmin
Run Code Online (Sandbox Code Playgroud)
因此,您必须从控制台向用户或 SA 授予上述角色,或者如果您有 Terraform 资源将角色绑定到也可以使用的用户/SA。
从 Terraform 身份验证的角度来看,如果您使用用户帐户,请确保使用以下命令从终端正确地向 GCP 进行身份验证:
gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)
如果您使用服务帐户,则需要指定GOOGLE_APPLICATION_CREDENTIALS传递 json 密钥文件的环境变量。
对于 Terraform 身份验证参考:https ://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference
| 归档时间: |
|
| 查看次数: |
7928 次 |
| 最近记录: |