kube-bench 是一种工具,可通过运行CIS Kubernetes Benchmark中记录的检查来检查 Kubernetes 是否已安全部署。
测试使用 YAML 文件配置,使该工具易于随着测试规范的发展而更新。
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
有多种运行 kube-bench 的方法。您可以在 pod 内运行 kube-bench,但它需要访问主机的 PID 命名空间以检查正在运行的进程,以及访问主机上存储配置文件和其他文件的某些目录。
提供的job.yaml
文件可用于将测试作为作业运行。例如:
$ kubectl apply -f job.yaml
job.batch/kube-bench created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kube-bench-j76s9 0/1 ContainerCreating 0 3s
# Wait for a few seconds for the job to complete
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kube-bench-j76s9 0/1 Completed 0 11s
# The results are held in the pod's logs
kubectl logs kube-bench-j76s9
[INFO] 1 Master Node Security Configuration
[INFO] 1.1 API Server
...
有关更多信息和运行 kube-bench 的不同方法,请参阅文档
kube-bench尽可能接近地实现CIS Kubernetes Benchmark 。如果 kube-bench 没有按照 Benchmark 中的描述正确执行测试,请在这里提出问题。要报告基准本身的问题(例如,您认为不合适的测试),请加入CIS 社区。
Kubernetes 版本和 CIS 基准测试版本之间没有一对一的映射。请参阅CIS Kubernetes 基准支持,了解不同版本的基准涵盖了哪些 Kubernetes 版本。
默认情况下,kube-bench 会根据机器上运行的 Kubernetes 版本来确定要运行的测试集。
[/hidecontent]