你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

查看和管理 Azure 预留项的权限

本文介绍预留权限的工作原理,以及用户如何在 Azure 门户和 Azure PowerShell 中查看和管理 Azure 预留。

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

默认情况下谁可以管理预留

默认情况下,以下用户可以查看和管理预留:

  • 预留订单中将添加购买预留的人员和用于购买预留的计费订阅的帐户管理员。
  • 企业协议和 Microsoft 客户协议计费管理员。
  • 拥有可管理所有 Azure 订阅和管理组的提升访问权限的用户
  • 负责 Microsoft Entra 租户(目录)中的预留项的预留管理员
  • 预留读取者对其 Microsoft Entra 租户(目录)中的预留项拥有只读访问权限

预留项的生命周期独立于 Azure 订阅,因此预留项不是 Azure 订阅下的资源。 相反,它是一个租户级资源,具有自己的 Azure RBAC 权限,与订阅无关。 在购买后,预留项不会从订阅继承权限。

查看和管理预留

如果你是计费管理员,请在 Azure 门户中使用以下步骤来查看和管理所有预留和预留交易。

  1. 登录到 Azure 门户,导航到成本管理 + 计费
    • 如果你是 EA 管理员,请在左侧菜单中选择“计费范围”,然后在计费范围列表中选择一个范围。
    • 如果你是 Microsoft 客户协议计费配置文件所有者,请在左侧菜单中选择“计费配置文件”。 在计费配置文件列表中选择一个计费配置文件。
  2. 在左侧菜单中,选择“产品 + 服务”>“预留项” 。
  3. 此时将显示 EA 注册或计费配置文件的完整预留项列表。
  4. 计费管理员可以通过选择一个或多个预留项,选择“授予访问权限”,并在出现的窗口中选择“授予访问权限”,以取得预留项的所有权。 对于 Microsoft 客户协议,用户应位于与预留相同的 Microsoft Entra 租户(目录)中。

添加计费管理员

在 Azure 门户中,将用户作为计费管理员添加到企业协议或 Microsoft 客户协议。

  • 对于企业协议,请添加具有“企业管理员”角色的用户,以便查看和管理适用于企业协议的所有预留订单。 企业管理员可以在“成本管理 + 计费”中查看和管理预留项。
    • 具有“企业管理员(只读)”角色的用户只能从“成本管理 + 计费”中查看预留项。
    • 除非使用访问控制 (IAM) 将部门管理员和帐户所有者显式添加到预留中,否则他们无法查看相关预留。 有关详细信息,请参阅管理 Azure 企业角色
  • 在 Microsoft 客户协议下,具有计费配置文件所有者角色或计费配置文件参与者角色的用户可以管理使用计费配置文件完成的所有预留购买。 计费配置文件阅读者和发票管理员可以通过计费配置文件查看付费的所有预留。 但是,他们不能对预留进行更改。 有关详细信息,请参阅计费对象信息角色和任务

使用 Azure RBAC 访问权限查看预留项

如果你购买了预留或已添加到预留,请在 Azure 门户中使用以下步骤来查看和管理预留。

  1. 登录 Azure 门户
  2. 选择“所有服务”>“预留”以列出自己有权访问的预留 。

通过提升的访问权限管理订阅和管理组

你可以提升用户的访问权限以管理所有 Azure 订阅和管理组

拥有提升的访问权限后:

  1. 导航到“所有服务”>“预留项”以查看租户中的所有预留项 。
  2. 若要对预留项进行修改,请使用访问控制 (IAM) 将自己添加为预留订单的所有者。

授予对单个预留的访问权限

对预留拥有所有者访问权限的用户和计费管理员可以在 Azure 门户中委派单个预留订单的访问管理。

若要允许其他人管理预留,可通过两种方式实现:

  • 通过向单个预留订单的资源范围内的用户分配“所有者”角色,委托该预留订单的访问权限管理。 如果希望提供有限的访问权限,请选择其他角色。
    有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色

  • 将用户作为计费管理员添加到企业协议或 Microsoft 客户协议:

    • 对于企业协议,请添加具有“企业管理员”角色的用户,以便查看和管理适用于企业协议的所有预留订单。 具有“企业管理员(只读)”角色的用户可以查看预留。 除非使用访问控制 (IAM) 将部门管理员和帐户所有者显式添加到预留中,否则他们无法查看相关预留。 有关详细信息,请参阅管理 Azure 企业角色

      企业管理员可以获得预留订单的所有权,并可以使用访问控制 (IAM) 将其他用户添加到预留。

    • 在 Microsoft 客户协议下,具有计费配置文件所有者角色或计费配置文件参与者角色的用户可以管理使用计费配置文件完成的所有预留购买。 计费配置文件阅读者和发票管理员可以通过计费配置文件查看付费的所有预留。 但是,他们不能对预留进行更改。 有关详细信息,请参阅计费对象信息角色和任务

使用 PowerShell 授予访问权限

拥有预留订单的所有者访问权限的用户、拥有提升的访问权限的用户以及用户访问管理员可以委派他们有权访问的所有预留订单的访问管理。

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

分配所有预留的所有者角色

使用以下 Azure PowerShell 脚本,向用户授予 Microsoft Entra 租户(目录)中所有预留订单的 Azure RBAC 访问权限。


Import-Module Az.Accounts
Import-Module Az.Resources
 
Connect-AzAccount -Tenant <TenantId>
 
$response = Invoke-AzRestMethod -Path /providers/Microsoft.Capacity/reservations?api-version=2020-06-01 -Method GET
 
$responseJSON = $response.Content | ConvertFrom-JSON
 
$reservationObjects = $responseJSON.value
 
foreach ($reservation in $reservationObjects)
{
  $reservationOrderId = $reservation.id.substring(0, 84)
  Write-Host "Assigning Owner role assignment to "$reservationOrderId
  New-AzRoleAssignment -Scope $reservationOrderId -ObjectId <ObjectId> -RoleDefinitionName Owner
}

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

参数

-ObjectId 用户、组或服务主体的 Microsoft Entra ObjectId。

  • 键入:String
  • 别名:Id、PrincipalId
  • 位置:已命名
  • 默认值: 无
  • 接受管道输入:True
  • 接受通配符:False

-TenantId 租户唯一标识符。

  • 键入:String
  • 位置:5
  • 默认值: 无
  • 接受管道输入:False
  • 接受通配符:False

租户级访问

在你向用户或组授予租户级别的预留管理员和预留读取者角色之前,你需要先获得用户访问管理员权限。 若要获得租户级别的用户访问管理员权限,请遵循提升访问权限步骤。

添加租户级别的预留管理员角色或预留读取者角色

可从 Azure 门户分配这些角色。

  1. 登录 Azure 门户并导航到“预留”。
  2. 选择你有权访问的预留。
  3. 在页面顶部,选择“角色分配”。
  4. 选择“角色”选项卡。
  5. 若要进行修改,请使用访问控制将用户添加为“预留管理员”或“预留读取者”。

使用 Azure PowerShell 脚本添加租户级别的预留管理员角色

使用以下 Azure PowerShell 脚本通过 PowerShell 添加租户级别的预留管理员角色。

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.Capacity" -PrincipalId <ObjectId> -RoleDefinitionName "Reservations Administrator"

参数

-ObjectId 用户、组或服务主体的 Microsoft Entra ObjectId。

  • 键入:String
  • 别名:Id、PrincipalId
  • 位置:已命名
  • 默认值: 无
  • 接受管道输入:True
  • 接受通配符:False

-TenantId 租户唯一标识符。

  • 键入:String
  • 位置:5
  • 默认值: 无
  • 接受管道输入:False
  • 接受通配符:False

使用 Azure PowerShell 脚本分配租户级别的预留读取者角色

使用以下 Azure PowerShell 脚本通过 PowerShell 分配租户级别的预留读者角色。


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

Connect-AzAccount -Tenant <TenantId>

New-AzRoleAssignment -Scope "/providers/Microsoft.Capacity" -PrincipalId <ObjectId> -RoleDefinitionName "Reservations Reader"

参数

-ObjectId 用户、组或服务主体的 Microsoft Entra ObjectId。

  • 键入:String
  • 别名:Id、PrincipalId
  • 位置:已命名
  • 默认值: 无
  • 接受管道输入:True
  • 接受通配符:False

-TenantId 租户唯一标识符。

  • 键入:String
  • 位置:5
  • 默认值: 无
  • 接受管道输入:False
  • 接受通配符:False

后续步骤