已启用 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 IDAzure 基于角色的访问控制 (Azure RBAC) 访问连接的群集。 在已启用 Azure Arc 的 Kubernetes 上使用 Azure RBAC 时,可以控制授予租户中的用户的访问权限,使用熟悉的 Azure 身份验证和访问控制功能直接从 Azure 管理访问权限。 还可以在订阅或资源组范围内配置角色,让它们推广到该范围内所有连接的群集。

Azure RBAC 支持条件访问,允许启用即时群集访问或限制对已批准的客户端或设备的访问。

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

已启用 Arc 的 Kubernetes 上的 Azure RBAC 目前为公共预览版。 有关详细信息,请参阅在已启用 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。

后续步骤