为防止集群的 API Server 受到非法访问,建议在 API Server 使用的 CLB 实例上配置访问控制。本文介绍如何配置 CLB 的访问控制功能。
背景信息
为方便连接集群进行相关操作,通常需要开启集群 API Server 公网访问,目前容器服务通过负载均衡(CLB)和公网 IP(EIP)方式暴露 API Server 公网访问。但直接将 API Server 不加限制的暴露在公网中,存在极大地安全隐患。若不想直接暴露 EIP 给所有地址访问,可以基于源地址在 CLB 上配置网络访问控制功能。
CLB 实例通过将访问控制策略组关联到监听器,并配置为白名单或者黑名单,从而对特定 IP 地址的客户端请求进行精细化控制。访问控制策略组包含一组 IP 地址或 IP 地址段。当您为 CLB 实例的监听器关联访问策略组后,监听会使用策略组中的条目对访问请求的源 IP 进行匹配,支持以下 2 种匹配方式:
白名单:只允许匹配策略组的源 IP 访问集群的 API Server。
黑名单:拒绝匹配策略组的源 IP 访问集群的 API Server。
CLB 实例中监听器的访问控制原理,如下图所示:
使用限制
配置访问控制策略组时,除了需要保证用户侧指定的 IP 地址能够正常访问 API Server 外,集群控制面组件和控制台相关的 IP 地址段也需要能够正常访问 API Server,否则会导致集群故障。涉及的 IP 地址段如下:
100.64.0.0/10网段:用于控制面对集群的健康检查。
节点所在私有网络(VPC)子网网段:用于集群中的节点访问 API Server。
请填写准确的客户端请求源地址,并确保访问链路不会进行源网络地址转换(SNAT)。
操作步骤
支持通过 CLB 的访问控制台,基于白名单的网络控制方式,将 API Server 仅开放给指定的用户访问。