Discover / Security

kube-bench

by aquasecurityGo

Checks Kubernetes clusters against the CIS Benchmark.

Toolexperimental

Maturity: experimental because latest release v0.15.6 is pre 1.0. Derived from release and commit history, not a rating.

Stars
8.1k
Forks
1.3k
Downloads / mo
Last commit
2026-07-30
License
Apache-2.0
Open issues
95

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · high confidence

Cluster operators cannot tell whether control plane and node settings match the CIS Kubernetes hardening benchmark.

Use it when

When you need a CIS Kubernetes Benchmark report for a specific cluster, run as a job or pod inside it.

Not the right pick when

Wrong pick if you want broader continuous scanning, since the README points to Trivy and the Trivy Operator for that.

Capabilities

  • runs the checks documented in the CIS Kubernetes Benchmark
  • tests are configured with YAML files so they are easy to update
  • runs inside a pod or as a Kubernetes job
  • selects the test set based on the running Kubernetes version
  • job manifests supplied for EKS, GKE, AKS, IKS and TKGI

Requirements

  • access to the host's PID namespace when run inside a pod
  • access to host directories where config files are stored

Cost: Free and open source

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

Has docsDocker imageCI configured

Detected from the actual files in the repository root.

Latest release v0.15.6

Published 2026-06-01

Changelog

  • 820705a bump up go version to 1.26.3 (#2108)

Tags

README

[![GitHub Release][release-img]][release]

[![Downloads][download]][release]

[![Docker Pulls][docker-pull]][docker]

[![Go Report Card][report-card-img]][report-card]

Build Status

License

[![Coverage Status][cov-img]][cov]

[download]: https://img.shields.io/github/downloads/aquasecurity/kube-bench/total?logo=github

[release-img]: https://img.shields.io/github/release/aquasecurity/kube-bench.svg?logo=github

[release]: https://github.com/aquasecurity/kube-bench/releases

[docker-pull]: https://img.shields.io/docker/pulls/aquasec/kube-bench?logo=docker&label=docker%20pulls%20%2F%20kube-bench

[docker]: https://hub.docker.com/r/aquasec/kube-bench

[cov-img]: https://codecov.io/github/aquasecurity/kube-bench/branch/main/graph/badge.svg

[cov]: https://codecov.io/github/aquasecurity/kube-bench

[report-card-img]: https://goreportcard.com/badge/github.com/aquasecurity/kube-bench

[report-card]: https://goreportcard.com/report/github.com/aquasecurity/kube-bench

<img src="docs/images/kube-bench.png" width="200" alt="kube-bench logo">

kube-bench is a tool that checks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark.

Tests are configured with YAML files, making this tool easy to update as test specifications evolve.

Kubernetes Bench for Security

CIS Scanning as part of Trivy and the Trivy Operator

Trivy, the all in one cloud native security scanner, can be deployed as a Kubernetes Operator inside a cluster.

Both, the Trivy CLI, and the Trivy Operator support CIS Kubernetes Benchmark scanning among several other features.

Quick start

There are multiple ways to run kube-bench.

You can run kube-bench inside a pod, but it will need access to the host's PID namespace in order to check the running processes, as well as access to some directories on the host where config files and other files are stored.

The supplied job.yaml file can be applied to run the tests as a job. For example:


$ 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
...

For more information and different ways to run kube-bench see documentation

Please Note

  1. kube-bench implements the CIS Kubernetes Benchmark as closely as possible. Please raise issues here if kube-bench is not correctly implementing the test as described in the Benchmark. To report issues in the Benchmark itself (for example, tests that you believe are inappropriate), please join the CIS community.
  1. There is not a one-to-one mapping between releases of Kubernetes and releases of the CIS benchmark. See CIS Kubernetes Benchmark support to see which releases of Kubernetes are covered by different releases of the benchmark.

By default, kube-bench will determine the test set to run based on the Kubernetes version running on the machine.

  • see the following documentation on Running kube-bench for more details.

Contributing

Kindly read Contributing before contributing.

We welcome PRs and issue reports.

Roadmap

Going forward we plan to release updates to kube-bench to add support for new releases of the CIS Benchmark. Note that these are not released as frequently as Kubernetes releases.

Related tools