为用户分配的托管标识配置分配限制(预览版)

本文介绍如何使用 Azure 门户为用户分配的托管标识配置分配限制(也称为资源限制)。 这是预览版中的一项功能。

分配限制允许显式定义托管标识可以分配给的资源提供程序或资源类型。 强制实施分配限制可在其预期范围内保留托管标识,从而增强安全性和操作边界。 通过限制可以分配托管标识的位置,可以限制标识重用并减少爆炸半径。

先决条件

在开始之前,请确保具有以下各项:

在 Azure 门户中创建分配限制

创建用户分配的托管标识时配置分配限制。 若要创建具有分配限制的用户分配托管标识,请执行以下步骤:

  1. 使用至少具有托管标识参与者角色的帐户登录到Azure 门户

  2. 转到 托管标识。 在搜索框中,输入托管标识。 在 服务下,选择 托管身份

  3. 选择 “+ 创建 ”以添加新用户分配的托管标识并配置基本设置:

    • 订阅:选择订阅。
    • 资源组:选择现有资源组或创建新的资源组。
    • 名称:输入托管标识的名称。
    • 区域:选择要部署的区域。
    • 隔离范围:选择隔离范围。 建议将此值设置为 区域 隔离区域。 有关详细信息,请参阅 用户分配的托管标识的隔离范围
    • 资源:选择 “添加资源”。 在打开的“选择资源类型”面板中,搜索并选择标识被限制到的资源提供程序或资源类型。

    注释

    如果 资源 未配置,则值显示为 None,表示空数组。

  4. 选择“查看 + 创建”,验证你的配置。

  5. 选择“ 创建 ”以部署托管标识。

在 Azure 门户中更新分配限制

可以随时更新现有用户分配托管标识的隔离范围和分配限制。 若要更新分配限制,请执行以下步骤:

  1. 使用至少具有托管标识参与者角色的帐户登录到Azure 门户

  2. 转到 托管标识,然后选择要更新的用户分配的托管标识。

  3. 设置下,选择 属性

  4. 更新分配限制:

    • 隔离范围:选择 “区域 ”或 “无”。
    • 资源:选择“编辑”(铅笔)图标。 在打开的 “选择资源类型 ”面板中,添加或删除标识限制的资源提供程序或资源类型。
  5. 选择 “保存” 以应用更改。

注释

如果你的更新会从分配限制列表中删除某个资源提供程序,请在将该资源提供程序从列表中删除之前,先从源资源中取消分配用户分配的托管标识。

Azure门户中支持的资源提供程序和资源类型

注释

对于资源分配限制,选择 “无” 会使标识不受限制,允许将其分配给任何支持托管标识的资源提供程序的资源。

仅在需要将标识分配限制到特定资源提供程序时,才配置资源分配限制。 请注意,Azure门户中的“选择资源类型”列表可能不包括所有受支持的资源提供程序和资源类型。

Azure门户中的“选择资源类型”窗格不显示支持托管标识的所有资源提供程序和资源类型。 如果未列出要配置的资源,请使用Azure CLI创建或更新标识分配。 有关“选择资源类型”列表中当前不可用的资源,请参阅下面的Azure CLI示例。

创建具有资源分配限制的标识

az identity create \
  --name MyIdentity \
  --resource-group MyResourceGroup \
  --resource-restriction '{"providers": ["Microsoft.Compute", "Microsoft.Storage/Accounts"]}'

更新标识以限制对特定资源的分配

az identity update \
  --name MyIdentity \
  --resource-group MyResourceGroup \
  --resource-restriction '{"providers": ["Microsoft.Compute", "Microsoft.Storage/Accounts"]}'

列出身份的关联资源

az identity list-resources \
  --name MyIdentity \
  --resource-group MyResourceGroup

创建不受限制的标识

az identity create \
--name MyIdentity \
--resource-group MyResourceGroup \
--resource-restriction '{"providers": []}'

从标识中删除所有资源提供程序限制

az identity update \
--name MyIdentity \
--resource-group MyResourceGroup \
--resource-restriction '{"providers": []}'