kube-bench是Aqua Security开发的开源工具,用于检测Kubernetes集群是否符合CIS安全基准。它通过自动化检查控制平面、节点配置和系统设置,输出各检查项的PASS、FAIL、WARN或INFO状态,并提供修复建议。工具以容器或二进制方式运行,不修改系统配置,仅用于审计,适合生产环境。推荐使用容器方式部署,通过挂载宿主机目录并以特权模式运行,可分别对master或node节点执行扫描。扫描结果包含CIS条款编号,便于对照官方文档,重点关注FAIL项如etcd权限、RBAC启用、Kubelet匿名访问等。建议将kube-bench集成到CI/CD或巡检流程,通过定时任务、JSON输出、Prometheus监控等方式实现持续合规评估,提升集群安全性。

在 Kubernetes 集群运维中,安全基线合规性至关重要。kube-bench 是一个由 Aqua Security 开发的开源工具,专门用于检测 Kubernetes 集群是否符合 CIS(Center for Internet Security)制定的安全基准。它通过运行一系列检查项,帮助你识别配置风险并提升集群安全性。
什么是 kube-bench
kube-bench 是一个自动化扫描工具,依据 CIS Kubernetes Benchmark 文档中的建议,对控制平面组件、节点配置和系统设置进行逐项检查。它会输出哪些项已通过、哪些存在风险,并提供修复建议。
该工具以二进制或容器方式运行,不会修改系统配置,仅用于审计评估,适合在生产环境中使用。
如何部署和运行 kube-bench
kube-bench 可直接在节点上作为容器运行,也可以下载二进制文件本地执行。推荐使用容器方式避免依赖问题。
以下是在单个节点上运行 kube-bench 的基本步骤:
- 拉取官方镜像:docker pull aquasec/kube-bench:latest
- 确认当前节点角色(master 或 node)
- 以特权模式挂载宿主机的二进制目录和配置路径
- 运行容器并指定目标节点类型,例如检查工作节点:
如果检查 master 节点,添加 --master 参数:
docker run -it --rm \ --pid=host \ -v /etc:/etc:ro \ -v /var:/var:ro \ aquasec/kube-bench:latest --master理解扫描结果与常见问题
执行完成后,kube-bench 会输出详细报告,每条检查包含 PASS、FAIL、WARN 或 INFO 状态。
重点关注 FAIL 项,例如:
- etcd 数据目录未设置权限(应为 700)
- API Server 未启用 RBAC 认证
- Kubelet 匿名访问未关闭
- 日志记录未启用审计功能
每一项都会标明对应的 CIS 条款编号(如 1.2.1),可对照官方文档查阅具体要求。报告末尾还会给出总分统计,便于持续跟踪改进效果。
集成到 CI/CD 或定期巡检流程
为保持集群长期合规,建议将 kube-bench 加入日常巡检脚本或 CI/CD 流水线。
你可以:
- 编写定时任务(cron job)定期运行 kube-bench 并保存结果
- 将输出转为 JSON 格式以便程序解析:--output json
- 结合 Prometheus + Grafana 展示趋势变化
- 在 GitOps 流程中加入安全门禁,扫描不通过则阻止部署
对于多节点集群,可借助 Job 资源在每个节点上并行执行 kube-bench 容器,提高效率。
基本上就这些。合理使用 kube-bench 能显著提升 Kubernetes 安全水平,及时发现潜在配置漏洞。关键是定期运行并跟进修复问题项,让安全检查成为运维常态。










