- 首页 >
- 问答 >
-
智能运维 >
- Debian上Kubernetes如何进行安全加固
Debian上Kubernetes如何进行安全加固
小樊
41
2026-01-09 12:35:38
Debian上Kubernetes安全加固清单
一 系统与内核加固
- 保持系统与组件为最新稳定版本,及时修补漏洞;Kubernetes新版本通常包含关键安全修复与能力增强。
- 在所有节点禁用 Swap:临时执行 sudo swapoff -a;永久禁用需编辑 /etc/fstab 注释包含“swap”的行。
- 加载内核模块并设置 sysctl,满足容器网络与转发要求:
- 模块:overlay、br_netfilter
- 参数:net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1
- 容器运行时建议使用 containerd/CRI-O;自 v1.20 起 Docker 不再作为内置支持运行时,若使用 containerd 需确保其正确安装与启用。
- 主机防火墙建议启用并仅放通必要端口与协议,避免直接关闭防火墙。
二 控制面与 Etcd 安全
- 组件通信全面启用 TLS;为 kube-apiserver、kubelet、kube-controller-manager、kube-scheduler、etcd 配置证书与证书颁发机构,禁止明文或自签滥用。
- 加固 API Server:仅开放必要接口与鉴权方式;对外最小化暴露;启用审计日志;谨慎开启 profiling。
- 加固 kube-scheduler 与 kube-controller-manager:
- 将 –profiling 设为 false;
- 将 –address 绑定到 127.0.0.1(或通过安全通道访问),减少攻击面。
- 加固 kubelet(每个节点):
- –anonymous-auth=false;
- –authorization-mode=Webhook/RBAC(禁用 AlwaysAllow);
- 启用 –client-ca-file 做客户端证书校验;
- –read-only-port=0;
- –tls-cert-file / --tls-private-key-file 配置服务端证书;
- 启用 RotateKubeletServerCertificate / --rotate-certificates 做证书自动轮换;
- –protect-kernel-defaults=true。
- 加固 Etcd:
- 客户端与对等通信均启用 TLS;
- –client-cert-auth=true、对等端 –peer-client-cert-auth=true;
- 禁止 –auto-tls / --peer-auto-tls;
- 为 API Server 与 Etcd 使用不同的 CA/授权证书;
- 保护 etcd 数据目录与配置 的文件权限与所有权。
三 认证授权与准入控制
- 启用 RBAC,遵循最小权限原则:按命名空间与职责划分角色,避免使用过于宽泛的 ClusterRoleBinding;定期审计权限分配。
- 使用 准入控制器 提升“上线即安全”:
- 镜像策略准入(ImagePolicyWebhook)拦截未授权/未扫描镜像;
- 在 Kubernetes v1.21+ 使用 Pod Security Admission(PSA) 替代已弃用的 PodSecurityPolicy(PSP),在命名空间级设置 restricted 等安全基线;
- 启用 NodeRestriction 准入插件,限制 kubelet 仅能修改自身节点对象。
- 启用 Kubelet 证书自动轮换(如 kubeadm 流程支持),减少长期凭据暴露风险。
四 网络与运行时安全
- 部署支持 NetworkPolicy 的 CNI 插件(如 Calico、Cilium),为命名空间与业务标签定义默认拒绝(default-deny)策略,仅对白名单流量放通,实现命名空间与服务间最小连通。
- 对外暴露最小化:仅暴露 Ingress 或必要 Service(NodePort/LoadBalancer);为入口流量配置 WAF/限流/认证。
- 镜像与供应链安全:优先使用私有镜像仓库;对镜像进行漏洞扫描(如 Trivy、Clair、Kube-bench 等);避免 latest 标签,使用不可变镜像版本。
- 容器运行时与 Pod 安全:
- 以非 root 用户运行容器(securityContext.runAsNonRoot);
- 禁止特权容器(securityContext.privileged=false);
- 按需保留必要 Linux Capabilities,禁用不必要的 allowPrivilegeEscalation;
- 设置 readOnlyRootFilesystem=true、只读挂载敏感目录;
- 限制 HostPath 使用范围与权限。
五 运维监控与持续合规
- 启用 审计日志,集中采集并保留关键操作与异常事件;为 API Server、kubelet、etcd 配置合适的审计级别与策略。
- 部署 监控与告警(如 Prometheus + Grafana)与集中日志(如 ELK/EFK),对异常指标与日志模式设置告警。
- 定期执行配置基线核查与渗透测试:使用 kube-bench 检查控制面与节点安全基线,使用 kube-hunter 做集群外部攻击面评估,使用 Kubescape 做合规与风险可视化扫描。
- 建立备份与恢复机制(如 etcd 快照、应用与配置备份),定期演练恢复流程;保持 Kubernetes 与 Debian 的持续更新与补丁流程。