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

在 Azure Kubernetes 舰队管理器中使用托管标识

Azure Kubernetes 舰队管理器使用 Microsoft Entra 身份来访问 Azure 资源(例如 Azure 虚拟网络)或管理长时间运行的后台活动(例如多集群自动升级)。

可以使用托管标识授权从舰队管理器访问任何支持 Microsoft Entra 授权的服务,而无需管理凭据或将其包含在代码中。 为托管标识分配 Azure 基于角色的访问控制 (Azure RBAC) 角色,以授予其对 Azure 中特定资源的权限。 有关 Azure RBAC 的详细信息,请参阅什么是 Azure 基于角色的访问控制 (Azure RBAC)?

本文介绍如何在新的或现有的 Azure Kubernetes 舰队管理器上启用以下类型的托管标识:

  • 系统分配的托管标识。 系统分配的托管标识与单个 Azure 资源(例如舰队管理器)相关联。 它仅适用于舰队管理器的生命周期。
  • 用户分配的托管标识。 用户分配的托管标识是一个独立的 Azure 资源,舰队管理器可以使用它来授权访问其他 Azure 服务。 它独立于舰队管理器存在,可供多个 Azure 资源使用。

若要了解托管标识的详细信息,请参阅 Azure 资源托管标识

在您开始之前

如果打算使用 Azure CLI,请确保已安装 Azure CLI 2.75.0 或更高版本。 若要查找版本,请运行 az --version。 如果需要进行安装或升级,请参阅安装 Azure CLI

在运行本文中的 Azure CLI 示例之前,请先调用 az account set 命令并传入订阅 ID,将订阅设置为当前活动订阅。

az account set --subscription <subscription-id>

如果你没有 Azure 资源组,也可以通过调用 az group create 命令创建一个。

az group create \
    --name myResourceGroup \
    --location westus2

启用系统分配的托管标识

系统分配的托管标识是与舰队管理器或其他 Azure 资源相关联的标识。 系统分配的托管标识与舰队管理器的生命周期相关联。 删除舰队管理器时,也会删除系统分配的托管标识。

舰队管理器可以使用系统分配的托管标识来授权访问 Azure 中运行的其他资源,并执行长时间运行的后台进程。 可以将 Azure RBAC 角色分配到系统分配的托管标识,以授予舰队管理器访问特定资源的权限。 例如,如果舰队管理器需要管理网络资源,则可以将系统分配的托管标识分配给授予这些权限的 Azure RBAC 角色。

在新的舰队管理器上启用系统分配的托管标识

在 Azure 门户中创建新的舰队管理器时,系统会自动创建系统分配的托管标识。

可以通过检查舰队管理器的“设置”部分中的“标识”边栏选项卡来验证是否已启用系统分配的托管标识。 状态为“开启”,对象(主体)ID 已填充(图中未显示)

Azure Kubernetes 舰队管理器 Azure 门户标识窗格的屏幕截图,其中显示了系统分配的标识配置。对象(主体)ID 已隐藏。

更新现有舰队管理器以使用系统分配的托管标识

可以使用舰队管理器“设置”部分中的“标识”边栏选项卡来管理舰队管理器托管标识

  1. 通过将“系统分配”状态设置为“开启”并选择“保存”来启用系统分配的托管标识

    Azure Kubernetes 舰队管理器 Azure 门户标识窗格的屏幕截图,其中显示已禁用系统分配的标识。

  2. 在确认对话框中选择“是”。

  3. 片刻之后,状态变为“开启”,并且对象(主体)ID 已填充(图中未显示)

    Azure Kubernetes 舰队管理器 Azure 门户标识窗格的屏幕截图,其中显示了系统分配的标识配置。

为系统分配的托管标识添加角色分配

可以将 Azure RBAC 角色分配到系统分配的托管标识,以授予舰队管理器对另一个 Azure 资源的权限。 Azure RBAC 支持指定权限级别的内置和自定义角色定义。 有关分配 Azure RBAC 角色的详细信息,请参阅分配 Azure 角色的步骤

将 Azure RBAC 角色分配到托管标识时,必须定义该角色的范围。 一般情况下,最佳做法是将角色的范围限制为托管标识所需的最低特权。 有关确定 Azure RBAC 角色范围的详细信息,请参阅了解 Azure RBAC 的范围

注释

为舰队管理器托管标识授予的权限,可能需要最长 60 分钟才能生效。

  1. 在舰队管理器的“标识”边栏选项卡中选择“Azure 角色分配”选项卡。 此操作将打开“Azure 角色分配”窗格。

    “Azure 角色分配”窗格的屏幕截图。

  2. 选择“添加角色分配”以打开“添加角色分配”窗格,然后输入

    • 范围 - 选择“资源组”

    • 订阅 - 选择包含要使用的资源组的 Azure 订阅

    • 资源组:选择资源组

    • 角色 - 选择要分配给舰队管理器的系统分配的托管标识的角色(例如,网络参与者)

      “添加角色分配”窗格的屏幕截图。

  3. 选择“保存”以将角色分配给舰队管理器的系统分配的托管标识

启用用户分配的托管标识

用户分配的托管标识是独立的 Azure 资源。 使用用户分配的托管标识创建舰队管理器时,用户分配的托管标识资源必须在创建舰队管理器之前就已存在。

创建用户分配的托管标识

如果你没有用户分配的托管标识资源,请使用 Azure 门户或 Azure CLI 创建一个。

按照创建用户分配的托管标识文档中的步骤操作。

将 Azure RBAC 角色分配给用户分配的托管标识

在创建舰队管理器之前,请为托管标识添加角色分配。

注释

为舰队管理器托管标识授予的权限,可能需要最长 60 分钟才能生效。

  1. 导航到托管标识资源。

  2. 在托管标识资源的左侧导航栏中选择“Azure 角色分配”选项卡。 此操作将打开“Azure 角色分配”窗格。

    “Azure 角色分配”窗格的屏幕截图。

  3. 选择“添加角色分配”以打开“添加角色分配”窗格,然后输入

    • 范围 - 选择“资源组”

    • 订阅 - 选择包含要使用的资源组的 Azure 订阅

    • 资源组:选择资源组

    • 角色 - 选择要分配给托管标识的角色(例如,网络参与者)

      “添加角色分配”窗格的屏幕截图。

  4. 选择“保存”,将角色分配给托管标识。

使用用户分配的托管标识创建舰队管理器

注释

Azure 美国政府云中的 USDOD Central、USDOD East 和 USGov Iowa 区域不支持创建具有用户分配的托管标识的舰队管理器。

在 Azure 门户中,无法使用用户分配的托管标识创建舰队管理器。 在创建舰队管理器之后,可以将其标识类型更改为用户分配,或者使用 Azure CLI 来完成此操作。

更新现有舰队管理器以使用用户分配的托管标识

可以使用舰队管理器“设置”部分中的“标识”边栏选项卡来管理舰队管理器托管标识

  1. 选择“用户分配”,切换到用户分配的托管标识选项卡

    Azure Kubernetes 舰队管理器 Azure 门户标识边栏选项卡的屏幕截图,其中显示了空的用户分配的标识列表。

  2. 选择“+ 添加”,打开“添加用户分配的托管标识”窗格。

    • 订阅 - 选择包含要使用的用户分配的托管标识的 Azure 订阅。
    • 用户分配的托管标识 - 搜索要使用的用户分配的托管标识。

    Azure Kubernetes 舰队管理器 Azure 门户标识边栏选项卡的屏幕截图,其中显示了“添加用户分配的托管标识”窗格。

  3. 选择“添加”,将用户分配的托管标识添加到舰队管理器。

  4. 片刻之后,用户分配的列表会发生变化,其中列出了用户分配的托管标识

    Azure Kubernetes 舰队管理器 Azure 门户标识边栏选项卡的屏幕截图,其中显示了具有单个条目的用户分配的标识列表。

确定正在使用的托管标识的类型

可以使用舰队管理器“设置”部分中的“标识”边栏选项卡来检查舰队管理器托管标识设置

检查“系统分配”和“用户分配”部分,以确定启用了哪种类型的托管标识

Azure Kubernetes 舰队管理器 Azure 门户标识窗格的屏幕截图,其中显示了已填充的系统分配标识。

后续步骤