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

Google Cloud 提供 Cloud Identity and Access Management (IAM) 功能,可让您以更精细的方式授予对特定 Google Cloud 资源的访问权限,并防止对其他资源进行不必要的访问。Cloud IAM 允许您采用最小权限安全原则,因此您只授予对您的资源的必要访问权限。

通过 Cloud IAM,您可以设置 Cloud IAM 政策,以控制哪些人(用户)对哪些资源具有什么访问权限(角色)。Cloud IAM 政策向用户授予特定角色,从而为用户提供特定权限。

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

权限和角色

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

Cloud Billing Account API 所需的权限

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

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

Cloud Billing Budget API 所需的权限

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

API 方法 所需权限 可授予权限的 Cloud 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 Account 拥有 billing.budgets.update 权限。 Billing Admin
DeleteBudget 要删除现有预算,调用方必须对预算的 Cloud Billing Account 拥有 billing.budgets.delete 权限。 Billing Admin

Cloud Billing Catalog API 所需的权限

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

角色

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

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

下表列出了您可以为访问 Cloud Billing API 而授予的标准 Cloud 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.* logging.logEntries.list logging.logServiceIndexes.* logging.logServices.* logging.logs.list logging.privateLogEntries.* 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
组织
结算帐号

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

相关主题