
Kubernetes が CIS Kubernetes Benchmark で定義されているセキュリティのベストプラクティスに従ってデプロイされているかどうかを確認します。
kube-bench は、CIS Kubernetes Benchmark に文書化されたチェックを実行することで、Kubernetes が安全にデプロイされているかどうかをチェックするツールです。
テストは YAML ファイルで設定されるため、テスト仕様の進化に合わせてこのツールを簡単に更新できます。

Trivy は、オールインワンのクラウドネイティブセキュリティスキャナーであり、Kubernetes Operator としてクラスター内にデプロイできます。 Trivy CLI と Trivy Operator の両方は、他の多くの機能に加えて、CIS Kubernetes Benchmark スキャンをサポートしています。
kube-bench を実行するには複数の方法があります。 kube-bench は Pod 内で実行できますが、実行中のプロセスをチェックするためにホストの 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
# ジョブが完了するまで数秒待ちます
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kube-bench-j76s9 0/1 Completed 0 11s
# 結果は Pod のログに保存されます
kubectl logs kube-bench-j76s9
[INFO] 1 Master Node Security Configuration
[INFO] 1.1 API Server
...
詳細やさまざまな実行方法については、ドキュメント を参照してください。
kube-bench は CIS Kubernetes Benchmark を可能な限り忠実に実装しています。kube-bench が Benchmark に記載されているテストを正しく実装していない場合は、ここで問題を報告してください。Benchmark 自体の問題(たとえば、不適切と思われるテスト)を報告するには、CIS コミュニティ に参加してください。
Kubernetes のリリースと CIS benchmark のリリースの間には一対一の対応関係はありません。異なる benchmark のリリースでカバーされる Kubernetes のリリースを確認するには、CIS Kubernetes Benchmark サポート を参照してください。
デフォルトでは、kube-bench はマシン上で実行されている Kubernetes のバージョンに基づいて実行するテストセットを決定します。
コントリビューションを行う前に、コントリビューションガイド をお読みください。 PR や問題報告を歓迎します。
今後は、CIS Benchmark の新しいリリースをサポートするために kube-bench のアップデートをリリースする予定です。これらは Kubernetes のリリースほど頻繁にはリリースされないことに注意してください。