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

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

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

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

缺少“billingAccounts/CXXXXXXXXXXXXXXXXXX”的权限:billing.resourceAssociations.create

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

google-cloud-platform terraform terraform-provider-gcp
6个回答
5
投票

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

我按照 this 教程通过“服务帐户”和“Terraform”创建项目,但仍然出现错误。经过一番研究后,我遵循了this操作方法并获得了“计费帐户”的许可。

项目组织计费是 3 个独立的权限组件。给予“组织”级别是不够的。也应获得“计费帐户”的许可。


3
投票

您很可能拥有计费管理员,但您还需要能够创建计费分配或“计费项目经理”。

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

Cloud Billing 帐户上的

billing.resourceAssociations.create 和 resourcemanager.projects.createBillingAssignment。

有一些方便的代码来引导服务帐户 - Google Project Factory - 您可能想看看。创建 SA 后,您就不应该遇到权限问题


0
投票

当我的 Terraform 配置中有旧的(已删除的)计费帐户 ID 时,我收到此错误。

哦!


0
投票

我也遇到了同样的问题。您现在可以使用此

gcloud
CLI 命令将角色分配给身份(截至撰写本文时仍处于 alpha 阶段):

gcloud alpha billing accounts add-iam-policy-binding 123456-ABCDEF-123ABD \
  --member "serviceAccount:youserviceaccount@projectID-of-the-serviceaccount.iam.gserviceaccount.com" \
  --role="roles/billing.user"

https://cloud.google.com/sdk/gcloud/reference/alpha/billing/accounts/add-iam-policy-binding


0
投票

我遇到了同样的问题,花了大约3个小时。

结果我发现我们需要在Billing account端设置角色。

如下图所示,您需要将 Billing 角色授予运行 Cloud Billing 的***服务帐户***。 enter image description here


-1
投票

当您登录计算机/笔记本电脑并设置默认凭据来运行 terraform 时,通常会出现此错误。此后,您获得了新帐户或被要求使用新帐户,并且您使用 gcloud auth login / 或 gcloud auth application-default login 进行身份验证。这仍将使用之前的帐户计费帐户。建议首次使用 Google CloudShell 运行 terraform 脚本。

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