Training Module

Kubernetes Admission Controllers & Policy Engines — Kyverno vs. OPA Gatekeeper

Dieses 120-Minuten-Modul löst eine Ankündigung ein, die im Modul “Kubernetes Security Vertiefung” bewusst offen blieb: Pod Security Admission, das ihr dort kennengelernt habt, kann nur die drei vordefinierten Profile privileged/baseline/ restricted durchsetzen – für eine eigene Regel wie “jeder Pod braucht ein Label team” reicht das nicht. Ihr startet deshalb mit dem gemeinsamen Unterbau: Sowohl Pod Security Admission als auch die beiden Policy-Engines dieses Moduls klinken sich in denselben Admission-Webhook-Prozess ein – ein Objekt wird geprüft, bevor es angelegt wird. Dieser Mechanismus wird hier als bekannt vorausgesetzt und nicht erneut erklärt. Danach stellt ihr Kyverno und OPA Gatekeeper einander konzeptionell gegenüber: Kyverno beschreibt eine Regel als reine ClusterPolicy in YAML mit Pattern-Matching gegen das Objekt – wer Kubernetes-Manifeste lesen kann, liest auch eine Kyverno-Policy. OPA Gatekeeper trennt die Regel in zwei Objekte: eine ConstraintTemplate mit der eigentlichen Logik in der Policy-Sprache Rego, und eine Constraint-Instanz, die diese Logik mit konkreten Parametern auf bestimmte Objekte anwendet – wiederverwendbare Logik, getrennt von ihrer Konfiguration. Im ersten Hands-on installiert ihr Kyverno und schreibt eine ClusterPolicy, die genau eine Regel durchsetzt: jeder Pod braucht das Label team, sonst wird er live abgewiesen. Im zweiten Hands-on löst ihr dieselbe Regel mit OPA Gatekeeper – derselbe Regelverstoß, live gesehen, aber über ConstraintTemplate und Rego statt über ein YAML-Pattern. Genau dieser direkte Vergleich an derselben Regel macht den Unterschied zwischen beiden Ansätzen greifbar, statt ihn nur zu behaupten. Zum Abschluss ein kurzer Ausblick ohne eigenes Hands-on auf CI/CD-Policy-Gates – dieselbe Regel bereits vor dem Deployment in der Pipeline prüfen, statt erst am Cluster – vertieft im eigenständigen Aufbaumodul CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest. Explizit ohne Tool-Empfehlung: Dieses Modul sagt nicht, welche der beiden Engines “Standard” ist oder einen größeren Marktanteil hat – das bleibt unbelegt und unbenannt, ihr lernt beide Ansätze gleichrangig kennen und entscheidet selbst. Voraussetzung ist das Modul “Kubernetes Security Vertiefung” – RBAC/ServiceAccounts aus “Kubernetes Administration” und der Admission-Mechanismus selbst gelten als bekannt und werden hier nicht wiederholt. Die Session läuft vollständig lokal über Minikube, ohne Cloud-Account und ohne Kostenwirkung.

Format

120 Minuten, live (remote oder vor Ort), Input & zwei Hands-on-Übungen

Teilnehmende

Ops/Admins und Platform-Teams, die eigene Cluster-Regeln durchsetzen wollen, die über die drei festen Pod-Security-Profile hinausgehen

Voraussetzungen

Abgeschlossenes Modul “Kubernetes Security Vertiefung” oder gleichwertige Vorkenntnisse zu Pod Security Admission, lauffähige lokale Docker-Umgebung für Minikube

Warum dieses Training für deine Organisation wirkt

Drei feste Profile reichen selten aus

Pod Security Admission durchsetzt privileged/ baseline/restricted – aber nicht “jedes Image muss aus unserer Registry stammen” oder “jedes Deployment braucht mindestens zwei Replicas”. Für eigene Regeln braucht es eine Policy-Engine.

Zwei Sprachen, ein Mechanismus

Kyverno bleibt bei YAML, das ihr aus jedem Manifest kennt. OPA Gatekeeper trennt Logik (Rego) von Konfiguration (Constraint). Wer beide live gegen dieselbe Regel gesehen hat, wählt begründet statt nach Bauchgefühl.

Ablehnung vor dem Schaden, nicht danach

Beide Engines lehnen einen Regelverstoß ab, bevor der Pod überhaupt geplant wird – derselbe Grundsatz, den ihr bereits von Pod Security Admission kennt, jetzt für Regeln, die ihr selbst schreibt.

Was Teilnehmende mitnehmen

  • Den gemeinsamen Admission-Webhook-Mechanismus benennen, den Pod Security Admission und beide Policy-Engines gleichermaßen nutzen – ohne ihn erneut im Detail herzuleiten.
  • Kyverno und OPA Gatekeeper konzeptionell unterscheiden: YAML-ClusterPolicy mit Pattern-Matching gegen ConstraintTemplate (Rego-Logik) plus Constraint (Parameter-Instanz).
  • Kyverno installieren und eine ClusterPolicy schreiben, die ein Pflicht-Label durchsetzt, live gegen einen Verstoß und einen konformen Pod testen.
  • OPA Gatekeeper installieren und dieselbe Pflicht-Label-Regel als ConstraintTemplate plus Constraint nachbauen, live gegen denselben Regelverstoß testen.
  • Beide Ansätze anhand derselben Regel direkt vergleichen, statt sich auf eine Behauptung zu verlassen – ohne Tool-Empfehlung oder Marktanteilsangabe.
  • CI/CD-Policy-Gates als Ausblick einordnen: dieselbe Regel bereits in der Pipeline statt erst am Cluster prüfen – bewusst ohne eigenes Hands-on.

Für wen dieses Modul ideal ist

  • • Ops/Admins mit abgeschlossenem Modul “Kubernetes Security Vertiefung” oder gleichwertigen Vorkenntnissen zu Pod Security Admission
  • • Platform-Teams, die demnächst eigene Cluster-Regeln (Registry-Herkunft, Pflicht-Labels, Replica-Mindestzahl) durchsetzen sollen, die keine feste Pod-Security-Standard-Regel abdeckt
  • • Alle, die vor einer Tool-Entscheidung zwischen Kyverno und OPA Gatekeeper beide Ansätze einmal selbst gegen dieselbe Regel gesehen haben wollen

Rahmendaten

  • • Dauer: 120 Minuten live (remote oder vor Ort)
  • • Format: Input, Live-Demo, zwei Hands-on-Übungen (Kyverno-ClusterPolicy, OPA-Gatekeeper-ConstraintTemplate) gegen dieselbe Regel, CI/CD-Gate-Ausblick als reiner Konzeptteil
  • • Voraussetzungen: abgeschlossenes Modul “Kubernetes Security Vertiefung”, lauffähige lokale Docker-Umgebung für Minikube, keine Cloud-Kostenwirkung

Modulaufbau & Agenda

  1. Admission-Mechanismus als gemeinsamer Unterbau (15 min): Rückverweis auf den in “Kubernetes Security Vertiefung” bereits gelehrten Admission-Webhook-Prozess, den Pod Security Admission und beide Policy-Engines gleichermaßen nutzen – hier nicht erneut hergeleitet.

  2. Kyverno vs. OPA Gatekeeper: zwei Wege, dieselbe Frage zu beantworten (15 min): YAML-ClusterPolicy mit Pattern-Matching gegen ConstraintTemplate (Rego-Logik) plus Constraint (Parameter-Instanz), ohne Tool-Empfehlung.

  3. Hands-on 1: Kyverno ClusterPolicy gegen einen Regelverstoß (30 min, Hands-on): Kyverno installieren, eine ClusterPolicy mit Pflicht-Label team schreiben, einen Pod ohne Label live abgewiesen sehen, danach einen konformen Pod anwenden.

  4. Hands-on 2: OPA Gatekeeper gegen dieselbe Regel (30 min, Hands-on): Kyverno aufräumen, OPA Gatekeeper installieren, dieselbe Pflicht-Label-Regel als ConstraintTemplate plus Constraint nachbauen, denselben Regelverstoß live abgewiesen sehen.

  5. Einordnung & Ausblick CI/CD-Policy-Gates (15 min): beide Ansätze direkt gegenüberstellen, danach ein Ausblick ohne Hands-on: dieselbe Regel bereits in der Pipeline statt erst am Cluster prüfen – vertieft im Aufbaumodul CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest.

  6. Puffer/Q&A (15 min): offene Fragen, individuelle Vertiefung je nach Governance-Anforderung der Teilnehmenden.

Dieses Modul setzt das Aufbaumodul Kubernetes Security Vertiefung — Pod Security Admission & Secrets-Härtung voraus. Der dort gelehrte Admission-Webhook-Mechanismus (ein Objekt wird geprüft, bevor es angelegt wird) und die Pod Security Standards als feste Referenz gelten hier als bekannt und werden nicht erneut eingeführt – dieses Modul baut den Rückverweis explizit ein, statt den Mechanismus zu wiederholen.

RBAC, ServiceAccount, Role/ RoleBinding aus dem Modul Kubernetes Administration — RBAC, Node-Betrieb und Cluster-Netzwerk gelten ebenfalls als bekannt. Die Installationsmanifeste von Kyverno und OPA Gatekeeper bringen die dafür nötigen ClusterRole/ClusterRoleBinding-Objekte bereits fertig mit – Teilnehmende schreiben in diesem Modul keine eigene RBAC-Konfiguration, das ist nicht Ziel der Übung.

Was dieses Modul bewusst nicht behandelt: die Integration einer Policy-Prüfung in eine CI/CD-Pipeline (z. B. Kyverno CLI oder conftest als Pre-Merge-Gate) – das behandelt das eigenständige Aufbaumodul CI/CD Policy Gates — Policy-as-Code vor dem Deployment mit Kyverno-CLI & conftest, hier nur als Ausblick ohne eigenes Hands-on angesprochen. Ebenfalls nicht Thema: eine Tool-Empfehlung zwischen Kyverno und OPA Gatekeeper oder eine Aussage zu Marktanteilen – dieses Modul zeigt beide Ansätze gleichrangig und überlässt die Entscheidung eurer Organisation.

Hands-on Inhalte (Auszug)

Kyverno installieren & ClusterPolicy schreiben

  • Kyverno per Helm-Chart in den Namespace kyverno installieren und den Admission-Controller-Rollout abwarten
  • Eine ClusterPolicy anwenden, die für jeden Pod das Label team per YAML-Pattern erzwingt

Regelverstoß mit Kyverno live sehen

  • Einen Pod ohne team-Label anwenden und die Kyverno-Admission-Fehlermeldung live lesen
  • Denselben Pod mit gesetztem Label erneut anwenden und den Erfolg bestätigen – gleiche Policy, gleicher Namespace, ein Label entscheidet

OPA Gatekeeper installieren & ConstraintTemplate schreiben

  • Kyverno aufräumen, OPA Gatekeeper per offiziellem Manifest installieren und den Controller-Rollout abwarten
  • Eine ConstraintTemplate mit Rego-Logik für Pflicht-Labels definieren, danach eine Constraint-Instanz mit dem Parameter team anwenden

Dieselbe Regelverletzung mit Gatekeeper live sehen

  • Denselben Pod ohne team-Label anwenden und die Gatekeeper-Admission-Fehlermeldung mit der Kyverno-Fehlermeldung von eben vergleichen
  • Denselben konformen Pod erneut anwenden und den Erfolg bestätigen – identische Regel, zwei unterschiedliche Formulierungen

Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der ersten ClusterPolicy/Constraint bis zum live bestätigten Regelverstoß) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.

Bereit, das Modul zu buchen?

Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.

Academy Briefing anfragen