为 Kubernetes 群集启用Microsoft Entra 身份验证
适用于:Azure 本地版本 23H2 上的 AKS
Azure Arc 启用的 AKS 简化了身份验证过程,Microsoft Entra ID 集成。 对于授权,群集管理员可以根据Microsoft Entra ID 集成的目录组成员身份配置 Kubernetes 基于角色的访问控制(Kubernetes RBAC)或 Azure 基于角色的访问控制(Azure RBAC)。
Microsoft使用 OpenID Connect 向 AKS Arc 群集提供 Entra 身份验证。 OpenID Connect 是构建在 OAuth 2.0 协议顶层的标识层。 有关 OpenID Connect 的详细信息,请参阅 OpenID Connect 文档。 有关 Microsoft Entra 集成流的详细信息,请参阅 Microsoft Entra 文档。
本文介绍如何为 Kubernetes 群集启用和使用 Microsoft Entra ID 身份验证。
开始之前
- 此配置要求为群集创建Microsoft Entra 组。 此组在群集上注册为管理员组,以授予管理员权限。 如果没有现有的 Microsoft Entra 组,可以使用
az ad group create
命令创建一个。 - 若要创建或更新 Kubernetes 群集,需要Azure Kubernetes 服务 Arc 参与者角色。
- 若要直接使用
az aksarc get-credentials
命令访问 Kubernetes 群集并下载 kubeconfig 文件,需要 Microsoft.HybridContainerService/provisionedClusterInstances/listUserKubeconfig/action,该操作包含在 Azure Kubernetes 服务 Arc 群集用户角色权限中。 - Microsoft Entra 组启用对 AKS 群集的管理员访问权限后,此Microsoft Entra 组可以与 Kubernetes 群集进行交互。 必须安装 kubectl 和 kubelogin。
- 添加后,将无法禁用集成。 仍可用于
az aksarc update
更新aad-admin-group-object-ids
(如果需要)。
为 Kubernetes 群集启用Microsoft Entra 身份验证
使用 Microsoft Entra 身份验证创建新群集
使用
az group create
命令创建 Azure 资源组:az group create --name $resource_group --location centralus
使用
--aad-admin-group-object-ids
命令中的az aksarc create
参数为 Microsoft Entra 组创建 AKS Arc 群集并启用管理员访问权限:az aksarc create -n $aks_cluster_name -g $resource_group --custom-location $customlocationID --vnet-ids $logicnetId --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
将现有群集与 Microsoft Entra 身份验证配合使用
使用 --aad-admin-group-object-ids
命令中的 az aksarc update
参数在现有 Kubernetes 群集上启用Microsoft Entra 身份验证。 请确保将管理员组设置为在群集上保留访问权限:
az aksarc update -n $aks_cluster_name -g $resource_group --aad-admin-group-object-ids $aadgroupID
访问已启用 entra 的Microsoft群集
使用
az aksarc get-credentials
命令获取用户凭据以访问群集。 需要 Microsoft.HybridContainerService/provisionedClusterInstances/listUserKubeconfig/action,该操作包含在 Azure Kubernetes 服务 Arc 群集用户角色权限中:az aksarc get-credentials --resource-group $resource_group --name $aks_cluster_name
使用
kubectl get nodes
命令查看群集中的节点,并按照说明登录。 传递参数时--aad-admin-group-object-ids $aadgroupID
,需要位于使用 AKS 群集指定的Microsoft Entra ID 组中:kubectl get nodes