通过


使用 PowerShell 管理用户分配的托管标识

Azure 资源的托管标识功能消除了在代码中管理凭据的必要。 可以使用它们获取应用程序的 Microsoft Entra 令牌。 应用程序可以在访问支持 Microsoft Entra 身份验证的资源时使用该令牌。 Azure 管理标识,因此用户不必管理。

有两种类型的托管标识:系统分配和用户分配的托管标识。 系统分配的托管标识的生命周期与创建它们的资源相关联。 此标识仅限于一种资源,你可使用 Azure 基于角色的访问控制 (Azure RBAC) 来授予托管标识的访问权限。 而用户分配的托管标识可用于多个资源。

本文介绍如何使用 PowerShell 创建、列出、删除或向用户分配的托管标识分配角色。 我们使用 Azure 虚拟机(AzureVM)作为可以向其分配用户分配托管标识的示例资源。

先决条件

在本地配置 Azure PowerShell

若要在本文中本地使用 Azure PowerShell 而不是使用 Cloud Shell,请执行以下操作:

  1. 安装最新版本的 Azure PowerShell(如果尚未安装)。

  2. 登录到 Azure。

    Connect-AzAccount
    
  3. 安装最新版本的 PowerShellGet

    Install-Module -Name PowerShellGet -AllowPrerelease
    

    在下一步运行此命令后,可能需要 Exit 退出当前 PowerShell 会话。

  4. 安装 Az.ManagedServiceIdentity 模块的预发布版本,以执行本文中用户分配的托管标识操作。

    Install-Module -Name Az.ManagedServiceIdentity -AllowPrerelease
    

创建用户分配的托管标识

若要创建用户分配的托管标识,你的帐户需要托管标识参与者角色分配。

  1. 若要创建用户分配的托管标识,请使用 New-AzUserAssignedIdentity 命令。 ResourceGroupName 参数指定创建了用户分配的托管标识的资源组。 -Name 参数指定其名称。

  2. <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> 参数值替换为自己的值。

    重要

    创建用户分配的托管标识时,名称必须以字母或数字开头,并且可能包含字母数字字符、连字符 (-) 和下划线 (_) 的组合。 要使虚拟机或虚拟机规模集的分配正常工作,该名称限制为 24 个字符。 有关详细信息,请参阅 FAQ 和已知问题

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    

列出用户分配的托管标识

若要列出或读取用户分配的托管标识,你的帐户需要托管标识操作员托管标识参与者角色分配。

  1. 若要列出用户分配的托管标识,请使用 Get-AzUserAssignedIdentity 命令。 -ResourceGroupName 参数指定创建了用户分配托管标识的资源组。

  2. <RESOURCE GROUP> 值替换为自己的值。

    Get-AzUserAssignedIdentity -ResourceGroupName <RESOURCE GROUP>
    

    在响应中,用户分配的托管标识为 "Microsoft.ManagedIdentity/userAssignedIdentities" 键返回 Type 值。

    Type :Microsoft.ManagedIdentity/userAssignedIdentities

删除用户分配的托管标识

若要删除用户分配的托管标识,你的帐户需要托管标识参与者角色分配。

  1. 若要删除用户分配的托管标识,请使用 Remove-AzUserAssignedIdentity 命令。 -ResourceGroupName 参数指定从中已创建用户分配标识的资源组。 -Name 参数指定其名称。

  2. <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> 参数值替换为自己的值。

    Remove-AzUserAssignedIdentity -ResourceGroupName <RESOURCE GROUP> -Name <USER ASSIGNED IDENTITY NAME>
    

    删除用户分配的托管标识不会从将其分配到的任何资源中删除引用。 标识分配必须单独移除。

后续步骤

有关 Azure 资源的 Azure PowerShell 托管标识命令的完整列表和详细信息,请参阅 Az.ManagedServiceIdentity