适用于 Cloud Billing API 的访问权限控制

Google Cloud 提供 Identity and Access Management (IAM),可实现对特定 Google Cloud 资源更细化的访问权限,并防止对其他资源的不当访问。IAM 允许您采用最小权限安全原则,因此您只需授予对您的资源的必要访问权限即可。

IAM 允许您通过设置 IAM 政策来控制谁(用户)哪些资源具有什么访问权限(角色)。 您可以使用 IAM 政策向用户授予特定角色,给予用户某些权限。

本页面介绍适用于 Cloud Billing API 的 Identity and Access Management 角色。例如,您可以使用 IAM 为 Cloud Billing 帐号授予 Admin、User 和 Project Manager 等角色。如需了解 IAM 及其功能的详细说明,请参见 Identity and Access Management 开发者指南。请特别留意授予、更改和撤消访问权限部分。

权限和角色

要让用户在 Google Cloud Console 中查看 Cloud Billing 帐号详细信息,或者使 Cloud Billing API 方法返回 Cloud Billing 帐号信息,用户或调用方必须拥有必要的权限。下表列出了每个 Cloud Billing API 所需的 IAM 权限和角色。

Cloud Billing Account API 所需的权限

下表列出了调用方在调用每个 Cloud Billing Account API 方法时必须拥有的权限:

API 方法 所需权限 可授予权限的 IAM 角色
billingAccounts.create 创建 Cloud Billing 子帐号时,调用者必须对子帐号的主 Cloud Billing 帐号拥有 billing.accounts.update 权限。 Billing Admin
billingAccounts.get 对 Cloud Billing 帐号的 billing.accounts.get 权限。 Billing Admin 或 Billing Viewer
billingAccounts.list 无。此方法会返回调用者有权访问的所有帐号。 Billing Admin、Billing Viewer、Billing User 或 Billing Project Manager
billingAccounts.getIamPolicy 对 Cloud Billing 帐号的 billing.accounts.getIamPolicy 权限。 Billing Admin 或 Billing Viewer
billingAccounts.setIamPolicy 对 Cloud Billing 帐号的 billing.accounts.setIamPolicy 权限。 Billing Admin
billingAccounts.testIamPermissions 无。此方法用于确定调用者对 Cloud Billing 帐号具有的权限。
billingAccounts.patch 对 Cloud Billing 帐号的 billing.accounts.update 权限。 Billing Admin
billingAccounts.projects.list 对 Cloud Billing 帐号的 billing.resourceAssociations.list 权限。 Billing Admin 或 Billing Viewer
projects.getBillingInfo 项目的 resourcemanager.projects.get
如需了解详情,请参阅项目的访问权限控制
Project Viewer
projects.updateBillingInfo 对 Cloud Billing 帐号的 billing.resourceAssociations.createresourcemanager.projects.createBillingAssignment 权限。 Billing Admin 或 Billing User 及 Project Billing Manager

Cloud Billing Budget API 所需的权限

下表概括了调用每个 Cloud Billing Budget API 方法所需的权限,还包括可自动授予这些权限的标准 IAM Billing 角色。

API 方法 所需权限 可授予权限的 IAM 角色
GetBudget 要获取预算的详细信息,调用方必须对该预算的 Cloud Billing 帐号拥有 billing.budgets.get 权限。 Billing Admin 或 Billing Viewer
ListBudgets 要返回应用到 Cloud Billing 帐号的预算列表,调用者必须对 Cloud Billing 帐号拥有 billing.budgets.list 权限。 Billing Admin 或 Billing Viewer
CreateBudget 要创建新预算,调用方必须对该预算的 Cloud Billing 帐号拥有 billing.budgets.create 权限。 Billing Admin
UpdateBudget 要更新现有预算,调用方必须对预算的 Cloud Billing 帐号拥有 billing.budgets.update 权限。 Billing Admin
DeleteBudget 要删除现有预算,调用方必须对预算的 Cloud Billing 帐号拥有 billing.budgets.delete 权限。 Billing Admin

Cloud Billing Catalog API 所需的权限

使用 Cloud Billing Catalog API(服务列表和 SKU 列表)时不需要授权,因为调用返回的所有数据都是公开的。

角色

您不能直接授予用户权限;不过,您可以为他们授予角色(角色本身会具有一项或多项权限)。

您可以针对同一项资源授予一个或多个角色。

下表列出了您可以为访问 Cloud Billing API 而授予的标准 IAM Billing 角色、角色的作用说明以及该角色提供的权限。

角色 名称 说明 权限 最低资源要求
roles/billing.admin Billing Account Administrator 提供查看和管理结算帐号所有方面的权限。
  • billing.accounts.close
  • billing.accounts.get
  • billing.accounts.getIamPolicy
  • billing.accounts.getPaymentInfo
  • billing.accounts.getSpendingInformation
  • billing.accounts.getUsageExportSpec
  • billing.accounts.list
  • billing.accounts.move
  • billing.accounts.redeemPromotion
  • billing.accounts.removeFromOrganization
  • billing.accounts.reopen
  • billing.accounts.setIamPolicy
  • billing.accounts.update
  • billing.accounts.updatePaymentInfo
  • billing.accounts.updateUsageExportSpec
  • billing.budgets.*
  • billing.credits.*
  • billing.resourceAssociations.*
  • billing.subscriptions.*
  • cloudnotifications.*
  • consumerprocurement.accounts.*
  • consumerprocurement.orders.*
  • dataprocessing.groupcontrols.list
  • logging.logEntries.list
  • logging.logServiceIndexes.*
  • logging.logServices.*
  • logging.logs.list
  • logging.privateLogEntries.*
  • recommender.commitmentUtilizationInsights.*
  • recommender.usageCommitmentRecommendations.*
  • resourcemanager.projects.createBillingAssignment
  • resourcemanager.projects.deleteBillingAssignment
结算帐号
roles/billing.creator Billing Account Creator 提供创建结算帐号的权限。
  • billing.accounts.create
  • resourcemanager.organizations.get
组织
roles/billing.projectManager Project Billing Manager 提供为项目分配结算帐号或停用项目结算功能的权限。
  • resourcemanager.projects.createBillingAssignment
  • resourcemanager.projects.deleteBillingAssignment
项目
roles/billing.user Billing Account User 提供将项目与结算帐号相关联的权限。
  • billing.accounts.get
  • billing.accounts.getIamPolicy
  • billing.accounts.list
  • billing.accounts.redeemPromotion
  • billing.credits.*
  • billing.resourceAssociations.create
结算帐号
roles/billing.viewer Billing Account Viewer 查看结算帐号费用信息和交易。
  • billing.accounts.get
  • billing.accounts.getIamPolicy
  • billing.accounts.getPaymentInfo
  • billing.accounts.getSpendingInformation
  • billing.accounts.getUsageExportSpec
  • billing.accounts.list
  • billing.budgets.get
  • billing.budgets.list
  • billing.credits.*
  • billing.resourceAssociations.list
  • billing.subscriptions.get
  • billing.subscriptions.list
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • dataprocessing.groupcontrols.list
  • recommender.commitmentUtilizationInsights.get
  • recommender.commitmentUtilizationInsights.list
  • recommender.usageCommitmentRecommendations.get
  • recommender.usageCommitmentRecommendations.list
结算帐号

请注意,roles/billing.projectManagerroles/billing.admin 角色还包括对其他 Google Cloud 服务的权限。