本文介绍如何使用保管库启用系统分配和用户分配的托管标识,以便 Azure 备份 可以在不存储凭据的情况下对依赖的 Azure 资源进行身份验证。 保管库使用托管标识,它相当于 Microsoft Entra ID 服务主体,并授予其在目标资源上的 Azure 基于角色的访问控制(Azure RBAC)权限,例如受保护的数据源和 Azure 密钥保管库 加密密钥。
Azure 备份使用此标识在运行时获取Microsoft Entra令牌,从而免去凭据管理,并且在不收取额外费用的情况下实现安全访问。 本文还介绍了何时使用每个标识类型及其生命周期和分配的不同之处。
支持的托管标识类型
Azure 备份支持系统分配和用户分配的托管标识。 可以在同一个保管库中同时启用两种托管身份类型。
|
托管标识类型 |
注意事项 |
|
系统分配 |
- 默认情况下,在预配和启用保管库时自动创建。
- 生命周期绑定到保管库,当保管库被删除时,生命周期会随之删除。
- 每个保管库只存在一个系统分配的标识。
- 可以禁用,依赖于它的任何操作将失败,直到它被重新启用或者被具有等效角色的用户分配的身份所替代。
请注意,系统分配的标识与保管库同名。 使用“标识”选项卡中的对象 ID 进行自动化。 |
|
用户分配 |
- 与保管库分开创建和管理的独立Azure资源。
- 可以附加到多个保管库;可将多个用户分配的标识附加到单个保管库。
- 生命周期与保管库分离 - 删除保管库不会删除标识。
- 建议用于车队规模部署、标准化 RBAC 和预先配置的身份。
|
系统分配的托管标识与用户分配的托管标识之间的主要差异
下表提供了系统分配的托管标识和用户分配的托管标识的比较摘要。
|
注意事项 |
系统分配 |
用户分配 |
|
生命周期 |
绑定于保管库,并随其被删除 |
独立;在保管库更改时依然保持 |
|
Cardinality |
每个保管库一个 |
每个保管库有多个;跨保管库共享 |
|
典型用例 |
单一保管库部署,最简单的配置 |
车队部署、标准化的 RBAC、预配置的身份标识 |
|
在创建保管库时启用 |
不支持;创建保管库后启用 |
在创建备份保管库时受支持 |
先决条件
在为保管库启用托管标识之前,请查看以下先决条件:
- 检查保管库是否存在或创建保管库的权限。
- 验证您的帐户在保管库上是否具有“备份参与者”角色(或同等角色),以便管理身份和分配角色。
- 确定每个下游资源的资源组(磁盘、存储帐户、密钥保管库等),以正确确定角色分配的范围。
启用托管身份标识
可以使用 Azure 门户、Azure CLI或 PowerShell 为恢复服务保管库启用托管标识。
选择客户端:
若要使用 Azure 门户为恢复服务保管库启用托管标识,请执行以下步骤:
转到恢复服务保管库并选择设置>标识
在“ 标识 ”窗格中,对于系统分配的标识,选择 “系统分配 ”选项卡,将 “状态 ”设置为 “打开”,然后选择“ 保存”
对于用户分配的标识,请选择“ 用户分配 ”选项卡,选择“ + 添加”,选择订阅和标识,然后选择“ 添加”
若要使用 CLI 更新恢复服务保管库的托管标识,请运行以下命令:
az backup vault identity assign --resource-group <rg> --name <vault> --system-assigned
az backup vault identity assign --resource-group <rg> --name <vault> --user-assigned <uami-resource-id>
查看更多 CLI 命令。
若要使用 PowerShell 更新恢复服务保管库的托管标识,请运行以下 cmdlet:
Update-AzRecoveryServicesVault -ResourceGroupName <rg> -Name <vault> -IdentityType SystemAssigned
$vault = Get-AzRecoveryServicesVault -Name "vaultName" -ResourceGroupName "resourceGroupName"
$identity1 = Get-AzUserAssignedIdentity -ResourceGroupName "resourceGroupName" -Name "UserIdentity1"
$identity2 = Get-AzUserAssignedIdentity -ResourceGroupName "resourceGroupName" -Name "UserIdentity2"
$updatedVault = Update-AzRecoveryServicesVault -ResourceGroupName $vault.ResourceGroupName -Name $vault.Name -IdentityType UserAssigned -IdentityId $identity1.Id, $identity2.Id
$updatedVault.Identity | Format-List
查看更多 PowerShell cmdlet。
后续步骤