Compartir a través de

管理用户分配的托管标识

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

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

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

先决条件

创建用户分配的托管标识

提示

本文中的步骤可能因开始使用的门户而略有不同。

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

  1. 登录 Azure 门户

  2. 在搜索框中输入“托管标识”。 在“服务”下选择“托管标识”

  3. 选择“添加”,然后在“创建用户分配的托管标识”窗格中的以下框中输入值 :

    • 订阅:选择要在其下创建用户分配的托管标识的订阅。
    • 资源组:选择要在其中创建用户分配的托管标识的资源组,或选择“新建”来创建新资源组。
    • 区域:选择用于部署用户分配的托管标识的区域,例如“中国北部”
    • 名称:这是用户分配的托管标识的名称,例如 UAI1。

    重要

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

    显示“创建用户分配的托管标识”窗格的屏幕截图。

  4. 选择“查看 + 创建”以查看更改。

  5. 选择“创建”

列出用户分配的托管标识

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

  1. 登录 Azure 门户

  2. 在搜索框中输入“托管标识”。 在“服务”下选择“托管标识”

  3. 这会返回一个列表,其中包含订阅中的用户分配的托管标识。 要查看用户分配的托管标识的详细信息,请选择其名称。

  4. 你现在可以查看有关托管标识的详细信息,如下图所示。

    显示用户分配的托管标识列表的屏幕截图。

删除用户分配的托管标识

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

删除用户分配的标识不会将其从 VM 或其他已分配给的资源中删除。 要从 VM 中删除用户分配的标识,请参阅从 VM 中删除用户分配的托管标识

  1. 登录 Azure 门户

  2. 选择用户分配的托管标识,然后选择“删除”

  3. 在确认框下,选择“是”

    显示“删除”用户分配的托管标识的屏幕截图。

管理用户分配的托管标识的访问权限

在某些环境中,管理员选择限制谁可以管理用户分配的托管标识。 管理员可以使用内置 RBAC 角色来实现此限制。 可以使用这些角色授予组织中用户或组对用户分配的托管标识的权限。

  1. 登录 Azure 门户

  2. 在搜索框中输入“托管标识”。 在“服务”下选择“托管标识”

  3. 这会返回一个列表,其中包含订阅中的用户分配的托管标识。 选择“要管理的用户分配托管标识”。

  4. 选择“访问控制 (IAM)”

  5. 选择“添加角色分配”

    显示用户分配的托管标识访问控制屏幕的屏幕截图。

  6. 在“添加角色分配”窗格中,选择要分配的角色,然后选择“下一步”

  7. 选择应向其分配角色的人。

注意

有关向托管标识分配角色的信息,请参阅使用 Azure 门户为托管标识分配资源访问权限

本文介绍如何使用 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 请求。 否则,你可能最终会收到“权限不足,无法完成操作”消息。 若要执行此步骤,请进入 Microsoft Entra 中的“应用注册”,依次选择你的应用、“API 权限”,然后向下滚动并选择“Azure Active Directory Graph”。 从那里选择“应用程序权限”,然后添加适当的权限。

创建用户分配的托管标识

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

使用 az identity create 命令创建用户分配的托管标识。 -g 参数指定创建了用户分配的托管标识的资源组。 -n 参数指定其名称。 将 <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 响应中,用户分配的托管标识为 type 键返回 "Microsoft.ManagedIdentity/userAssignedIdentities" 值。

"type": "Microsoft.ManagedIdentity/userAssignedIdentities"

删除用户分配的托管标识

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

若要删除用户分配的托管标识,请使用 az identity delete 命令。 -n 参数指定其名称。 -g 参数指定创建了用户分配托管标识的资源组。 将 <USER ASSIGNED IDENTITY NAME><RESOURCE GROUP> 参数值替换为自己的值。

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

注意

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

后续步骤

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

有关如何向 Azure VM 分配用户分配的托管标识的信息,请参阅使用 Azure CLI 在 Azure VM 上配置 Azure 资源的托管标识

了解如何使用托管标识的工作负荷标识联合身份验证访问受 Microsoft Entra 保护的资源,而无需管理机密。

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

先决条件

本文将介绍如何使用 PowerShell 创建、列出和删除用户分配的托管标识。

在本地配置 Azure PowerShell

若要在本文情景中本地使用 Azure PowerShell:

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

  2. 登录 Azure。

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

    Install-Module -Name PowerShellGet -AllowPrerelease
    

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

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

    Install-Module -Name Az.ManagedServiceIdentity -AllowPrerelease
    

创建用户分配的托管标识

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

若要创建用户分配的托管标识,请使用 New-AzUserAssignedIdentity 命令。 ResourceGroupName 参数指定创建了用户分配的托管标识的资源组。 -Name 参数指定其名称。 将 <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> 参数值替换为自己的值。

重要

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

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

列出用户分配的托管标识

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

要列出用户分配的托管标识,请使用 [Get-AzUserAssigned] 命令。 -ResourceGroupName 参数指定创建了用户分配托管标识的资源组。 将 <RESOURCE GROUP> 值替换为自己的值。

Get-AzUserAssignedIdentity -ResourceGroupName <RESOURCE GROUP>

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

Type :Microsoft.ManagedIdentity/userAssignedIdentities

删除用户分配的托管标识

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

若要删除用户分配的托管标识,请使用 Remove-AzUserAssignedIdentity 命令。 -ResourceGroupName 参数指定从中已创建用户分配标识的资源组。 -Name 参数指定其名称。 将 <RESOURCE GROUP><USER ASSIGNED IDENTITY NAME> 参数值替换为自己的值。

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

注意

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

后续步骤

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

了解如何使用托管标识的工作负荷标识联合身份验证访问受 Microsoft Entra 保护的资源,而无需管理机密。

本文将使用 Azure 资源管理器创建用户分配的托管标识。

先决条件

不能使用资源管理器模板来列出和删除用户分配的托管标识。 请参阅以下文章来创建和列出用户分配的托管标识:

模板创建和编辑

资源管理器模板有助于部署由 Azure 资源组定义的新资源或已修改资源。 有多种可用于执行模板编辑和部署的方法(包括本地方法和基于门户的方法)。 方法:

创建用户分配的托管标识

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

若要创建用户分配的托管标识,请使用以下模板。 将 <USER ASSIGNED IDENTITY NAME> 值替换为自己的值。

重要

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

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "resourceName": {
          "type": "string",
          "metadata": {
            "description": "<USER ASSIGNED IDENTITY NAME>"
          }
        }
  },
  "resources": [
    {
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
      "name": "[parameters('resourceName')]",
      "apiVersion": "2018-11-30",
      "location": "[resourceGroup().location]"
    }
  ],
  "outputs": {
      "identityName": {
          "type": "string",
          "value": "[parameters('resourceName')]"
      }
  }
}

后续步骤

若要使用资源管理器模板向 Azure VM 分配用户分配的托管标识,请参阅使用模板在 Azure VM 上配置 Azure 资源的托管标识

了解如何使用托管标识的工作负荷标识联合身份验证访问受 Microsoft Entra 保护的资源,而无需管理机密。

本文将介绍如何使用 REST 创建、列出和删除用户分配的托管标识。

先决条件

本文介绍如何使用 CURL 创建、列出和删除用户分配的托管标识以进行 REST API 调用。

获取持有者访问令牌

  1. 如果在本地运行,请通过 Azure CLI 登录到 Azure。

    az login
    
  2. 使用 az account get-access-token 获取访问令牌。

    az account get-access-token
    

创建用户分配的托管标识

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

重要

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

curl 'https://management.chinacloudapi.cn/subscriptions/<SUBSCRIPTION ID>/resourceGroup
s/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>?api-version=2015-08-31-preview' -X PUT -d '{"loc
ation": "<LOCATION>"}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.chinacloudapi.cn/subscriptions/<SUBSCRIPTION ID>/resourceGroup
s/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>?api-version=2015-08-31-preview HTTP/1.1

请求标头

请求标头 说明
Content-Type 必需。 设置为 application/json
授权 必需。 设置为有效的 Bearer 访问令牌。

请求正文

名称 说明
位置 必需。 资源位置。

列出用户分配的托管标识

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

curl 'https://management.chinacloudapi.cn/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities?api-version=2015-08-31-preview' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.chinacloudapi.cn/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities?api-version=2015-08-31-preview HTTP/1.1
请求标头 说明
Content-Type 必需。 设置为 application/json
授权 必需。 设置为有效的 Bearer 访问令牌。

删除用户分配的托管标识

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

注意

删除用户分配的托管标识不会从将其分配到的任何资源中删除引用。 要使用 CURL 从 VM 中删除用户分配的托管标识,请参阅从 Azure VM 中删除用户分配的标识

curl 'https://management.chinacloudapi.cn/subscriptions/<SUBSCRIPTION ID>/resourceGroup
s/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>?api-version=2015-08-31-preview' -X DELETE -H "Authorization: Bearer <ACCESS TOKEN>"
DELETE https://management.chinacloudapi.cn/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/TestRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>?api-version=2015-08-31-preview HTTP/1.1
请求标头 说明
Content-Type 必需。 设置为 application/json
授权 必需。 设置为有效的 Bearer 访问令牌。

后续步骤

有关如何使用 CURL 向 Azure VM 或虚拟机规模集分配用户分配的托管标识的信息,请参阅:

了解如何使用托管标识的工作负荷标识联合身份验证访问受 Microsoft Entra 保护的资源,而无需管理机密。