如何通过命令行向服务帐户授予 GCP 组织级权限
How To Grant GCP Organization Level Permissions to Service Account via Command Line
我正在尝试在 terraform 中创建数据源以获取有关 Google 计费帐户的信息。
data "google_billing_account" "ac" {
display_name = "foo-Billing"
open = true
}
但是 terraform 抛出错误 Error: Billing account not found: foo-Billing
,看起来我的服务帐户缺少执行此操作所需的权限,因为计费帐户确实存在。
我能够运行这个命令
gcloud projects add-iam-policy-binding main1-project --member=serviceAccount:$ID --role=roles/ROLE_NAME
除了 billing.admin
抛出错误
之外,它几乎可以与任何其他角色结合使用
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Role (roles/billing.admin) does not exist in the resource's hierarchy.
我是 GCP 的新手,所以我不确定如何解决这个问题。
有没有办法从命令行向服务帐户授予 billing.admin
权限?
也许另一个 API 可以打电话什么的。
我可以从 UI 授予权限,然后使我的 terraform 命令工作,但我希望能够从命令行授予它。
您收到此错误是因为您试图从项目级别分配计费管理员角色,但它只能在组织级别完成。
如果你有一个组织,那么同一个命令应该稍微调整一下。
gcloud organizations add-iam-policy-binding ORGANIZATION --member=serviceAccount:$ID --role=roles/billing.admin
您应该能够使用
获得您的组织列表
gcloud organizations list
如果你没有,那就创建一个。
您只需要一个 Gsuite 或 Cloud Identity 帐户。
我正在尝试在 terraform 中创建数据源以获取有关 Google 计费帐户的信息。
data "google_billing_account" "ac" {
display_name = "foo-Billing"
open = true
}
但是 terraform 抛出错误 Error: Billing account not found: foo-Billing
,看起来我的服务帐户缺少执行此操作所需的权限,因为计费帐户确实存在。
我能够运行这个命令
gcloud projects add-iam-policy-binding main1-project --member=serviceAccount:$ID --role=roles/ROLE_NAME
除了 billing.admin
抛出错误
ERROR: (gcloud.projects.add-iam-policy-binding) INVALID_ARGUMENT: Role (roles/billing.admin) does not exist in the resource's hierarchy.
我是 GCP 的新手,所以我不确定如何解决这个问题。
有没有办法从命令行向服务帐户授予 billing.admin
权限?
也许另一个 API 可以打电话什么的。
我可以从 UI 授予权限,然后使我的 terraform 命令工作,但我希望能够从命令行授予它。
您收到此错误是因为您试图从项目级别分配计费管理员角色,但它只能在组织级别完成。
如果你有一个组织,那么同一个命令应该稍微调整一下。
gcloud organizations add-iam-policy-binding ORGANIZATION --member=serviceAccount:$ID --role=roles/billing.admin
您应该能够使用
获得您的组织列表gcloud organizations list
如果你没有,那就创建一个。
您只需要一个 Gsuite 或 Cloud Identity 帐户。