CCE节点安全配置建议
节点不暴露到公网
- 如非必需,节点不建议绑定EIP,以减少攻击面。
- 在必须使用EIP的情况下,应通过合理配置防火墙或者安全组规则,限制非必须的端口和IP访问。
在使用cce集群过程中,由于业务场景需要,在节点上配置了kubeconfig.json文件,kubectl使用该文件中的证书和私钥信息可以控制整个集群。在不需要时,请清理节点上的/root/.kube目录下的目录文件,防止被恶意用户利用:
rm -rf /root/.kube
加固VPC安全组规则
CCE作为通用的容器平台,安全组规则的设置适用于通用场景。用户可根据安全需求,通过网络控制台的安全组找到CCE集群对应的安全组规则进行安全加固。
节点应按需进行加固
CCE服务的集群节点操作系统配置与开源操作系统默认配置保持一致,用户在节点创建完成后应根据自身安全诉求进行安全加固。
CCE提供以下建议的加固方法:
- 通过“创建节点”的“安装后执行脚本”功能,在节点创建完成后,执行命令加固节点。具体操作步骤参考创建节点的“云服务器高级设置”的“安装后执行脚本”。“安装后执行脚本”的内容需由用户提供。
禁止容器获取宿主机元数据
当用户将单个CCE集群作为共享集群,提供给多个用户来部署容器时,应限制容器访问openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。
修复方式参考ECS文档-元数据获取-使用须知。
该修复方案可能影响通过ECS Console修改密码,修复前须进行验证。
- 获取集群的网络模式和容器网段信息。
在CCE的“集群管理”界面查看集群的网络模式和容器网段。
- 禁止容器获取宿主机元数据。
- VPC网络集群
- 以root用户登录集群的每一个node节点,执行以下命令:
iptables -I OUTPUT -s {container_cidr} -d 169.254.169.254 -j REJECT
其中,{container_cidr}是集群的容器网络,如10.0.0.0/16。
为保证配置持久化,建议将该命令写入/etc/rc.local 启动脚本中。
- 在容器中执行如下命令访问openstack的userdata和metadata接口,验证请求是否被拦截。
curl 169.254.169.254/openstack/latest/meta_data.json curl 169.254.169.254/openstack/latest/user_data
- 以root用户登录集群的每一个node节点,执行以下命令:
- 容器隧道网络集群
- 以root用户登录集群的每一个node节点,执行以下命令:
iptables -I FORWARD -s {container_cidr} -d 169.254.169.254 -j REJECT
其中,{container_cidr}是集群的容器网络,如10.0.0.0/16。
为保证配置持久化,建议将该命令写入/etc/rc.local 启动脚本中。
- 在容器中执行如下命令访问openstack的userdata和metadata接口,验证请求是否被拦截。
curl 169.254.169.254/openstack/latest/meta_data.json curl 169.254.169.254/openstack/latest/user_data
- 以root用户登录集群的每一个node节点,执行以下命令:
- VPC网络集群