你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 运营商关系群集支持托管标识和用户提供的资源

为了提高运营商关系平台的安全性,运营商关系群集现在支持托管标识。 托管标识为应用程序提供访问其他 Azure 资源的安全方式,并且无需用户管理凭据。 此外,运营商关系现在具有用户提供的资源模型。 除了提高安全性之外,此转变还提供跨平台的一致用户体验。

托管标识用于运营商关系群集上提供的以下用户资源:

  • 用于裸机 run-* 命令输出的存储帐户。
  • 用于凭据轮换的密钥保管库。
  • 用于捕获某些指标的 Log Analytics 工作区。

若要了解 Azure 中托管标识的详细信息,请参阅 Azure 资源托管标识。 运营商关系群集支持多个用户分配的托管标识 (UAMI) 或一个系统分配的托管标识 (SAMI)。

虽然用户可以选择使用任一托管标识类型,但建议使用 UAMIS。 UAMIS 允许用户在创建或更新运营商关系群集之前预配置对 UAMI 的适当访问权限。 同一个 UAMI 可用于所有资源,或者如果用户想要精细访问,则可以为每个资源定义 UAMI。

添加后,此时只能通过 API 调用删除该标识。 有关使用 API 更新群集托管标识的信息,请参阅更新群集标识。 本部分包括有关删除托管标识的信息。

先决条件

注意

Log Analytics 工作区和 Key Vault 的托管标识功能与 2024-10-01-preview API 一起提供,并且适用于 2025-02-01 GA API。

具有用户分配的托管标识的运营商关系群集 (UAMI)

最佳做法是首先定义所有用户提供的资源(存储帐户、LAW 和 Key Vault)、与这些资源关联的托管标识,然后为托管标识分配对资源的适当访问权限。 如果在创建群集之前未完成这些步骤,则需要在群集部署之前完成这些步骤。

未按新群集的部署时间配置这些资源,会造成以下影响:

  • 存储帐户:run-* 命令输出无法写入存储帐户。
  • LAW:群集部署失败,因为部署期间需要 LAW 才能安装软件扩展。
  • Key Vault:凭据轮换失败,因为存在检查,以确保在执行凭据轮换之前对用户提供的 Key Vault 的写入访问权限。

可以随时更新群集。 更改 LAW 设置可能会导致将指标发送到 LAW 的短暂中断,因为可能需要重新安装使用 LAW 的扩展。

应遵循以下步骤,将 UAMI 与运营商关系和关联的资源一起使用。

  1. 创建一个或多个 UAMI
  2. 创建资源并将 UAMI 分配给资源
  3. 创建或更新群集以使用用户分配的托管标识和用户提供的资源

创建一个或多个 UAMI

  1. 为有问题的资源创建一个或多个 UAMI。 有关创建托管标识的详细信息,请参阅管理用户分配的托管标识

创建资源并将 UAMI 分配给资源

存储帐户设置

  1. 创建存储帐户,或标识要使用的现有存储帐户。 请参阅创建 Azure 存储帐户
  2. 在存储帐户中创建 Blob 存储容器。 请参阅创建容器
  3. Storage Blob Data Contributor 角色分配给用户和需要访问 run-* 命令输出的 UAMI。 请参阅分配 Azure 角色以访问 blob 数据
  4. 若要将存储帐户的访问权限限制为已选择的一组 IP 或虚拟网络,请参阅配置 Azure 存储防火墙和虚拟网络
    1. 需要将执行 run-* 命令的所有用户的 IP 添加到存储帐户的 Virtual Networks 和/或 Firewall 列表中。
    2. 确保已选择 Exceptions 下的 Allow Azure services on the trusted services list to access this storage account.

Log Analytics 工作区设置

  1. 创建 Log Analytics 工作区 (LAW),或标识要使用的现有 LAW。 请参阅创建 Log Analytics 工作区
  2. Log Analytics Contributor 角色分配给 Log Analytics 工作区的 UAMI。 请参阅管理对 Log Analytics 工作区的访问权限

Key Vault 设置

  1. 创建 Key Vault,或标识要使用的现有 Key Vault。 请参阅创建 Key Vault
  2. 为基于角色的访问控制 (RBAC) 启用 Key Vault。 请参阅对 Key Vault 启用 Azure RBAC 权限
  3. Operator Nexus Key Vault Writer Service Role (Preview) 角色分配给 Key Vault 的 UAMI。 请参阅分配角色
    1. 运营商关系 Key Vault 编写器服务角色的角色定义 ID 为 44f0a1a8-6fea-4b35-980a-8ff50c487c97。 如果使用 Azure 命令行执行角色分配,则此格式为必需项。
  4. 使用 UAMI 访问 Key Vault 时,必须为运营商关系平台预配对该标识的访问权限。 具体而言,需要将 Microsoft.ManagedIdentity/userAssignedIdentities/assign/action 权限添加到 AFOI-NC-MGMT-PME-PROD Microsoft Entra ID 的用户分配的标识。 这是该平台的一个已知限制,将在未来解决。
    1. 打开 Azure 门户并找到相关的用户分配标识。
    2. 选择“访问控制 (IAM)”下的“添加角色分配”
    3. 选择“角色”:托管标识操作员。 (查看托管标识操作员角色提供的权限)。
    4. 将访问权限分配给:用户、组或服务主体
    5. 选择“成员”:AFOI-NC-MGMT-PME-PROD 应用程序
    6. 查看并分配。
  5. 若要将 Key Vault 的访问权限限制为已选择的一组 IP 或虚拟网络,请参阅配置 Azure Key Vault 防火墙和虚拟网络
    1. 需要访问 Key Vault 的所有用户的 IP 需要添加到 Key Vault 的 Virtual Networks 和/或 Firewall 列表中。
    2. 确保已选择 Exceptions 下的 Allow trusted Microsoft services to bypass this firewall.

创建或更新运营商关系群集以使用用户分配的托管标识和用户提供的资源

在群集上定义 UAMI

使用用户分配的托管标识创建或更新群集时,请使用 --mi-user-assigned 参数以及 UAMI 的资源 ID。 如果想要指定多个 UAMI,请列出 UAMIs 的资源 ID,其中需包含它们之间的空格。 此列表中必须提供用于 Key Vault、LAW 或存储帐户的每个 UAMI。

创建群集时,可以在 --mi-user-assigned 中指定 UAMI,并定义资源设置。 更新群集以更改 UAMI 时,应首先更新群集以设置 --mi-user-assigned 值,然后更新群集以修改资源设置以使用它。

存储帐户设置

数据 --command-output-settings 构造用于定义写入运行命令输出的存储帐户。 它由以下字段组成:

  • container-url:要由指定标识使用的存储帐户容器的 URL。
  • identity-resource-id:要使用的用户分配的托管标识资源 ID。 与系统分配的标识类型互斥。
  • identity-type:正在选择的托管标识类型。 使用 UserAssignedIdentity

Log Analytics 工作区设置

--analytics-output-settings 数据构造用于定义发送指标的 LAW。 它由以下字段组成:

  • analytics-workspace-id:要由指定标识使用的分析工作区的资源 ID。
  • identity-resource-id:要使用的用户分配的托管标识资源 ID。 与系统分配的标识类型互斥
  • identity-type:正在选择的托管标识类型。 使用 UserAssignedIdentity

Key Vault 设置

--secret-archive-settings 数据构造用于定义写入轮换凭据的 Key Vault。 它由以下字段组成:

  • identity-resource-id:要使用的用户分配的托管标识资源 ID。
  • identity-type:正在选择的托管标识类型。 使用 UserAssignedIdentity
  • vault-uri:用作机密存档的 Key Vault 的 URI。

群集创建命令示例

示例 1:此示例是一个缩写的群集创建命令,该命令跨存储帐户、LAW 和 Key Vault 使用一个 UAMI。

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \

示例 2:此示例是使用两个 UAMI 的缩写群集创建命令。 存储帐户和 LAW 使用第一个 UAMI,Key Vault 使用第二个 UAMI。

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
    --secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI"

群集更新示例

更新群集的过程有两个步骤。 如果需要更改资源的 UAMI,必须先更新群集以将其包含在 --mi-user-assigned 字段中,然后更新存储帐户、LAW 或 Key Vault 的对应项 --identity-resource-id

如果使用多个 UIS,则必须在更新时在 --mi-user-assigned 字段中指定 UAMIS 的完整列表。 如果在群集上使用 SAMI 并且要添加 UAMI,则必须将 --mi-system-assigned 包含在更新命令中。 未能包含现有托管标识会导致系统删除这些标识。

对于 LAW 和 Key Vault,可以通过群集更新从现有数据构造转换到使用托管标识的新构造。

示例 1:将 UAMI 添加到群集。 然后将 UAMI 分配到机密存档设置 (Key Vault)。 如果此群集定义了 SAMI,则系统会删除 SAMI。

群集更新以添加 UAMI myUAMI

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \

群集更新以将 myUAMI 分配给机密存档设置。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --secret-archive-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    vault-uri="https://keyvaultname.vault.azure.net/"

示例 2:将 UAMI mySecondUAMI 添加到已保留 myFirstUAMI 的群集。 然后更新群集以将 mySecondUAMI 分配给命令输出设置(存储帐户)。

群集更新以添加 UAMI mySecondUAMI,同时保留 myFirstUAMI

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \

群集更新以将 mySecondUAMI 分配给命令输出设置。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"

示例 3:更新已具有 SAMI 的群集,并添加 UAMI。 SAMI 将保留。 然后将 UAMI 分配到 Log Analytics 输出设置 (LAW)。

注意

更改 LAW 设置可能会导致将指标发送到 LAW 的短暂中断,因为可能需要重新安装使用 LAW 的扩展。

群集更新以添加 UAMI mUAMI

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
   --mi-system-assigned

群集更新以将 myUAMI 分配给日志分析输出设置。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI"

查看用户分配的托管标识的主体 ID

可以通过在标识资源上选择“JSON 视图”来找到标识资源 ID;ID 位于显示的面板顶部。 可以在容器资源的“设置 - > 属性”选项卡上找到容器 URL。

CLI 还可用于查看群集中的标识和关联的主体 ID 数据。

示例:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

输出:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/subscriptionID/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
                "principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
            }
        }
    },

具有系统分配的托管标识的运营商关系群集

使用系统分配的托管标识 (SAMI) 遵循与 UAMI 不同的模式。 虽然可以在创建群集之前创建用户提供的资源(存储帐户、LAW 和 Key Vault),但 SAMI 在创建群集之前不存在。 用户需要查询群集以获取 SAMI,为每个资源分配正确的 SAMI 权限,然后使用指定系统分配标识的资源设置更新群集。

对于新的群集,需要在群集部署之前完成这些步骤。 未按新群集的部署时间配置这些资源,会造成以下影响:

  • 存储帐户:run-* 命令输出无法写入存储帐户。
  • LAW:群集部署失败,因为部署期间需要 LAW 才能安装软件扩展。
  • Key Vault:凭据轮换失败,因为存在检查,以确保在执行凭据轮换之前对用户提供的 Key Vault 的写入访问权限。

可以随时更新群集。 更改 LAW 设置可能会导致将指标发送到 LAW 的短暂中断,因为可能需要重新安装使用 LAW 的扩展。

应遵循以下步骤,将 UAMI 与运营商关系和关联的资源一起使用。

  1. 使用 SAMI 创建或更新群集
  2. 查询群集以获取 SAMI
  3. 创建资源并将 SAMI 分配给资源
  4. 使用用户提供的资源信息更新群集
  5. 部署群集(如果为新建群集)

使用 SAMI 创建或更新群集

使用系统分配的托管标识创建或更新群集时,请使用参数 --mi-system-assigned。 群集创建或更新过程会生成 SAMI 信息。

示例 1:此示例是指定 SAMI 的缩写群集创建命令。

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-system-assigned

示例 2:此示例更新群集以添加 SAMI。 系统会删除群集上定义的任何 UAMI。

az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
    --mi-system-assigned

示例 3:此示例更新群集以添加 SAMI 并保留现有的 UAMI、myUAMI

az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --mi-system-assigned

查询群集以获取 SAMI

可以通过在 Azure 门户中的标识资源上选择“JSON 视图”来找到标识资源 ID。

CLI 还可用于查看群集中的标识和关联的主体 ID 数据。

请注意授予资源访问权限时使用的标识 principalId

示例:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

系统分配的标识示例:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

创建资源并将 SAMI 分配给资源

存储帐户设置

  1. 创建存储帐户,或标识要使用的现有存储帐户。 请参阅创建 Azure 存储帐户
  2. 在存储帐户中创建 Blob 存储容器。 请参阅创建容器
  3. Storage Blob Data Contributor 角色分配给用户和需要访问 run-* 命令输出的 SAMI。 请参阅分配 Azure 角色以访问 blob 数据
    1. 若要将存储帐户的访问权限限制为已选择的一组 IP 或虚拟网络,请参阅配置 Azure 存储防火墙和虚拟网络
    2. 需要将执行 run-* 命令的所有用户的 IP 添加到存储帐户的 Virtual Networks 和/或 Firewall 列表中。
    3. 确保已选择 Exceptions 下的 Allow Azure services on the trusted services list to access this storage account.

Log Analytics 工作区设置

  1. 创建 Log Analytics 工作区 (LAW),或标识要使用的现有 LAW。 请参阅创建 Log Analytics 工作区
  2. Log Analytics Contributor 角色分配给 Log Analytics 工作区的 SAMI。 请参阅管理对 Log Analytics 工作区的访问权限

Key Vault 设置

  1. 创建 Key Vault,或标识要使用的现有 Key Vault。 请参阅创建 Key Vault
  2. 为基于角色的访问控制 (RBAC) 启用 Key Vault。 请参阅对 Key Vault 启用 Azure RBAC 权限
  3. Operator Nexus Key Vault Writer Service Role (Preview) 角色分配给 Key Vault 的 SAMI。 请参阅分配角色
    1. 运营商关系 Key Vault 编写器服务角色的角色定义 ID 为 44f0a1a8-6fea-4b35-980a-8ff50c487c97。 如果使用 Azure 命令行执行角色分配,则此格式为必需项。
  4. 若要将 Key Vault 的访问权限限制为已选择的一组 IP 或虚拟网络,请参阅配置 Azure Key Vault 防火墙和虚拟网络
    1. 需要访问 Key Vault 的所有用户的 IP 需要添加到 Key Vault 的 Virtual Networks 和/或 Firewall 列表中。
    2. 确保已选择 Exceptions 下的 Allow trusted Microsoft services to bypass this firewall.

使用用户提供的资源信息更新群集

存储帐户设置

数据 --command-output-settings 构造用于定义写入运行命令输出的存储帐户。 它由以下字段组成:

  • container-url:要由指定标识使用的存储帐户容器的 URL。
  • identity-resource-id:使用 SAMI 时不需要
  • identity-type:正在选择的托管标识类型。 使用 SystemAssignedIdentity

Log Analytics 工作区设置

--analytics-output-settings 数据构造用于定义发送指标的 LAW。 它由以下字段组成:

  • analytics-workspace-id:要由指定标识使用的分析工作区的资源 ID。
  • identity-resource-id:使用 SAMI 时不需要
  • identity-type:正在选择的托管标识类型。 使用 SystemAssignedIdentity

Key Vault 设置

--secret-archive-settings 数据构造用于定义写入轮换凭据的 Key Vault。 它由以下字段组成:

  • identity-resource-id:使用 SAMI 时不需要
  • identity-type:正在选择的托管标识类型。 使用 SystemAssignedIdentity
  • vault-uri:用作机密存档的 Key Vault 的 URI。

群集更新示例

更新群集遵循与创建相同的模式。 如果需要更改资源的 UAMI,则必须在 --mi-user-assigned 字段中以及存储帐户、LAW 或 Key Vault 对应的 --identity-resource-id 中包括该资源。 如果使用多个 UIS,则必须在更新时在 --mi-user-assigned 字段中指定 UAMIS 的完整列表。

对于 LAW 和 Key Vault,可以通过群集更新从现有数据构造转换到使用 UAMI 的新构造。

重要

如果使用 UAMI 或 UMI 更新群集,在添加 SAMI 或更新时,必须在 --mi-user-assigned 标识列表中包括现有 UAMI 或更新。 如果在群集上使用 SAMI 并且要添加 UAMI,则必须将 --mi-system-assigned 包含在更新命令中。 未能这样做会导致系统删除相应的托管标识。

示例 1:添加或更新群集的命令输出设置(存储帐户)。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="SystemAssignedIdentity" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"

示例 2:添加或更新群集的 Log Analytics 输出设置 (LAW)。

注意

更改 LAW 设置可能会导致将指标发送到 LAW 的短暂中断,因为可能需要重新安装使用 LAW 的扩展。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="SystemAssignedIdentity" \

示例 3:添加或更新群集的机密存档设置 (Key Vault)。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --secret-archive-settings identity-type="SystemAssignedIdentity" \
    vault-uri="https://keyvaultname.vault.azure.net/"

示例 4:此示例使用 SAMI 将所有三个资源合并为一个更新。

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="SystemAssignedIdentity" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="SystemAssignedIdentity" \
    --secret-archive-settings identity-type="SystemAssignedIdentity" \
    vault-uri="https://keyvaultname.vault.azure.net/"

通过 API 更新群集标识

可通过 CLI 分配群集托管标识。 可通过 API 调用来完成标识的取消分配。 注意,<APIVersion> 是 API 版本 2024-07-01 或更高版本。

  • 若要删除所有托管标识,请执行:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • 如果同时添加了用户分配的托管标识和系统分配的托管标识,可通过将 type 更新为 SystemAssigned 来删除用户分配的托管标识:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    请求正文 (uai-body.json) 示例:

    {
    "identity": {
          "type": "SystemAssigned"
    }
    }
    
  • 如果同时添加了用户分配的托管标识和系统分配的托管标识,可通过将 type 更新为 UserAssigned 来删除系统分配的托管标识:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    请求正文 (uai-body.json) 示例:

    {
    "identity": {
          "type": "UserAssigned",
      "userAssignedIdentities": {
      	"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      }
    }
    }
    
  • 如果添加了多个用户分配的托管标识,可通过执行以下操作删除其中一个标识:

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    请求正文 (uai-body.json) 示例:

    {
    "identity": {
          "type": "UserAssigned",
      "userAssignedIdentities": {
      	"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      }
    }
    }