查看和管理储蓄计划的权限

本文介绍了保存计划权限的工作原理,以及用户可以如何在 Azure 门户中查看和管理储蓄计划。

默认情况下谁可以管理储蓄计划

有两种不同的授权方法可以控制用户查看、管理和委托对节省计划的权限。 它们是计费管理员角色和节约计划的基于角色的访问控制(RBAC)角色。

计费管理员角色

可以使用内置的计费管理员角色查看、管理和分配节省计划的权限。 若要了解有关 Microsoft 客户协议和企业协议的计费角色,请分别参阅 了解 Azure 中的 Microsoft 客户协议管理角色管理 Azure 企业协议角色

节省计划操作所需的计费管理员角色

  • 查看节省计划:
    • Microsoft 客户协议:具有计费资料读取权限或更高级权限的用户
    • Enterprise Agreement:拥有企业管理员(仅限读取)或更高级别权限的用户
    • Microsoft 合作伙伴协议:不支持
  • 管理储蓄计划(通过委托完整计费配置文件/注册的权限来实现):
    • Microsoft 客户协议:计费配置文件贡献者或更高级别的用户
    • Enterprise Agreement:拥有Enterprise Agreement管理员或更高权限的用户
    • Microsoft 合作伙伴协议:不支持
  • 授权储蓄计划权限:
    • Microsoft 客户协议:具有计费配置文件参与者或更高权限的用户
    • 企业协议 (Enterprise Agreement):具有企业协议购买权限或以上的用户
    • Microsoft 合作伙伴协议:不支持

以计费管理员身份查看和管理节省计划

如果你是计费角色用户,请按照以下步骤在 Azure 门户中查看和管理所有储蓄计划和节省计划交易。

  1. 登录到 Azure 门户并转到 Cost Management + Billing
    • 如果位于Enterprise Agreement帐户下,请在左侧菜单中选择计费范围。 然后在计费范围列表中选择一个范围。
    • 如果位于Microsoft 客户协议帐户下,请在左侧菜单中选择计费配置文件。 在计费配置文件列表中选择一个。
  2. 在左侧菜单中,选择“产品 + 服务”“节省计划”>。 企业协议注册或 Microsoft 客户协议计费档案的节省计划完整列表显示出来。
  3. 计费角色用户可以通过 Savings Plan Order - Elevate REST API 获得储蓄计划的所有权,以便为自己分配 Azure RBAC 角色。

添加计费管理员

将用户作为帐单管理员添加到 Azure 门户中的企业协议或 Microsoft 客户协议中。

  • Enterprise Agreement:添加具有企业管理员角色的用户以查看和管理应用于Enterprise Agreement的所有节省计划订单。 企业管理员可以在“成本管理 + 计费”中查看和管理节省计划
    • 具有企业管理员(只读)角色的用户只能从成本管理 + 计费中查看节省计划。
    • 部门管理员和账户所有者无法查看节省计划,除非通过 访问控制 (IAM)显式将它们添加到计划中。 有关详细信息,请参阅 Manage Azure Enterprise 角色
  • Microsoft 客户协议:具有计费配置文件所有者角色或计费配置文件协作者角色的用户可以管理使用计费配置文件进行的所有节省计划购买。
    • 计费档案阅读者和发票管理员可以查看所有通过该计费档案付费的节省计划。 但是,他们不能对节省计划进行更改。 有关详细信息,请参阅计费对象信息角色和任务

节约计划 RBAC 角色

节省计划生命周期独立于Azure订阅。 在购买后,储蓄计划不会从订阅继承权限。 节省计划是租户级资源,具有自己的 Azure RBAC 权限。

概述

节省计划专用的四种 RBAC 角色有:

  • 储蓄计划管理员:允许管理租户中的一个或多个储蓄计划,并向其他用户委派 RBAC 角色
  • 储蓄计划购买者:允许通过指定的订阅购买储蓄计划。
  • 节省计划参与者:允许管理租户中的一个或多个节省计划,但不允许将 RBAC 角色委托给其他用户。
  • 节省计划查看器:允许对租户内的一个或多个节省计划进行只读访问。

这些角色可以限定作用域到特定的资源实体(例如订阅或储蓄计划)或 Microsoft Entra 租户(目录)。 若要详细了解 Azure RBAC,请参阅 Azure什么是基于角色的访问控制(Azure RBAC)?

节省计划操作所需的 RBAC 角色

  • 查看节省计划:
    • 租户范围:具有节省计划查看权限或更高的用户。
    • 节省计划范围:内置读取器或更高版本。
  • 管理节省计划:
    • 租户范围:具有节省计划参与者或更高权限的用户。
    • 节省计划范围:内置参与者或所有者角色,或节省计划参与者或更高级别。
  • 授权储蓄计划权限:
    • Tenant scope:需要用户访问管理员权限,才能为租户中的所有节省计划授予 RBAC 角色。 若要获取这些权限,请按照 Elevate access 步骤作。
    • 节省计划范围:节省计划管理员或用户访问管理员。

此外,使用订阅购买节省计划时拥有订阅所有者角色的用户还可以查看、管理和委托购买的节省计划的权限。

使用 RBAC access查看节省计划

如果您拥有储蓄计划特定的 RBAC 角色(例如,储蓄计划管理员、购买者、贡献者或阅读者),已购买的储蓄计划,或者您被添加为储蓄计划的所有者,请按照以下步骤在 Azure 门户中查看和管理这些储蓄计划。

  1. 登录到 Azure 门户
  2. 选择主页>储蓄计划来列出您有权限访问的储蓄计划。

将 RBAC 角色添加到用户和组

要了解如何委托节省计划 RBAC 角色,请参阅委托节省计划 RBAC 角色

企业管理员可以拥有节省计划订单的所有权。 他们可以使用某种方式将其他用户添加到节省计划中。 Access control (IAM)

使用 PowerShell 授予访问权限

具有储蓄计划订单所有者访问权限的用户、具有提升访问权限的用户以及用户访问管理员可以委托他们所能访问的所有储蓄计划订单的访问管理。

Azure门户中未显示使用 PowerShell 授予的访问权限。 但是,你可以在以下部分使用 get-AzRoleAssignment 命令来查看分配的角色。

为所有省钱计划指派所有者角色

若要让用户Azure RBAC 访问其Microsoft Entra租户(目录)中的所有保存计划订单,请使用以下Azure PowerShell脚本:

Import-Module Az.Accounts
Import-Module Az.Resources

Connect-AzAccount -Tenant <TenantId>
$response = Invoke-AzRestMethod -Path /providers/Microsoft.BillingBenefits/savingsPlans?api-version=2022-11-01 -Method GET
$responseJSON = $response.Content | ConvertFrom-JSON
$savingsPlanObjects = $responseJSON.value

foreach ($savingsPlan in $savingsPlanObjects)
{
  $savingsPlanOrderId = $savingsPlan.id.substring(0, 84)
  Write-Host "Assigning Owner role assignment to "$savingsPlanOrderId
  New-AzRoleAssignment -Scope $savingsPlanOrderId -ObjectId <ObjectId> -RoleDefinitionName Owner
}

使用 PowerShell 脚本分配所有权角色且该脚本成功运行时,不会返回成功消息。

参数

  • ObjectId:用户、组或服务主体Microsoft Entra对象 ID

    • 类型:字符串
    • 别名:ID,PrincipalId
    • 位置:已命名
    • 默认值:
    • 接受管道输入:True
    • 接受通配符:False
  • TenantId:租户唯一标识符

    • 类型:字符串
    • 位置:5
    • 默认值:
    • 接受管道输入:False
    • 接受通配符:False

使用 Azure PowerShell 脚本在租户级别添加节省计划管理员角色

若要使用 PowerShell 在租户级别添加节省计划管理员角色,请使用以下Azure PowerShell脚本:

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan administrator"

参数

  • ObjectId:Microsoft Entra 用户、组或服务主体的对象 ID

    • 类型:字符串
    • 别名:ID,PrincipalId
    • 位置:已命名
    • 默认值:
    • 接受管道输入:True
    • 接受通配符:False
  • TenantId:租户唯一标识符

    • 类型:字符串
    • 位置:5
    • 默认值:
    • 接受管道输入:False
    • 接受通配符:False

使用Azure PowerShell脚本在租户级别分配节省计划参与者角色

若要使用 PowerShell 在租户级别分配保存计划参与者角色,请使用以下Azure PowerShell脚本:

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan contributor"

参数

  • ObjectId:Microsoft Entra 用户、组或服务主体的对象 ID

    • 类型:字符串
    • 别名:ID,PrincipalId
    • 位置:已命名
    • 默认值:
    • 接受管道输入:True
    • 接受通配符:False
  • TenantId:租户唯一标识符

    • 类型:字符串
    • 位置:5
    • 默认值:
    • 接受管道输入:False
    • 接受通配符:False

使用 Azure PowerShell 脚本在租户级别分配储蓄计划读者角色

若要使用 PowerShell 在租户级别分配保存计划读取者角色,请使用以下Azure PowerShell脚本:

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan reader"

参数

  • ObjectId:Microsoft Entra 用户、组或服务主体的对象 ID

    • 类型:字符串
    • 别名:ID,PrincipalId
    • 位置:已命名
    • 默认值:
    • 接受管道输入:True
    • 接受通配符:False
  • TenantId:租户唯一标识符

    • 类型:字符串
    • 位置:5
    • 默认值:
    • 接受管道输入:False
    • 接受通配符:False

后续步骤