一、核心能力
·自动下发:开启时一次性全量下发所有策略,新建 Namespace 自动补充。
·持续对账:内置 Controller 持续检测,被误删的策略自动修复。
·灰度支持:通过 Namespace 或 Pod Label 控制生效范围,支持渐进式验证。
·干净回收:关闭安全增强时,自动回收所有相关策略,无残留。
二、使用限制
·安全增强策略对指定范围内的所有新建 Pod 生效,违反策略的 Pod 将被拒绝创建。
·以下系统命名空间默认豁免,不受策略约束:kube-system、kube-public、kube-node-lease、gatekeeper-system、tke-backup、crane-system。
·安全增强依赖集群已安装 Gatekeeper 组件。
三、策略说明
开启安全增强后,TKE 将自动下发以下策略:
四、Gatekeeper Assign(变更注入)
| 策略名 | Assign CR | 功能说明 |
| MetaServer 封禁 | addinitcontainer | 向每个 Pod 自动注入 security-defense initContainer,在 Pod 启动前通过 iptables 封禁腾讯云 MetaServer 地址,防止容器获取节点云凭证。 |
五、Gatekeeper Constraint(准入拦截)
| 策略名 | ConstraintTemplate | 功能说明 |
| 禁止危险宿主机路径挂载 | blockvolumemountpath | 禁止 Pod 通过 HostPath 挂载宿主机根路径及 /opt 等前缀路径,防止容器访问节点敏感文件。 |
| 禁止危险 Volume 类型 | blockmountablevolumetype | 禁止 Pod 使用 gitRepo 类型 Volume,防止容器在启动时从外部 Git 仓库自动拉取并执行代码。 |
| 禁止特权容器 | k8spspprivilegedcontainer | 禁止容器以 privileged: true 运行,防止容器逃逸至宿主机。 |
| 禁止 SA Token 自动挂载 | k8spspautomountserviceaccounttokenpod | 禁止容器自动挂载 ServiceAccount Token,防止容器直接获得 Kubernetes API 访问权限。 |
注意:说明:
注意:所有 Constraint 均采用 enforcementAction: deny,违反即拒绝 Pod 创建。所有安全增强下发的资源均携带标签 app.kubernetes.io/managed-by: tke-security-mode,用于识别和管理。
六、NetworkPolicy(网络隔离)
| 策略名 | policyTypes | 功能说明 |
| security-mode-block-container-subnet | Egress | 封禁 Pod 直连容器子网,防止 Pod 间通过 IP 直接通信实现横向移动。放行正常外网流量和 DNS(UDP/TCP 53)。 |
各网络模式的 Egress 规则:
| 规则 | VPC-CNI 模式 | GlobalRouter 模式 |
| 拦截容器子网 | 0.0.0.0/0 except ENI 子网 CIDR | 0.0.0.0/0 except ClusterCIDR |
| 放行 Service CIDR | 无需单独放行(ServiceCIDR 与容器子网天然不重叠) | 单独放行 ServiceCIDR,确保 Pod → ClusterIP 通信正常 |
| 放行 DNS | UDP/TCP 53 | UDP/TCP 53 |
七、创建集群时开启
在 容器服务控制台 创建集群时,在高级设置中开启集群安全增强。
八、为已有集群开启
已有集群可前往集群基础信息页面开启安全增强,建议先通过灰度方式验证兼容性,再全量开启。灰度模式支持按 Namespace 或 Pod Label 两种维度灰度:
·按 Namespace 灰度:仅对指定命名空间下的 Pod 生效。
·按 Pod Label 灰度:仅对携带指定 Label 的 Pod 生效,同一 Namespace 内未打 Label 的 Pod 不受影响。
九、关闭安全增强
关闭后,TKE 将自动完整回收所有由安全增强下发的 OPA 策略和 NetworkPolicy,无需手动清理。
十、开启安全增强后,为什么部分 Pod 创建失败?
安全增强策略会拦截以下常见配置,开启前建议提前排查,可通过 kubectl describe pod <pod-name> 查看具体拒绝原因,或查询 Gatekeeper 审计日志定位触发的策略。
·使用 HostPath 挂载宿主机路径的 Pod(如日志采集 DaemonSet)。
·使用 privileged: true 的特权容器(如部分中间件)。
·未显式设置 automountServiceAccountToken: false 的 Pod。
·使用 gitRepo 类型 Volume 的 Pod。
十一、系统组件是否会受到影响?
kube-system 等系统命名空间默认豁免,不受策略约束。业务命名空间中确需豁免的特殊组件,可通过缩小 SecurityModeNamespaces 范围排除对应命名空间。
十二、NetworkPolicy 是否会影响正常的 Service 访问?
不会。NetworkPolicy 仅封禁 Pod 间直接通过容器 IP 互访,Pod 通过 ClusterIP Service 访问其他服务的流量不受影响。VPC-CNI 模式下 ServiceCIDR 与容器子网天然不重叠,GlobalRouter 模式下已单独放行 ServiceCIDR。DNS 解析(UDP/TCP 53)也在放行规则内。