Identity and Access Management (IAM) 包括细化的权限,让您可以授予或撤消个别用户对具体操作的访问权限。为了简化向用户分配权限的过程,IAM 角色将这些细化的权限组合到相关群组中。结算具有预定义角色(如 Billing Account Administrator 或 Billing Account Viewer),这些角色对大多数用户都适用。但是,如果这些角色不符合您的需求,您可以通过自定义角色授予更具体的一组权限。
创建自定义角色
您可以在组织中创建自定义角色,然后将其应用于组织中的任何结算账号。IAM 文档中的创建和管理自定义角色一文介绍了如何配置自定义角色,包括哪些权限是必要的。
创建自定义角色后,您可以像授予标准的预定义角色一样向用户授予自定义角色。了解如何更新结算权限。
自定义角色示例
假设您想让某人能够修改费用管理功能,例如预算提醒和账单导出。相关权限为:
billing.budgets.create
billing.budgets.update
billing.accounts.updateUsageExportSpec
如需通过预定义角色应用这些权限,您需要授予 Billing Account Administrator”角色。但是,该角色还包括删除资源关联、退订和关闭结算账号的权限。如果您不希望用户拥有这些权限,则可以创建仅包含三项必要权限的自定义角色,然后将其命名为“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 |
项目 |
预算和支出提醒
操作 | 权限 | 资源 |
---|---|---|
查看 Cloud Billing 账号的预算列表 | billing.budgets.get |
结算账号 |
billing.budgets.list |
结算账号 | |
更新范围限定为 Cloud Billing 账号的预算 | billing.budgets.update |
结算账号 |
为 Cloud Billing 账号创建预算 | billing.budgets.create |
结算账号 |
查看范围限定为单个项目的预算列表 | resourcemanager.projects.get |
项目 |
billing.resourceCosts.get |
项目 | |
billing.resourcebudgets.read |
项目 | |
更新范围限定为单个项目的预算 | resourcemanager.projects.get |
项目 |
billing.resourceCosts.get |
项目 | |
billing.resourcebudgets.read |
项目 | |
billing.resourcebudgets.write |
项目 | |
创建范围限定为单个项目的预算 | resourcemanager.projects.get |
项目 |
billing.resourceCosts.get |
项目 | |
billing.resourcebudgets.read |
项目 | |
billing.resourcebudgets.write |
项目 |
赠金和促销
操作 | 权限 | 资源 |
---|---|---|
查看赠金列表,包括原有金额和余额 | 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 |
结算账号 |