已启用 Azure Arc 的 Kubernetes 标识和访问控制概述

你可以进行身份验证、授权和控制对已启用 Azure Arc 的 Kubernetes 群集的访问。 本文概述了使用已启用 Arc 的 Kubernetes 群集执行此操作的选项。

此图显示了可以使用这些不同选项的方法:

显示对已启用 Arc 的 Kubernetes 群集进行身份验证、授权和控制访问的不同选项的图表。

如果群集连接和 Azure RBAC 最适合你的需求,则也可以同时使用它们两个。

连接选项

规划用户如何进行身份验证和访问已启用 Arc 的 Kubernetes 群集时,请决定是否要使用群集连接功能。

群集连接

已启用 Azure Arc 的 Kubernetes 群集连接功能提供与群集的 apiserver 建立连接。 此连接不需要在防火墙上启用任何入站端口。 在群集上运行的反向代理程序可以通过出站方式安全地启动与 Azure Arc 服务的会话。

通过使用群集连接,可以在 Azure 或 Internet 中访问已启用 Arc 的群集。 此功能可帮助启用交互式调试和故障排除方案。 当需要为新用户授予权限时,群集连接在更新过程中还可能需要更少的交互。 本文中所述的所有授权和身份验证选项都适用于群集连接。

如果要使用自定义位置或从 Azure 门户查看 Kubernetes 资源,则需要群集连接。

有关详细信息,请参阅使用群集连接安全连接到已启用 Azure Arc 的 Kubernetes 群集。

没有群集连接的 Microsoft Entra ID 和 Azure RBAC

如果不想使用群集连接,则可以对用户进行身份验证和授权,以便他们可以使用 Microsoft Entra ID 和 Azure 基于角色的访问控制 (Azure RBAC) 访问连接的群集。 通过在启用了 Azure Arc 的 Kubernetes 上使用 Azure RBAC,可以控制向租户中的用户授予的访问权限。 使用熟悉的Azure标识和访问功能直接从Azure管理访问权限。 还可以在订阅或资源组范围内配置角色,以便将这些角色应用到该范围内的所有已连接群集。

Azure RBAC 支持条件访问,因此可以启用实时群集访问或限制对已批准的客户端或设备的访问。

Azure RBAC 还支持直接通信模式,该模式使用Microsoft Entra标识直接从数据中心内访问连接的群集,而无需所有连接通过Azure。

有关详细信息,请参阅在已启用 Azure Arc 的 Kubernetes 群集上使用 Azure RBAC。

身份验证选项

身份验证是验证用户身份的过程。 有两个选项可用于向已启用 Arc 的 Kubernetes 群集进行身份验证:群集连接和 Azure RBAC。

Microsoft Entra 身份验证

已启用 Arc 的 Kubernetes 上的 Azure RBAC 功能允许使用 Microsoft Entra ID,使 Azure 租户中的用户能够访问连接的 Kubernetes 群集。

还可以将 Microsoft Entra 身份验证与群集连接配合使用。 有关详细信息,请参阅 Microsoft Entra 验证选项。

服务令牌身份验证

通过群集连接,可以选择使用 服务帐户进行身份验证。

有关详细信息,请参阅服务帐户令牌身份验证选项。

授权选项

授权可授予经过身份验证的用户执行指定操作的权限。 使用已启用 Azure Arc 的 Kubernetes 时,有两个授权选项,这两个选项都使用基于角色的访问控制 (RBAC):

Kubernetes RBAC 仅适用于群集中的 Kubernetes 资源,而 Azure RBAC 适用于整个 Azure 订阅中的资源。

Azure RBAC 授权

Azure 基于角色的访问控制 (RBAC) 是在 Azure 资源管理器和 Microsoft Entra ID 的基础上构建的一种授权系统,它针对 Azure 资源提供精细的访问管理。 使用 Azure RBAC 时,角色定义概述了要应用的权限。 你可以通过针对特定作用域的角色分配,将这些角色分配给用户或组。 范围可以跨越整个订阅,也可以限制为某个资源组或单个资源(例如 Kubernetes 群集)。

如果在不使用群集连接的情况下使用Microsoft Entra身份验证,Azure RBAC 授权是唯一的授权选项。

如果使用采用 Microsoft Entra 身份验证的群集连接,则可以使用 Azure RBAC 来连接到群集的 apiserver。 有关详细信息,请参阅 Microsoft Entra 验证选项。

Kubernetes RBAC 授权

Kubernetes RBAC 提供对用户操作的精细筛选功能。 通过使用 Kubernetes RBAC,可以分配用户或组权限来创建和修改资源,或者查看正在运行的应用程序工作负荷中的日志。 你可以创建角色来定义权限,然后通过角色绑定将这些角色分配给用户。 可以将权限限定为单个命名空间或整个群集。

如果使用群集连接和 服务帐户令牌身份验证选项,则必须使用 Kubernetes RBAC 提供与 apiserver 群集的连接。 此连接不需要在防火墙上启用任何入站端口。 在群集上运行的反向代理程序可以通过出站方式安全地启动与 Azure Arc 服务的会话。

如果你使用采用 Microsoft Entra 身份验证的群集连接,则可以使用 Kubernetes RBAC,而不是 Azure RBAC。

后续步骤