Cloud Billing 访问权限控制和权限管理

本主题介绍了 Cloud Billing 账号的角色和访问权限。

Cloud Billing 账号在 Google Cloud 中设置,用于定义一组给定 Google Cloud 资源和 Google Maps Platform API 的付款方。Cloud Billing 账号与 Google 付款资料相关联。您的 Google 付款资料包含支付费用所用的付款方式。

Cloud Billing 和 Google 付款的访问权限在两个不同的系统中进行配置,具体取决于您想要提供的访问权限类型。

  • 借助 Cloud Billing,您可以通过对特定资源设置 Identity and Access Management (IAM) 政策,控制哪些用户拥有对相应资源的管理权限和费用查看权限。
  • 在 Google 付款中,您可以将用户添加到您管理的任何 Google 付款公司资料中,并根据用户需要执行的操作向用户授予不同级别的访问权限。您还可以配置用户电子邮件接收设置,以接收结算和付款电子邮件。
Cloud Billing 权限 Google 付款设置和权限
Cloud Billing 账号的访问权限使用 IAM 角色管理。结算账号权限可以配置为允许用户执行以下操作:
  • 开启、关闭和修改 Cloud Billing 账号。
  • 查看报告和费用数据。
  • 查看文档(例如账单和对账单)。
  • 分析承诺使用折扣 (CUD) 并购买 CUD。
  • 启用和管理结算数据导出功能。
  • 配置预算和提醒。
  • 按项目管理结算。
  • 管理结算的用户权限。
  • 与结算支持团队联系。
Google 付款资料的访问权限在 Google 付款设置中管理。您可以配置 Google 付款权限来允许用户执行以下操作:
  • 添加、修改和移除付款方式。
  • 更新付款资料信息,包括邮寄地址。
  • 管理付款用户,包括联系人详细信息、电子邮件接收设置和用户权限。

如果您要在 Google Cloud 控制台的“结算”页面中管理与付款相关的任务,用户还需要具有对 Cloud Billing 账号的 Billing Account Viewer 角色。

Cloud Billing 访问权限

要授予或限制对 Cloud Billing 的访问权限,您可以在组织级层、Cloud Billing 账号级层和/或项目级层设置 IAM 政策。Google Cloud 资源会继承其父级节点的 IAM 政策,这意味着您可以在组织级层设置政策,以将其应用到组织内的所有 Cloud Billing 账号、项目和资源。

您可以通过在 Cloud Billing 账号级层或项目级层设置访问权限,控制不同用户或角色在不同级层的查看权限。

如需授权某用户查看某个 Cloud Billing 账号下所有项目的费用,请为该用户授予相应 Cloud Billing 账号的费用查看权限 (billing.accounts.getSpendingInformation)。如需授权某用户查看特定项目的费用,请为该用户授予对应项目的查看权限 (billing.resourceCosts.get)。

IAM 中的 Cloud Billing 角色概览

您并非直接向用户授予权限,而是向其授予角色(角色本身会具有一项或多项权限)。

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

以下预定义的 Cloud Billing IAM 角色旨在让您使用访问权限控制措施来实现职责分离:

角色 用途 级层 使用场景
Billing Account Creator
(roles/billing.creator)
创建新的自助(在线)结算账号。 组织 可以使用此角色进行初始结算设置,或支持创建其他结算账号。
用户必须具有此角色,才能使用其企业身份信用卡注册 Google Cloud。
提示:请尽量减少拥有此角色的用户数,以防止您组织中未得到跟踪的云支出激增。
Billing Account Administrator
(roles/billing.admin)
管理结算账号(但不创建账号)。 组织或结算账号。 这是结算账号的所有者角色。可以使用此角色在结算账号上管理付款方式、配置结算导出、查看费用信息、关联和取消关联项目以及管理其他用户角色。 默认情况下,Cloud Billing 账号的创建者就是该 Cloud Billing 账号的 Billing Account Administrator
Billing Account Costs Manager
(roles/billing.costsManager)
管理预算,以及查看和导出结算账号的费用信息(但不包括价格信息)。 组织或结算账号。 创建、修改和删除预算,查看结算账号费用信息和交易,以及管理将结算数据导出到 BigQuery。无权导出价格数据或在“价格”页面中查看自定义价格。此外,不允许关联或取消关联项目或以其他方式管理结算账号的属性。
Billing Account Viewer
(roles/billing.viewer)
查看结算账号费用信息和交易。 组织或结算账号。 结算账号查看者访问权限通常会授予财务团队,此角色提供对支出信息的访问权限,但不授予关联/取消关联项目或以其他方式管理结算账号属性的权限。
Billing Account User
(roles/billing.user)
将项目与结算账号相关联。 组织或结算账号。 此角色的权限非常有限,因此您可以广泛授予此角色。当与 Project Creator 一起授予时,这两个角色允许用户创建与授予了 Billing Account User 角色的结算账户关联的新项目。或者,如果与 Project Billing Manager 角色一起授予,则这两个角色使用户能够关联和取消授予了 Billing Account User 角色的结算账号中的项目。
Project Billing Manager
(roles/billing.projectManager)
将项目与结算账号相关联/解除项目与结算账号的关联。 组织、文件夹或项目。 与 Billing Account User 角色一起授予时,Project Billing Manager 角色允许用户将项目与结算账号相关联,但不会授予对资源的任何权限。Project Owner 可以使用此角色让他人来管理项目的结算,而不授予其资源访问权限。

下表列出了预定义的 IAM 结算角色(包括各个角色中捆绑的权限)的详细信息。

Role Permissions

(roles/billing.admin)

Provides access to see and manage all aspects of billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.close

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

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.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.*

  • billing.resourceAssociations.create
  • billing.resourceAssociations.delete
  • billing.resourceAssociations.list

billing.subscriptions.*

  • billing.subscriptions.create
  • billing.subscriptions.get
  • billing.subscriptions.list
  • billing.subscriptions.update

cloudasset.assets.searchAllResources

cloudnotifications.activities.list

cloudsupport.properties.get

cloudsupport.techCases.*

  • cloudsupport.techCases.create
  • cloudsupport.techCases.escalate
  • cloudsupport.techCases.get
  • cloudsupport.techCases.list
  • cloudsupport.techCases.update

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

compute.commitments.*

  • compute.commitments.create
  • compute.commitments.get
  • compute.commitments.list
  • compute.commitments.update
  • compute.commitments.updateReservations

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

logging.logEntries.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.privateLogEntries.list

recommender.cloudsqlIdleInstanceRecommendations.get

recommender.cloudsqlIdleInstanceRecommendations.list

recommender.cloudsqlOverprovisionedInstanceRecommendations.get

recommender.cloudsqlOverprovisionedInstanceRecommendations.list

recommender.commitmentUtilizationInsights.*

  • recommender.commitmentUtilizationInsights.get
  • recommender.commitmentUtilizationInsights.list
  • recommender.commitmentUtilizationInsights.update

recommender.computeAddressIdleResourceRecommendations.get

recommender.computeAddressIdleResourceRecommendations.list

recommender.computeDiskIdleResourceRecommendations.get

recommender.computeDiskIdleResourceRecommendations.list

recommender.computeImageIdleResourceRecommendations.get

recommender.computeImageIdleResourceRecommendations.list

recommender.computeInstanceGroupManagerMachineTypeRecommendations.get

recommender.computeInstanceGroupManagerMachineTypeRecommendations.list

recommender.computeInstanceIdleResourceRecommendations.get

recommender.computeInstanceIdleResourceRecommendations.list

recommender.computeInstanceMachineTypeRecommendations.get

recommender.computeInstanceMachineTypeRecommendations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.resourcemanagerProjectUtilizationRecommendations.get

recommender.resourcemanagerProjectUtilizationRecommendations.list

recommender.spendBasedCommitmentInsights.*

  • recommender.spendBasedCommitmentInsights.get
  • recommender.spendBasedCommitmentInsights.list
  • recommender.spendBasedCommitmentInsights.update

recommender.spendBasedCommitmentRecommendations.*

  • recommender.spendBasedCommitmentRecommendations.get
  • recommender.spendBasedCommitmentRecommendations.list
  • recommender.spendBasedCommitmentRecommendations.update

recommender.spendBasedCommitmentRecommenderConfig.*

  • recommender.spendBasedCommitmentRecommenderConfig.get
  • recommender.spendBasedCommitmentRecommenderConfig.update

recommender.usageCommitmentRecommendations.*

  • recommender.usageCommitmentRecommendations.get
  • recommender.usageCommitmentRecommendations.list
  • recommender.usageCommitmentRecommendations.update

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

resourcemanager.projects.get

resourcemanager.projects.list

(roles/billing.costsManager)

Manage budgets for a billing account, and view, analyze, and export cost information of a billing account.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.accounts.updateUsageExportSpec

billing.budgets.*

  • billing.budgets.create
  • billing.budgets.delete
  • billing.budgets.get
  • billing.budgets.list
  • billing.budgets.update

billing.resourceAssociations.list

recommender.costInsights.*

  • recommender.costInsights.get
  • recommender.costInsights.list
  • recommender.costInsights.update

(roles/billing.creator)

Provides access to create billing accounts.

Lowest-level resources where you can grant this role:

  • Organization

billing.accounts.create

resourcemanager.organizations.get

(roles/billing.projectManager)

When granted in conjunction with the Billing Account User role, provides access to assign a project's billing account or disable its billing.

Lowest-level resources where you can grant this role:

  • Project

resourcemanager.projects.createBillingAssignment

resourcemanager.projects.deleteBillingAssignment

(roles/billing.user)

When granted in conjunction with the Project Owner role or Project Billing Manager role, provides access to associate projects with billing accounts.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

(roles/billing.viewer)

View billing account cost and pricing information, transactions, and billing and commitment recommendations.

Lowest-level resources where you can grant this role:

  • Billing Account

billing.accounts.get

billing.accounts.getCarbonInformation

billing.accounts.getIamPolicy

billing.accounts.getPaymentInfo

billing.accounts.getPricing

billing.accounts.getSpendingInformation

billing.accounts.getUsageExportSpec

billing.accounts.list

billing.billingAccountPrice.get

billing.billingAccountPrices.list

billing.billingAccountServices.*

  • billing.billingAccountServices.get
  • billing.billingAccountServices.list

billing.billingAccountSkuGroupSkus.*

  • billing.billingAccountSkuGroupSkus.get
  • billing.billingAccountSkuGroupSkus.list

billing.billingAccountSkuGroups.*

  • billing.billingAccountSkuGroups.get
  • billing.billingAccountSkuGroups.list

billing.billingAccountSkus.*

  • billing.billingAccountSkus.get
  • billing.billingAccountSkus.list

billing.budgets.get

billing.budgets.list

billing.credits.list

billing.finOpsBenchmarkInformation.get

billing.finOpsHealthInformation.get

billing.resourceAssociations.list

billing.subscriptions.get

billing.subscriptions.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

dataprocessing.datasources.get

dataprocessing.datasources.list

dataprocessing.groupcontrols.get

dataprocessing.groupcontrols.list

recommender.commitmentUtilizationInsights.get

recommender.commitmentUtilizationInsights.list

recommender.costInsights.get

recommender.costInsights.list

recommender.costRecommendations.*

  • recommender.costRecommendations.listAll
  • recommender.costRecommendations.summarizeAll

recommender.spendBasedCommitmentInsights.get

recommender.spendBasedCommitmentInsights.list

recommender.spendBasedCommitmentRecommendations.get

recommender.spendBasedCommitmentRecommendations.list

recommender.spendBasedCommitmentRecommenderConfig.get

recommender.usageCommitmentRecommendations.get

recommender.usageCommitmentRecommendations.list

组织、项目、Cloud Billing 账号和 Google 付款资料之间的 IAM 关系

组织、Cloud Billing 账号和项目之间的交互受两种关系类型制约:所有权和付款关联。

  • 所有权指的是 IAM 权限的继承。
  • 付款关联决定着哪个 Cloud Billing 账号为给定项目付款。

下图显示了示例组织的所有权和付款关联之间的关系。

显示了项目与 Cloud Billing 账号和 Google 付款资料之间的关系。一侧显示了您的 Google Cloud 级资源(Cloud Billing 账号和关联项目),另一侧显示了您的 Google 级资源(Google 付款资料),两侧由垂直虚线分隔。您的项目由您的 Cloud Billing 账号支付,该账号已与 Google 付款资料关联。

在上图中,组织拥有项目 1、2 和 3 的所有权,也就是说,它拥有这三个项目的 IAM 父权限。

Cloud Billing 账号与项目 1、2 和 3 相关联,也就是说,通过它来支付这三个项目所产生的费用。Cloud Billing 账号还可以为其他组织中的项目付费,但它会从其父级组织继承 IAM 权限。

Cloud Billing 账号还与 Google 付款资料(用于存储姓名、地址、付款方式等信息)相关联。 了解如何管理 Google 付款资料用户权限

注意:虽然您将 Cloud Billing 账号与项目进行了关联,但就 IAM 权限而言,Cloud Billing 账号并非项目的父级,因此项目不会从其关联的 Cloud Billing 账号继承权限。

在本示例中,在组织级层被授予 IAM 结算角色的所有用户还将在 Cloud Billing 账号或项目级层具有相应角色。

Cloud Billing 访问权限控制示例

按如下所示的方式组合使用 IAM 角色,以满足不同情景的需求。

情景:偏好集中控制的中小型企业。
用户类型 Billing IAM 角色 结算活动
首席执行官 结算账号管理员 管理付款方式。
查看和批准账单。
CTO Billing Account Administrator
Project Creator
设置预算提醒。
查看支出。
创建新的可结算项目。
开发团队
情景:偏好委任权限的中小型企业。
用户类型 Billing IAM 角色 结算活动
首席执行官 结算账号管理员 管理付款方式。
委任授权。
首席财务官 结算账号管理员 设置预算提醒。
查看支出。
应付账款部门 结算账号查看者 查看和批准账单。
开发团队 Billing Account User
Project Creator
创建新的可结算项目。
情景:单独的财务规划和采购职能部门
用户类型 Billing IAM 角色 结算活动
采购或中央 IT 团队 结算账号管理员 管理付款方式。
设置预算提醒。
与开发团队沟通支出事宜。
财务规划部门 结算账号查看者 查看结算报告。
处理出口。
与首席高管沟通。
应付账款部门 结算账号查看者 批准账单。
开发团队 Billing Account User
Project Creator
创建新的可结算项目。
情景:开发机构
用户类型 Billing IAM 角色 结算活动
首席执行官 结算账号管理员 管理付款方式。
委任授权。
首席财务官 结算账号管理员 设置预算提醒。
查看支出。
批准账单。
项目负责人 Billing Account User
Project Creator
创建新的可结算项目。
项目开发团队 在现有项目中开发。
客户 Project Billing Manager 项目完成后接管项目的付款所有权。

如何更新 Cloud Billing 权限

如需了解如何查看、添加或移除 Cloud Billing 权限,请按照有关管理对 Cloud Billing 账号的访问权限的指导进行操作。

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费开始使用