kube-bench 检查什么
kube-bench 依据 CIS Kubernetes Benchmark 检查集群配置:控制面组件参数、etcd 配置、kubelet 参数、证书与密钥文件权限、审计配置等,可以在节点上本机运行,也可以 Job 形式在集群内跑。它给出的是配置项维度的结论,需要结合集群实际架构判断哪些项适用,托管集群与自建集群的处理方式并不相同。
基本信息
| 工具 | kube-bench |
|---|---|
| 基线来源 | CIS Kubernetes Benchmark |
| 执行方式 | 节点上本机运行,或以 Job 形式在集群内执行 |
| 常用参数 | --targets master,node 指定检查目标,--json 输出结构化结果 |
| 覆盖范围 | 控制面组件、etcd、kubelet、证书与密钥权限、Pod 安全相关配置 |
| 结果解读 | fail 项要按集群架构评估,托管集群部分项不适用 |
| 执行节奏 | 版本升级与集群变更后重新核查 |
检查域与关注点
| 检查域 | 关注点 | 说明 |
|---|---|---|
| 控制面组件 | 启动参数与权限 | 托管集群由云商负责 |
| etcd | 认证、加密与文件权限 | 自建集群必须核查 |
| kubelet | 认证授权、只读端口等参数 | 每个节点都要检查 |
| 证书与密钥 | 文件权限与属主 | 权限过宽容易被本地提权利用 |
| 审计配置 | 审计策略与日志路径 | 影响事后追溯能力 |
| Pod 安全 | 准入控制与权限配置 | 与工作负载配置联动 |
执行方式
执行方式
# 本机直接运行(在控制面节点上执行)
kube-bench run --targets master,node
# 只跑节点检查
kube-bench run --targets node
# 输出 JSON 报告,便于与历史结果对比
kube-bench run --targets node --json > kube-bench.json典型使用场景
- 自建集群上线前的基线核查
- 版本升级后的回归检查
- 合规审计的集群侧举证材料
- 节点配置漂移排查
- 安全加固方案的优先级排序
- 演练结束后复跑,确认改动没有被回滚
托管集群的控制面由云商负责,核查以节点与工作负载侧为主,控制面项只作对照参考,不必强求全绿,但要把不适用的项标注清楚。
照抄 fail 项去改控制面配置,在托管集群里往往既没有权限也没有必要。改动自建集群的控制面参数前,先确认官方文档支持范围与升级影响。