更新时间:2024-07-27 GMT+08:00

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修改密码,修复前须进行验证。

  1. 获取集群的网络模式和容器网段信息。

    在CCE的“集群管理”界面查看集群的网络模式和容器网段。

  2. 禁止容器获取宿主机元数据。

    • VPC网络集群
      1. 以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 启动脚本中。

      2. 在容器中执行如下命令访问openstack的userdata和metadata接口,验证请求是否被拦截。
        curl 169.254.169.254/openstack/latest/meta_data.json
        curl 169.254.169.254/openstack/latest/user_data
    • 容器隧道网络集群
      1. 以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 启动脚本中。

      2. 在容器中执行如下命令访问openstack的userdata和metadata接口,验证请求是否被拦截。
        curl 169.254.169.254/openstack/latest/meta_data.json
        curl 169.254.169.254/openstack/latest/user_data