Kyverno
Security-as-Code
Silnik polityk dla Kubernetes — polityki jako zasoby YAML (bez nowego języka).
Kyverno to silnik polityk zaprojektowany specjalnie dla Kubernetes. W odróżnieniu od OPA/Gatekeeper nie wymaga uczenia się osobnego języka (Rego) — polityki pisze się jako zwykłe zasoby Kubernetes w YAML. Działa jako admission controller: potrafi walidować, mutować, generować zasoby oraz weryfikować podpisy obrazów, egzekwując reguły zanim cokolwiek trafi do klastra.
Kiedy używać
- Chcesz policy-as-code dla Kubernetes bez wprowadzania nowego języka (zostajesz w YAML).
- Potrzebujesz nie tylko walidacji, ale też mutacji i generowania zasobów (np. domyślne sieci, limity, labelki).
- Egzekwujesz reguły w klastrze (admission) i/lub skanujesz manifesty w CI.
Przykład użycia
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata: { name: require-non-root }
spec:
validationFailureAction: Enforce
rules:
- name: check-runAsNonRoot
match: { any: [{ resources: { kinds: ["Pod"] } }] }
validate:
message: "kontener musi działać jako non-root"
pattern:
spec:
securityContext:
runAsNonRoot: true
# ta sama polityka jako bramka w CI (bez klastra)
kyverno apply policy/ --resource manifests/