在实现 AKS 管理的 Microsoft Entra 集成后,使用条件访问来控制群集访问

将 Microsoft Entra ID 与 AKS 群集集成后,可以通过对即时请求使用条件访问来控制对群集的访问。 本文介绍如何在 AKS 群集上启用条件访问。

注意

Microsoft Entra 条件访问具有 Entra ID P1、P2 或需要高级 P2 SKU 的治理功能。 有关 Microsoft Entra ID 许可证和 SKU 的详细信息,请参阅 Microsoft Entra ID 治理许可基础知识定价指南

开始之前

将条件访问与 Microsoft Entra ID 和 AKS 配合使用

  1. 在 Azure 门户中转到“Microsoft Entra ID”页,然后选择“企业应用程序”。
  2. 选择“条件访问”>“策略”>“新建策略”。
  3. 为策略输入名称,例如“aks-policy”。
  4. 在“分配” 下,选择“用户和组” 。 选择要将策略应用到的用户和组。 在此示例中,请选择对你的群集拥有管理员访问权限的同一个 Microsoft Entra 组。
  5. 在“云应用或操作”“包括”下,选择“选择应用”。 搜索“Azure Kubernetes 服务”,然后选择“Azure Kubernetes 服务 Microsoft Entra 服务器”。
  6. 在“访问控制>授权”下,依次选择“授予访问权限”、“要求将设备标记为合规”和“需要所有已选控件”。
  7. 确认设置,将“启用策略”设置为“”,然后选择“创建”。

验证是否已成功列出条件访问策略

实现条件访问策略后,通过访问 AKS 群集并检查登录活动来验证它是否按预期工作。

  1. 使用 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
    
  2. 按照说明进行登录。

  3. 使用 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
    
  4. 在 Azure 门户中导航到“Microsoft Entra ID”,然后选择“企业应用程序”>“活动”>“登录”。

  5. 在“条件访问列下,应会看到“成功”状态。 选择事件,然后选择“条件访问”选项卡。将列出条件访问策略。

后续步骤

如需了解更多信息,请参阅以下文章:

  • 使用 kubelogin 来访问 kubectl 中未提供的 Azure 身份验证功能。