Linux 上 Kubernetes 安全的分层防护方案
一 基础系统与平台加固
- 保持组件与内核更新:将 Kubernetes 及各组件(kubelet、kubeadm、kubectl) 升级到稳定版本,及时获取安全补丁;按需更新 Linux 内核与容器运行时。
- 节点与内核参数:生产环境建议禁用 Swap;按需开启桥接流量到 iptables(如 net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1);配置 NTP 时间同步。
- 防火墙与端口:使用 firewalld/ufw/iptables 仅开放必要端口(如 6443/2379-2380/10250 等),默认拒绝入站,最小化暴露面。
- 安全基线:以 CIS Docker/Kubernetes 基线 开展配置核查与加固,结合自动化脚本/工具持续巡检与整改。
二 身份、访问与加密
- 认证与授权:为 API Server 启用 TLS;支持 客户端证书、静态/动态 Token、OIDC、Webhook 等认证方式;通过 RBAC 实施最小权限,按命名空间与职责划分角色与绑定。
- 准入控制:启用 ImagePolicyWebhook 拦截未验证/未扫描镜像;结合 Pod Security Standards(替代 PSP) 在准入阶段约束特权、能力、根用户等。
- 服务账户与密钥:为控制面组件启用独立 ServiceAccount,配合 RBAC 最小权限运行;启用 RotateKubeletServerCertificate 等证书轮换能力。
- 数据面加密:为 etcd 数据静态加密,为 控制面与节点间通信 全程启用 TLS/mTLS。
三 网络与微隔离
- 启用网络策略:部署支持 NetworkPolicy 的插件(如 Calico、Cilium),按命名空间与标签实施默认拒绝(default-deny),仅对白名单流量放通,实现 东西向流量 细粒度控制与 零信任 架构。
- 边界与出口治理:仅暴露必要 Service/Ingress;对高敏感业务设置出站白名单与协议端口限制;必要时引入第三方微隔离产品增强 L7 可视化与威胁检测。
四 镜像、运行时与供应链
- 镜像治理:优先使用私有镜像仓库;在 CI 中集成 镜像扫描(如 Trivy、Clair) 与签名校验,阻断含高危漏洞或未经签名的镜像进入生产。
- 运行时安全:在 Pod 上设置 Security Context(如 runAsNonRoot、readOnlyRootFilesystem、drop capabilities、seccomp/AppArmor);为容器配置 CPU/内存/存储 限额,防止资源耗尽攻击。
- 安全基线核查:使用 kube-bench 等工具对集群与控制面组件进行 CIS 基线 检查与整改,形成持续合规。
五 审计、监控与持续运营
- 审计与日志:启用 API Server 审计日志,记录关键操作与异常行为;集中收集 kubelet/容器运行时/系统 日志,便于取证与合规。
- 监控与告警:使用 Prometheus + Grafana 监控 API 调用频率、Pod 异常重启、资源异常 等指标并设置告警;对 网络策略命中、准入拒绝 等事件建立可视化与追踪。
- 验证与演练:定期验证 防火墙规则、TLS 证书、网络策略生效 与 RBAC 权限边界;将安全核查与加固纳入 DevSecOps/SOP,持续迭代策略与修复闭环。