你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将Microsoft Entra ID 与 AKS 群集集成后,可以使用 条件访问 来控制对群集控制平面和群集节点的访问。 本文介绍如何在 AKS 群集上启用条件访问,以便控制平面访问和对节点的 SSH 访问。
注意
Microsoft Entra 条件访问具有 Entra ID P1、P2 或需要高级 P2 SKU 的治理功能。 有关 Microsoft Entra ID 许可证和 SKU 的详细信息,请参阅 Microsoft Entra ID 治理许可基础知识和定价指南。
开始之前
- 有关概述和设置说明,请参阅 AKS 托管的 Microsoft Entra 集成。
- 有关对节点的 SSH 访问,请参阅 “管理 SSH”,确保对 Azure Kubernetes 服务(AKS)节点的安全访问 ,以配置基于 Entra ID 的 SSH。
将条件访问与 Microsoft Entra ID 和 AKS 配合使用
可以使用条件访问来控制对 AKS 群集控制平面的访问,以及对群集节点的 SSH 访问。
为群集控制平面访问配置条件访问
- 在 Azure 门户中转到“Microsoft Entra ID”页,然后选择“企业应用程序”。
- 选择“条件访问”>“策略”>“新建策略”。
- 为策略输入名称,例如“aks-policy”。
- 在“分配”下,选择“用户和组”。 选择要将策略应用到的用户和组。 在此示例中,请选择对你的群集拥有管理员访问权限的同一个 Microsoft Entra 组。
- 在“云应用或操作”>“包括”下,选择“选择应用”。 搜索“Azure Kubernetes 服务”,然后选择“Azure Kubernetes 服务 Microsoft Entra 服务器”。
- 在“访问控制>授权”下,依次选择“授予访问权限”、“要求将设备标记为合规”和“需要所有已选控件”。
- 确认设置,将“启用策略”设置为“开”,然后选择“创建”。
验证群集控制平面的条件访问
实现条件访问策略后,通过访问 AKS 群集并检查登录活动来验证它是否按预期工作。
使用
az aks get-credentials命令获取用户凭据以访问群集。将值分配给所需的环境变量。 AKS 群集和资源组必须存在。
export RANDOM_SUFFIX=$(head -c 3 /dev/urandom | xxd -p) export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX" export AKS_CLUSTER="myManagedCluster$RANDOM_SUFFIX"下载访问 AKS 群集所需的凭据。
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing按照说明进行登录。
使用
kubectl get nodes命令查看群集中的节点。kubectl get nodes结果:
NAME STATUS ROLES AGE VERSION aks-nodepool1-xxxxx-vmss000000 Ready agent 3d2h v1.xx.x aks-nodepool1-xxxxx-vmss000001 Ready agent 3d2h v1.xx.x在 Azure 门户中导航到“Microsoft Entra ID”,然后选择“企业应用程序”>“活动”>“登录”。
在“条件访问列下,应会看到“成功”状态。 选择事件,然后选择“条件访问”选项卡。将列出条件访问策略。
配置条件访问以对群集节点进行 SSH 访问
在 AKS 群集节点上启用基于 Entra ID 的 SSH 访问时,可以应用条件访问策略来控制对节点的 SSH 访问。 这通过强制设备符合性、多重身份验证或其他条件来提供额外的安全性,然后用户才能通过 SSH 连接到群集节点。
- 在 Azure 门户中转到“Microsoft Entra ID”页,然后选择“企业应用程序”。
- 选择“条件访问”>“策略”>“新建策略”。
- 输入策略的名称,例如 aks-node-ssh-policy。
- 在“分配”下,选择“用户和组”。 选择要将策略应用到的用户和组。
- 在“云应用或操作”>“包括”下,选择“选择应用”。 搜索 Azure 虚拟机登录 并选择 “Azure Linux 虚拟机登录 ”(应用程序 ID:
ce8a2463-e670-4e94-a441-a26e6d88c3e2)。 - 在 “访问控制>授予”下,选择“ 授予访问权限”、“ 要求设备标记为合规”、“ 需要多重身份验证”和 “要求所有所选控件”。
- 确认设置,将“启用策略”设置为“开”,然后选择“创建”。
注意
若要使基于 Entra ID 的 SSH 能够使用条件访问,请确保 AKS 群集节点配置为使用 --ssh-access entraid。 有关详细信息,请参阅 管理 SSH,确保对 Azure Kubernetes 服务(AKS)节点的安全访问。
验证 SSH 对节点的访问的条件访问
为节点的 SSH 访问实施条件访问策略后,请验证其是否按预期工作:
确保具有适当的 Azure RBAC 权限:
- 用于管理员访问权限的虚拟机管理员登录角色
- 用于非管理员访问的虚拟机用户登录角色
安装适用于 Azure CLI 的 SSH 扩展:
az extension add --name ssh使用 Entra ID 身份验证通过 SSH 连接到节点:
az ssh vm --resource-group $RESOURCE_GROUP --name <node-name>在身份验证流期间,系统会提示你满足条件访问策略(例如设备符合性、MFA)。
成功通过满足条件访问要求的身份验证后,将连接到节点。
在 Azure 门户中导航到“Microsoft Entra ID”,然后选择“企业应用程序”>“活动”>“登录”。
查找 Azure Linux 虚拟机登录 的登录事件,并验证在 条件访问 列下是否看到 “成功”状态。
后续步骤
有关详细信息,请参阅以下文章:
- 使用 kubelogin 来访问 kubectl 中未提供的 Azure 身份验证功能。
- 使用 Privileged Identity Management (PIM) 控制对 Azure Kubernetes 服务 (AKS) 群集的访问。