Identity and Access Management (IAM) 包括细化的权限,让您可以授予或撤消个别用户对具体操作的访问权限。为了简化向用户分配权限的过程,IAM 角色将这些细化的权限组合到相关群组中。结算具有预定义角色(如 Billing Account Administrator 或 Billing Account Viewer),这些角色应该对大多数用户都适用。但是,如果这些角色不符合您的需求,您可以通过自定义角色授予更具体的一组权限。
创建自定义角色
您可以在组织中创建自定义角色,然后将其应用于组织中的任何结算帐号。IAM 文档中的创建和管理自定义角色一文介绍了如何配置自定义角色,包括哪些权限是必要的。
创建自定义角色后,您可以像授予标准的预定义角色一样向用户授予自定义角色。了解如何更新结算权限。
自定义角色示例
想象一下,如果您想让某人能够修改费用管理功能,例如预算提醒和帐单导出。相关权限为:
billing.budgets.create
billing.budgets.update
billing.accounts.updateUsageExportSpec
要通过预定义角色应用这些权限,您需要授予结算帐号管理员角色。但是,该角色还包括删除资源关联、退订和关闭结算帐号的权限。如果您不希望用户拥有这些权限,则可以创建仅包含上述三项权限的自定义角色,然后将其命名为“Cost Management Administrator”。然后,您就可以将该自定义角色与 Billing Account Viewer 角色一起应用于应该具有广泛的费用管理权限但无法修改其他帐号属性的任何用户。
权限关联和继承
您可以授予结算帐号级或项目级结算权限。大多数结算权限属于结算帐号,因此包含这些权限的角色应与结算帐号相关联。其他结算权限属于项目,需要与项目相关联,而不是结算帐号。
例如,如需将项目与结算帐号关联,您需要获得该结算帐号的 billing.resourceAssociations.create
权限以及项目的 resourcemanager.projects.createBillingAssignment
权限。这是因为项目所有者控制访问的操作需要项目权限,而结算帐号管理员控制访问的操作需要结算帐号权限。当两种操作均涉及时,就需要两种权限。
就像其他 IAM 权限一样,所有结算权限都是从更高级别的结算层次结构继承。例如,组织中具有 billing.accounts.close
权限的角色的用户可以关闭该组织内的任何结算帐号。但是,某些权限仅适用于更高级别。例如,如果将 billing.accounts.list
权限应用于个别结算帐号,则该权限无法执行任何操作,但组织中具有 billing.accounts.list
权限的角色的用户可以列出该组织内的所有结算帐号。
结算活动
下表介绍了常见的结算活动、执行这些活动所需的权限以及这些权限适用的资源。
帐号管理
操作 | 权限 | 资源 |
---|---|---|
获取基本帐号信息(例如帐号名称、货币、未结/已结) | billing.accounts.get |
结算帐号 |
从免费试用升级 | billing.accounts.update |
结算帐号 |
重命名帐号 | billing.accounts.update |
结算帐号 |
更改采购订单编号 | billing.accounts.update |
结算帐号 |
关闭帐号 | billing.accounts.close |
结算帐号 |
重新打开已关闭的帐号 | billing.accounts.reopen |
结算帐号 |
结算帐号层次结构
操作 | 权限 | 资源 |
---|---|---|
列出组织中的帐号 | billing.accounts.list |
组织 |
在组织中创建帐号 | billing.accounts.create |
组织 |
将帐号移入组织 | billing.accounts.create |
组织 |
billing.accounts.move |
结算帐号 | |
在组织之间移动帐号 | billing.accounts.removeFromOrganization |
旧组织 |
billing.accounts.create |
新组织 | |
billing.accounts.move |
结算帐号 |
付款信息
付款资料包括客户名称、地址和付款方式。
操作 | 权限 | 资源 |
---|---|---|
查看付款资料 | billing.accounts.getPaymentInfo |
结算帐号 |
更新付款资料 | billing.accounts.updatePaymentInfo |
结算帐号 |
仅查看已产生使用量的 SKU 的价格 | billing.accounts.getPricing |
结算帐号 |
查看结算帐号的每个 SKU 的定制合同价格 | billing.accounts.getPricing |
结算帐号 |
查看结算帐号的费用和使用情况* | billing.accounts.getSpendingInformation |
结算帐号 |
查看项目的费用和使用情况* | billing.resourceCosts.get |
项目 |
resourcemanager.projects.get |
项目 |
资源关联
在结算帐号之间移动项目需要具有将其从原结算帐号中移除的权限,并将其与新帐号相关联。
操作 | 权限 | 资源 |
---|---|---|
查看项目关联 | billing.resourceAssociations.list |
结算帐号 |
resourcemanager.projects.get |
项目 | |
将项目与结算帐号相关联 | billing.resourceAssociations.create |
结算帐号 |
resourcemanager.projects.createBillingAssignment |
项目 | |
从结算帐号中移除项目 | billing.resourceAssociations.delete |
结算帐号 |
resourcemanager.projects.deleteBillingAssignment |
项目 |
预算提醒
操作 | 权限 | 资源 |
---|---|---|
查看预算提醒列表,包括本月至今的支出 | billing.budgets.get |
结算帐号 |
billing.budgets.list |
结算帐号 | |
更新预算提醒 | billing.budgets.update |
结算帐号 |
创建预算提醒 | billing.budgets.create |
结算帐号 |
赠金和促销
操作 | 权限 | 资源 |
---|---|---|
查看赠金列表,包括原有金额和余额 | billing.credits.list |
结算帐号 |
兑换促销代码 | billing.accounts.redeemPromotion |
结算帐号 |
billing.accounts.update |
结算帐号 |
政策
政策定义了哪些用户有权访问结算帐号中的哪些资源。要了解如何创建或修改自定义角色,请参阅上面的创建自定义角色部分。
操作 | 权限 | 资源 |
---|---|---|
查看帐号中的角色,包括关联的用户名 | billing.accounts.getIamPolicy |
结算帐号 |
向帐号中的用户授予角色 | billing.accounts.setIamPolicy |
结算帐号 |
导出规范
导出规范定义要将所有与用量相关的数据副本发送到哪个位置,还可能包含 BigQuery 数据集的名称。
操作 | 权限 | 资源 |
---|---|---|
查看当前导出规范(要将使用情况数据导出到的 Cloud Storage 存储分区或 BigQuery 数据集) | billing.accounts.getUsageExportSpec |
结算帐号 |
修改导出规范 | billing.accounts.updateUsageExportSpec |
结算帐号 |
相关主题
- 结算访问权限控制概览
- Cloud Billing API 访问权限控制
- Identity and Access Management 文档中的授予、更改和撤消访问权限