Kyverno: policy engine nativo Kubernetes

Kyverno (maggio 2019) di Nirmata: policy engine Kubernetes-native basato su YAML (non Rego come OPA). Validation, mutation, generation, image verification. Alternativa low-barrier a OPA Gatekeeper.

Open SourceCybersecurity KyvernoNirmataKubernetesPolicyCNCFSecurityOpen Source

Policy senza imparare Rego

OPA/Gatekeeper richiede padronanza di Rego, un linguaggio dichiarativo Datalog-ispirato con curva di apprendimento significativa. Molti team Kubernetes vogliono policy as YAML, con semantica K8s nativa, senza dover imparare un nuovo linguaggio da zero.

Il rilascio

Kyverno è pubblicato da Nirmata (Sanjay Ramanathan, Jim Bugwadia) nel maggio 2019. Licenza Apache 2.0. Scritto in Go.

Filosofia

  • Policy come CRD YAML
  • Semantica K8smatch, resources, kind
  • Familiare a chi conosce RBAC, NetworkPolicy, etc.
  • Validating, Mutating, Generating admission controller + policy reporter
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata: { name: require-labels }
spec:
  validationFailureAction: Enforce
  rules:
    - name: check-team-label
      match:
        resources:
          kinds: [Pod, Deployment]
      validate:
        message: "label 'team' is required"
        pattern:
          metadata:
            labels:
              team: "?*"

Caratteristiche

  • Validation — blocca o warn su risorse non conformi
  • Mutation — aggiunge/modifica campi automaticamente (es. sidecar injection, default resource limits)
  • Generation — crea risorse derivate (NetworkPolicy per ogni Namespace)
  • Image verification — integrazione Cosign/Sigstore per verifica firma container
  • Cleanup policies — cancellazione risorse scadute
  • Policy Reports — inventory conformità per cluster
  • Policy exceptions — eccezioni esplicite per risorse legacy
  • ValidatingAdmissionPolicy integrazione (K8s 1.30+ CEL native)

Kyverno vs OPA Gatekeeper

KyvernoOPA Gatekeeper
LinguaggioYAML K8s-nativeRego
Curva apprendimentoBassaAlta
Generation/MutationNo (solo validate)
Use case non-K8sNoSì (Terraform, API, ecc.)
PerformanceOttimaOttima

Policy pack curati

  • Kyverno Policies — repo ufficiale con 100+ policy pronte (PodSecurity, best practice, compliance)
  • PSP replacement — policy che replicano Pod Security Policy (deprecate K8s 1.25+)
  • PCI DSS, CIS, NSA/CISA — baseline conformità

Nel contesto italiano

Kyverno è molto adottato in:

  • Banche per policy baseline conformità (risorse, immagini, secret)
  • PA digitale — vincoli su namespace, label obbligatorie
  • MSP — policy di default su cluster clienti
  • Sanità — conformità regolamenti dati sensibili
  • Team platform engineering come alternativa a Gatekeeper

Combinato spesso con Cosign/Sigstore per verifica firma immagini container in ambienti regolamentati.


Riferimenti: Kyverno (maggio 2019). Nirmata (Sanjay Ramanathan, Jim Bugwadia). Licenza Apache 2.0. Scritto in Go. Policy YAML K8s-native. Validation, Mutation, Generation. Cosign integration.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi