← Katalog
E I A C

Kyverno

Security-as-Code

Silnik polityk dla Kubernetes — polityki jako zasoby YAML (bez nowego języka).

★ 6300 Apache-2.0 #security#policy-as-code#kubernetes#admission

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/

Warto wiedzieć

  • Projekt CNCF; naturalny wybór, gdy zespół woli YAML zamiast Rego z OPA.
  • Uzupełnia skanery jak Checkov/Trivy; w CI rolę testów konfiguracji pełni też Conftest.