CentOS 上 Kubernetes 的安全配置清单
一 系统加固与内核参数
- 关闭 Swap:临时执行 swapoff -a,并在 /etc/fstab 中注释所有包含 swap 的行,避免 kubelet 因检测到 Swap 而拒绝启动。
- SELinux:优先保持 SELINUX=enforcing 并通过策略放行所需访问;如确有兼容性问题,可设置为 permissive 或 disabled(需重启)。
- 防火墙:生产环境不建议直接关闭 firewalld,应仅开放必要端口(如 6443、10250、10251、10252、2379/2380、10256、30000-32767 等,按实际组件与 CNI 调整)。
- 内核与转发:启用 br_netfilter 与桥接流量入 iptables,开启 IPv4 转发,并持久化:
- 模块:echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/k8s.conf && sudo modprobe overlay && sudo modprobe br_netfilter
- Sysctl:echo -e “net.bridge.bridge-nf-call-iptables = 1\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.ipv4.ip_forward = 1” | sudo tee /etc/sysctl.d/k8s.conf && sudo sysctl --system
- 时间同步:部署 chrony/ntpd,确保所有节点时间一致,避免证书校验与审计日志异常。
二 集群身份与访问控制
- API Server 认证与加密:启用 TLS;使用 客户端证书、bootstrap token、OIDC、Webhook 等组合认证;对外仅暴露 6443,apiserver 到 kubelet、etcd、scheduler、controller-manager 之间通信全链路加密。
- RBAC 最小权限:按“最小权限原则”配置 Role/ClusterRole 与 RoleBinding/ClusterRoleBinding;避免使用 cluster-admin 日常操作;为系统组件使用 专用 ServiceAccount。
- 准入控制:启用 Pod Security Admission(替代已废弃的 PSP),按命名空间设置 baseline/restricted 级别;对变更类资源使用 准入 Webhook 做策略拦截(如镜像白名单、不可变标签、资源配额)。
- 审计与密钥:开启 审计日志(apiserver --audit-* 参数或审计策略文件),集中存储与轮转;kubeconfig、bootstrap token、证书私钥妥善管控并定期轮换。
三 网络与运行时安全
- 网络策略:部署 NetworkPolicy,默认拒绝(Default Deny),按业务划分 Namespace/Pod 标签,仅对白名单流量放通(如仅允许前端到后端、数据库仅内网可达)。
- 服务暴露:对外仅暴露必要 Ingress 域名与端口,启用 HTTPS/TLS;内部服务优先使用 ClusterIP 或 Internal LoadBalancer。
- 加密与隔离:对 Pod 到 Pod / 服务到服务 通信启用 mTLS(如服务网格或 API 网关);对敏感命名空间启用 NetworkPolicy 隔离。
- 容器运行时:使用 Containerd 并启用 SystemdCgroup = true;配置镜像仓库 TLS 与凭据;为 kubelet 设置 只读根文件系统、非特权容器、最小能力集(Capabilities) 等安全上下文。
四 镜像与数据安全
- 镜像治理:优先使用 私有镜像仓库,启用 镜像签名 与 镜像扫描(如 Trivy、Clair、kube-bench 等);禁止运行 latest 标签,使用 不可变标签(SHA/版本)。
- 运行时上下文:在 Pod/Deployment 中设置 runAsNonRoot: true、readOnlyRootFilesystem: true、runAsUser/runAsGroup、allowPrivilegeEscalation: false、capabilities.drop=ALL 等;按需仅添加最小能力。
- 数据面安全:对 etcd 数据静态加密(EncryptionConfiguration),备份与恢复流程纳入变更管理;密钥集中托管(如 KMS)。
五 运维监控与持续加固
- 组件与系统更新:保持 Kubernetes 组件与 CentOS 的安全补丁为最新;变更通过 灰度/蓝绿 与 回滚预案 实施。
- 监控与告警:部署 Prometheus + Grafana 监控 API Server、kubelet、etcd、网络、节点资源 等关键指标;对异常连接、证书即将过期、审计拒绝等配置 告警。
- 日志与审计:集中采集 apiserver/audit、kubelet、容器 stdout/stderr 与系统日志,保留周期与合规要求一致;定期审计 RBAC 权限 与 准入策略 的必要性。
- 节点与平台:使用 污点/容忍度(Taints/Tolerations) 隔离敏感工作负载;对管理口与带外管理网络实施 访问控制 与 多因素认证。