Kube-bench
kube-bench — это инструмент, который проверяет безопасность развертывания Kubernetes, выполняя проверки, описанные в CIS Kubernetes Benchmark .
Тесты настраиваются с помощью файлов YAML, что позволяет легко обновлять этот инструмент по мере развития спецификаций тестов.
Быстрый старт на kubernetes
1. Получите манифест универсальной проверки для нужной ветки и версии. (Другие варианты проверок можно найти в апрстимном репозитории тут)
$ curl -O https://altlinux.space/cloud/manifests/raw/branch/master/kube-bench/sisyphus/latest/job.yaml
2. Примените манифест
$ kubectl apply -f job.yaml
3. Проверьте, что проверка выполнилась.
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
kube-bench-5vrvf 0/1 Completed 0 19h
4. Получите репорт о проверке.
$ kubectl logs kube-bench-5vrvf > kube-bench.report
5. Если статус Error вместо Completed, то получить ошибку можно той же командой чтения логов.
$ kubectl logs kube-bench-5vrvf
6. Uninstall
$ kubectl delete -f job.yaml
Особенности на ALT Оркестрации (talos)
Для ALT Оркестрации добавлен отдельный манифест репорта, что связанно с составом функциональности, входящей в систему продукта.
https://altlinux.space/cloud/manifests/raw/branch/master/kube-bench/<branch>/<version>/job-talos.yaml
Так как на ALT Оркестрации есть встроенные настройки привилегий для namespace'ов, необходимо создавать job.yaml в стандартном kube-system или создать новый namespace и установить ей нужный лэйбл. Проверить admissions в системе можно, прочитав конфиг.
$ talosctl cat /system/config/kubernetes/kube-apiserver/admission-control-config.yaml -n alt-orchestra-c-1.zvirt.test
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- configuration:
apiVersion: pod-security.admission.config.k8s.io/v1alpha1
defaults:
audit: restricted
audit-version: latest
enforce: baseline
enforce-version: latest
warn: restricted
warn-version: latest
exemptions:
namespaces:
- kube-system
runtimeClasses: []
usernames: []
kind: PodSecurityConfiguration
name: PodSecurity
path: ""
В данном случае понадобится лэйбл pod-security.kubernetes.io/enforce: Privileged
Документация по admission, по security-standards.