
Сканер времени выполнения с открытым исходным кодом для кластера k8s, выполняющий проверки безопасности на основе спецификации CIS Kubernetes Benchmark.
НОВИНКА!! результаты аудита теперь можно использовать как webhook через пользовательский плагин (используя go plugin)

git clone https://github.com/chen-keinan/kube-beacon
cd kube-beacon
make build
Запуск kube-beacon без флагов — выполнить все тесты:
./kube-beacon
Запуск kube-beacon с флагами — выполнить тесты по требованию:
Usage: kube-Beacon [--version] [--help] <command> [<args>]
Available commands are:
-r , --report : run audit tests and generate failure report
-i , --include: execute only specific audit test, example -i=1.2.3,1.4.5
-e , --exclude: ignore specific audit tests, example -e=1.2.3,1.4.5
-n , --node: execute audit tests on specific node, example -n=master,-n=worker
-s , --spec: execute specific audit tests spec, example -s=gke, default=k8s
-v , --version: execute specific audit tests spec version, example -v=1.1.0,default=1.6.0
Запуск тестов и создание отчёта о неудачных:
./kube-beacon -r
Запуск kube-beacon в виде pod в кластере k8s
Добавьте привязку роли кластера с ролью cluster-admin:
kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=default:default
cd jobs
kubectl apply -f k8s.yaml
kubectl apply -f gke.yaml
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default kube-beacon-sc8g9 0/1 Completed 0 111s
kube-system event-exporter-gke-8489df9489-skcvv 2/2 Running 0 7m24s
kube-system fluentd-gke-7d5sl 2/2 Running 0 7m6s
kube-system fluentd-gke-f6q5d 2/2 Running 0 6m59s
kubectl logs kube-beacon-sc8g9
kubectl delete clusterrolebinding default-admin
kubectl delete -f k8s.yaml
Kube-Beacon предоставляет hook для пользовательских плагинов Пример :
go build -buildmode=plugin -o=~/<plugin folder>/bench_plugin.so /<plugin folder>/bench_plugin.go
cp /<plugin folder>/bench_plugin.so ~/.beacon/plugins/compile/bench_plugin.so
Примечание: Плагин и бинарник должны быть скомпилированы в одинаковом окружении Linux