使用 Azure CLI 管理用户分配的托管标识

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

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

本文介绍如何使用 Azure CLI 创建、列出和删除用户分配的托管标识以及如何为其分配角色。

先决条件

准备好你的环境

  • 如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 将扩展与 Azure CLI 配合使用

    • 运行az version命令,以查看已安装的版本和依赖库。 若要升级到最新版本,请运行az upgrade

若要在通过 CLI 使用应用服务主体时修改用户权限,必须在 Azure Active Directory Graph API 中为服务主体提供更多权限,因为 CLI 的某些部分针对图形 API 执行 GET 请求。 否则,你可能最终会收到“权限不足,无法完成操作”消息。

若要执行此步骤,请进行以下操作:

  1. 在 Microsoft Entra ID 中转到 应用注册 ,选择应用,选择 API 权限,然后向下滚动并选择 Azure Active Directory Graph
  2. 选择 应用程序权限,然后添加相应的权限。

创建用户分配的托管标识

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

  1. 使用az identity create命令创建用户分配的托管标识。 -g 参数指定创建了用户分配的托管标识的资源组。 -n 参数指定其名称。

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

    重要

    创建用户分配的托管标识时,只能使用字母数字字符(0-9、a-z、A-Z)和连字符 (-)。 要使虚拟机或虚拟机规模集的分配正常工作,该名称限制为 24 个字符。 有关详细信息,请参阅 FAQ 和已知问题

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

列出用户分配的托管标识

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

若要列出用户分配的托管标识,请使用 az identity list 命令。 将 <RESOURCE GROUP> 值替换为自己的值。

az identity list -g <RESOURCE GROUP>

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

"type": "Microsoft.ManagedIdentity/userAssignedIdentities"

删除用户分配的托管标识

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

若要删除用户分配的托管标识,

  1. 使用 az identity delete 命令。 -n 参数指定其名称。 -g 参数指定创建了用户分配托管标识的资源组。

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

    az identity delete -n <USER ASSIGNED IDENTITY NAME> -g <RESOURCE GROUP>
    

    删除用户分配的托管标识不会从将其分配到的任何资源中删除引用。 从资源本身中删除这些。 例如,对于 VM 或虚拟机规模集,请使用 az vm/vmss identity remove 命令。

有关 Azure CLI 标识命令的完整列表,请参阅 az identity