缺少 "billingAccounts/XXXXXXXXXXXXXXXXXXXXXXXX" 的权限:billing.resourceAssociations.create Terraform (GCP)

missing permission on "billingAccounts/XXXXXXXXXXXXXXXXXXXXXXXX": billing.resourceAssociations.create Terraform (GCP)

我尝试使用 Terraform 在 GCP 上自动创建共享 VPC。我已启用对我的服务帐户的所有访问权限(组织管理员、XpnAdmin、存储管理员、计算管理员、计费管理员)

但是当我执行 terraform apply 时,它抛出了以下错误:

missing permission on "billingAccounts/CXXXXXXXXXXXXXXXXXX": billing.resourceAssociations.create

我指的是此演示的 Google 提供商 Github code

您很可能拥有计费管理员,但您还需要能够创建计费分配,或者 "Billing Project Manager"。

https://cloud.google.com/billing/v1/how-tos/access-control

billing.resourceAssociations.create AND resourcemanager.projects.createBillingAssignment on the Cloud Billing account.

bootstrap 服务帐户有一些方便的代码 - Google Project Factory - 您可能想看一下。一旦创建了 SA,您就不应该有权限问题

即使我的“服务帐户”具有必要的“组织”级别权限,我也遇到了同样的错误。然后我想通了,我需要从“结算帐户”中获得许可。成功了。

我正在关注 this tutorial to create projects via "Service Account" and "Terraform", but still was getting error. After some research, I followed this 操作方法并已从“结算帐户”获得许可。

ProjectOrganizationBilling 是 3 个独立的权限组件。仅提供“组织”级别是不够的。也应从“结算帐户”获得许可。

当您登录 machine/laptop 并将默认凭据设置为 运行 terraform 时,通常会出现此错误。此后,您获得了一个新帐户或被要求使用新帐户,并且您正在使用 gcloud auth login / 或 gcloud auth application-default login 进行身份验证。这仍将使用以前的帐户结算帐户。建议第一次使用 Google CloudShell 到 运行 terraform 脚本。