容器服务安全组设置

最近更新时间:2019-07-29 09:15:58

安全问题向来是一个大家非常关注的问题,腾讯云将安全性作为产品设计中的最高原则,严格要求产品做到安全隔离,容器服务同样非常看重这一点。腾讯云的基础网络可以提供充分的安全保障,容器服务选择了网络特性更丰富的 VPC 腾讯云私有网络 来作为容器服务的底层网络,本文档主要介绍容器服务下使用安全组的最佳实践,帮助大家选择安全组策略。

安全组

安全组是一种有状态的包过滤功能的虚拟防火墙,它用于设置单台或多台云服务器的网络访问控制,是腾讯云提供的重要的网络安全隔离手段。更多安全组的介绍可以查看 安全组

使用容器服务选择安全组的原则

  1. 由于在容器集群中,服务实例采用分布式的方式进行部署,不同的服务实例混部在集群的节点上。建议同一个集群下的主机绑定同一个安全组,集群的安全组不添加其他云服务器。
  2. 安全组只对外开放最小权限。
  3. 需放通以下容器服务使用规则:
    • 放通容器实例网络和集群节点网络
      当服务访问到达主机节点后,会通过 Kube-proxy 模块设置的 iptables 规则将请求进行转发到服务的任意一个实例。由于服务的实例有可能在另外的节点上,这时会出现跨节点访问。例如访问的目的 IP有服务实例IP、集群中其它的节点 IP、节点上集群 cbr0 网桥的 IP。这就需要在对端节点上放通容器实例网络和集群节点网络访问。
    • 同一 VPC 不同集群互访的情况,需要放通对应集群的容器网络和节点网络。
    • 需要 SSH 登录节点的放通22端口。
    • 放通节点30000 - 32768端口。
      在访问路径中,需要通过负载均衡器将数据包转发到容器集群的 NodeIP:NodePort 上。其中 NodeIP 为集群中任意一节点的主机 IP ,而 NodePort 是在创建服务时容器集群为服务默认分配的,NodePort 的范围为30000 - 32768。
      下图以外网访问服务为例:
      外网负载均衡访问

安全组配置模板

建议通过容器服务提供的安全组模板来配置集群的安全组。安全组的具体配置规则如下:

入站规则:

协议 端口 网段 是否允许 说明
TCP 30000 - 32768 0.0.0.0/0 允许 放通所有 IP 对30000 - 32768端口 TCP 访问
UDP 30000 - 32768 0.0.0.0/0 允许 放通所有 IP 对 30000 - 32768 端口 UDP 访问
All traffic ALL 10.0.0.0/8 允许 放通10.0.0.0/8内网网段的访问
All traffic ALL 172.16.0.0/12 允许 放通172.16.0.0/12内网网段的访问
All traffic ALL 192.168.0.0/16 允许 放通192.168.0.0/16内网网段的访问
TCP 22 0.0.0.0/0 允许 放通所有 IP 对22端口的访问
All traffic ALL 0.0.0.0/0 拒绝 未匹配已有规则,则拒绝

出站规则:

协议 端口 网段 是否允许 说明
All traffic ALL 0.0.0.0/0 允许 放通所有规则

容器节点配置该规则,能够满足不同的访问方式访问集群中服务。
集群中服务的访问方式,可以参考 服务访问方式设置