aquasec/kube-benchkube-bench是一款基于CIS Kubernetes Benchmark的安全检查工具,用于验证Kubernetes集群是否按照安全最佳实践部署。该Docker镜像包含kube-bench的Go语言应用程序,可便捷地在主机或Kubernetes集群中运行,执行安全合规性检查。
kube-bench可作为Kubernetes Job运行,需挂载主机必要目录以访问配置文件和进程信息。执行以下命令部署官方提供的job.yaml:
bash# 应用Job配置 kubectl apply -f [***] # 查看Pod状态 kubectl get pods | grep kube-bench # 等待Pod状态变为Completed后,查看检查结果 kubectl logs <kube-bench-pod-name>
日志输出按CIS基准章节组织,包含检查项状态及说明:
[INFO] 1 Master Node Security Configuration [INFO] 1.1 API Server [PASS] 1.1.1 Ensure that the --anonymous-auth flag is set to false (Automated) [FAIL] 1.1.2 Ensure that the --authorization-mode flag includes Node (Automated) ...
在非Kubernetes环境中,通过Docker直接在主机运行,需挂载主机PID命名空间和相关目录:
bashdocker run --rm \ --pid=host \ -v /var/lib/kubelet:/var/lib/kubelet \ -v /etc/kubernetes:/etc/kubernetes \ -v /etc/systemd:/etc/systemd \ -v /lib/systemd:/lib/systemd \ -v /srv/kubernetes:/srv/kubernetes \ aquasec/kube-bench
参数说明:
--pid=host:访问主机PID命名空间,用于检查运行中的进程-v:挂载主机目录,确保kube-bench能读取Kubernetes配置文件(如/etc/kubernetes)、系统服务配置(如/etc/systemd)等K8S_VERSION:手动指定Kubernetes版本(如1.28),覆盖自动检测结果BENCHMARK_VERSION:指定CIS基准版本(如cis-1.8),需与Kubernetes版本兼容OUTPUT_FORMAT:指定输出格式,支持text(默认)、json、csv示例:指定Kubernetes 1.28版本和JSON输出格式
bashdocker run --rm \ --pid=host \ -v /var/lib/kubelet:/var/lib/kubelet \ -v /etc/kubernetes:/etc/kubernetes \ -e K8S_VERSION=1.28 \ -e OUTPUT_FORMAT=json \ aquasec/kube-bench
通过挂载自定义YAML测试文件,修改或扩展检查项。将自定义配置目录挂载至容器/etc/kube-bench/cfg:
bashdocker run --rm \ --pid=host \ -v /var/lib/kubelet:/var/lib/kubelet \ -v /path/to/custom/cfg:/etc/kube-bench/cfg \ # 挂载自定义配置目录 aquasec/kube-bench
kube-bench测试集依赖CIS Kubernetes Benchmark版本,二者并非与Kubernetes版本同步发布。具体映射关系参考CIS Kubernetes Benchmark支持文档。
kube-bench默认通过检测主机Kubernetes版本自动选择测试集。如需手动指定,可通过K8S_VERSION或BENCHMARK_VERSION环境变量覆盖。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务