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

已启用 Azure Arc 的 Kubernetes 的标识和访问管理

已启用 Azure Arc 的 Kubernetes 支持与不同标识和访问管理系统集成的本地和其他云环境。 除了现有 Kubernetes 群集基于角色的访问控制 (RBAC) 之外,已启用 Azure Arc 的 Kubernetes 还支持 Azure RBAC,以统一跨 Kubernetes 群集的访问管理,并最大限度地减少运营开销。

组织应使用的组合 RBAC 模型取决于组织的使用需求。 一些示例如:

  • 将 Kubernetes 群集加入 Azure Arc
  • 管理已启用 Arc 的 Kubernetes 群集
  • 安装 Azure Arc 群集扩展
  • 在已启用 Arc 的 Kubernetes 群集上运行应用程序
  • 使用 Azure RBAC 访问 Azure 资源

了解组织的需求和已启用 Azure Arc 的 Kubernetes 的功能后,可以在生成已启用 Arc 的 Kubernetes 群集时为特定基础结构、安全性和治理要求选择最佳 RBAC 模型。

本文介绍已启用 Azure Arc 的 Kubernetes 标识和访问管理 (IAM) 体系结构、设计注意事项、建议以及适用于各种场景的基于角色的访问控制。

体系结构

要为组织设计正确的体系结构,需要了解已启用 Arc 的 Kubernetes 连接模式。 Azure RBAC 仅在完全连接模式下受支持,半连接模式下不受支持。

支持 Azure Arc 的 Kubernetes 上的 Azure RBAC

下图显示了各种已启用 Azure Arc 的 Kubernetes 组件,以及它们在 Azure RBAC 用于管理 Kubernetes 群集时如何交互。

关系图显示已启用 Azure Arc 的 Kubernetes 上的 Azure R B A C。

从任何位置安全地访问已启用 Azure Arc 的 Kubernetes 群集

下图显示了从任何位置访问已启用 Azure Arc 的 Kubernetes 群集,以及组件如何相互交互以使用 Azure RBAC 管理群集。

关系图显示如何从任何位置访问已启用 Arc 的 Kubernetes。

设计注意事项

查看 Azure 登陆区域的标识和访问管理设计区域,以评估已启用 Azure Arc 的 Kubernetes 对整体标识和访问模型的影响。

对于 Kubernetes 群集加入:

  • 决定Microsoft Entra 用户(用于手动载入单个群集)与服务主体(用于脚本化和无外设载入多个群集),以便单独或大规模地将 Kubernetes 群集加入 Azure Arc。 有关更多实现详细信息,请参阅自动化规则关键设计区域
  • 加入实体的标识需要在群集上具有 cluster-admin ClusterRoleBinding。 决定是使用来自本地或其他云标识提供商的用户,还是使用具有群集管理员角色的 Kubernetes 服务帐户。

对于 Kubernetes 群集管理:

  • 启用 Azure Arc 的 Kubernetes 将 Microsoft Entra 身份验证和 Azure RBAC 引入本地或其他云 Kubernetes 环境时,必须根据组织的安全性和治理要求在现有 Kubernetes 访问管理和 Azure RBAC 之间做出决定。
  • 确定是否可通过已启用 Azure Arc 的 Kubernetes 群集连接灵活地管理 Kubernetes 群集,而无需向本地或其他云网络开放入站防火墙端口。
  • 在本地和其他云环境中运行多个 Kubernetes 群集并且需要跨所有 Kubernetes 群集简化群集管理时,请确定 Azure RBAC 是否是正确的选择。

设计建议

对于 Kubernetes 群集加入:

  • 使用 Microsoft Entra 安全组 授予已启用 Azure Arc 的 Kubernetes 群集 RBAC 角色,以便载入和管理已启用 Azure Arc 的 Kubernetes 群集。

对于 Kubernetes 群集管理:

  • 如果本地标识与 Microsoft Entra ID 同步,请在使用 Azure RBAC 进行群集管理时使用相同的标识。

  • 通过创建安全组并将其映射到已启用 Azure Arc 的 Kubernetes 支持的 Azure RBAC 角色来简化访问管理。 根据资源组织和治理要求,在资源组或订阅级别为这些安全组分配权限。 有关详细信息,请参阅资源组织关键设计区域

    注意

    已启用 Azure Arc 的 Kubernetes 不支持拥有超过 200 个安全组成员身份的用户,而是会给出身份验证错误。

  • 避免将用户直接分配给 Azure RBAC 角色,因为很难治理访问管理。

  • 通过分配安全组所有者来分散和委派访问管理责任和审核分配。

  • 在 Microsoft Entra ID 中启用定期 访问评审 ,以删除不再需要访问 Kubernetes 群集的用户。

  • 在使用 Azure RBAC 进行群集管理时创建条件访问策略,以强制执行各种条件以满足安全和治理策略。

基于角色的访问控制

已启用 Azure Arc 的 Kubernetes 使用 Azure RBAC 管理 Kubernetes 群集,并支持以下角色将 Kubernetes 群集加入 Azure Arc。

角色 说明
已启用 Azure Arc 的 Kubernetes 群集用户角色 允许从任何位置获取基于群集连接的 kubeconfig 文件来管理群集。
Azure Arc Kubernetes 管理员 允许管理群集/命名空间下的所有资源,但不能更新或删除资源配额和命名空间。
Azure Arc Kubernetes 群集管理员 允许管理群集中的所有资源。
Azure Arc Kubernetes 查看者 允许查看群集/命名空间中除密码之外的所有资源。
Azure Arc Kubernetes 写入者 允许更新群集/命名空间中的所有内容,但(群集)角色和(群集)角色绑定除外。
Kubernetes 群集 - Azure Arc 载入 通过角色定义可以授权任何用户/服务创建连接的群集资源

后续步骤

有关混合和多云云旅程的详细信息,请参阅以下文章: