安全问题向来是一个大家非常关注的问题,腾讯云将安全性作为产品设计中的最高原则,严格要求产品做到安全隔离,容器服务同样非常看重这一点。腾讯云的基础网络可以提供充分的安全保障,容器服务选择了网络特性更丰富的 VPC 腾讯云私有网络 来作为容器服务的底层网络,本文档主要介绍容器服务下使用安全组的最佳实践,帮助大家选择安全组策略。
安全组
容器服务选择安全组的原则
由于在容器集群中,服务实例采用分布式的方式进行部署,不同的服务实例分布在集群的节点上。建议同一个集群下的主机绑定同一个安全组,集群的安全组不添加其他云服务器。
安全组只对外开放最小权限。
需放通以下容器服务使用规则:
放通容器实例网络和集群节点网络
当服务访问到达主机节点后,会通过 Kube-proxy 模块设置的 iptable 规则将请求进行转发到服务的任意一个实例。由于服务的实例有可能在另外的节点上,这时会出现跨节点访问。例如访问的目的 IP有服务实例IP、集群中其它的节点 IP、节点上集群 cbr0 网桥的 IP。这就需要在对端节点上放通容器实例网络和集群节点网络访问。
同一 VPC 不同集群互访的情况,需要放通对应集群的容器网络和节点网络。
需要 SSH 登录节点的放通22端口。
放通节点30000 - 32768端口。
在访问路径中,需要通过负载均衡器将数据包转发到容器集群的 NodeIP:NodePort 上。其中 NodeIP 为集群中任意一节点的主机 IP ,而 NodePort 是在创建服务时容器集群为服务默认分配的,NodePort 的范围为30000 - 32768。
下图以外网访问服务为例:
![外网负载均衡访问](https://mc.qcloudimg.com/static/img/497412acf075bdf5d098b4f0ff36bbad/image.png)
![外网负载均衡访问](https://mc.qcloudimg.com/static/img/497412acf075bdf5d098b4f0ff36bbad/image.png)
容器服务默认安全组规则
节点默认安全组规则
集群节点间的正常通信需要放通部分端口,为避免绑定无效安全组造成客户创建集群失败,容器服务为您提供了默认安全组配置规则。如下表:
注意
入站规则
协议规则 | 端口 | 来源 | 策略 | 备注 |
ALL | ALL | 容器网络 CIDR | 允许 | 放通容器网络内 Pod 间通信 |
ALL | ALL | 集群网络 CIDR | 允许 | 放通集群网络内节点间通信 |
tcp | 30000 - 32768 | 0.0.0.0/0 | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
udp | 30000 - 32768 | 0.0.0.0/0 | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
icmp | - | 0.0.0.0/0 | 允许 | 放通 ICMP 协议,支持 Ping 操作 |
出站规则
协议规则 | 端口 | 来源 | 策略 |
ALL | ALL | 0.0.0.0/0 | 允许 |
独立集群 Master 默认安全组规则
创建独立集群时,会默认为 Master 机型绑定 TKE 默认安全组,降低集群创建后 Master 与 Node 无法正常通信及 Service 无法正常访问的风险。默认安全组配置规则如下表:
说明
入站规则
协议 | 端口 | 网段 | 策略 | 备注 |
ICMP | ALL | 0.0.0.0/0 | 允许 | 支持 Ping 操作 |
TCP | 30000 - 32768 | 集群网络 CIDR | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
UDP | 30000 - 32768 | 集群网络 CIDR | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
TCP | 60001,60002,10250,2380,2379,53,17443,50055,443,61678 | 集群网络 CIDR | 允许 | 放通 API Server 通信 |
TCP | 60001,60002,10250,2380,2379,53,17443 | 容器网络 CIDR | 允许 | 放通 API Server 通信 |
TCP | 30000 - 32768 | 容器网络 CIDR | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
UDP | 30000 - 32768 | 容器网络 CIDR | 允许 | 放通 NodePort 访问(LoadBalancer 类型的 Service 需经过 NodePort 转发) |
UDP | 53 | 容器网络 CIDR | 允许 | 放通 CoreDNS 通信 |
UDP | 53 | 集群网络 CIDR | 允许 | 放通 CoreDNS 通信 |
出站规则
协议规则 | 端口 | 来源 | 策略 |
ALL | ALL | 0.0.0.0/0 | 允许 |