Training Module
Kubernetes Security Vertiefung — Pod Security Admission & Secrets-Härtung
In diesem 90-Minuten-Modul verlässt ihr die Workload-lokale Sicht auf
einzelne Container und wechselt zur Namespace-weiten
Policy-Ebene. Los geht es mit den Pod Security
Standards als Konzept: den drei Profilen
privileged, baseline und
restricted, und der Abgrenzung, die den Einstieg trägt –
ein securityContext (aus dem Modul Anwendungsdesign
bereits bekannt) wirkt pro Workload, eine Pod-Security-Policy wirkt
pro Namespace und trifft jeden Pod darin, egal wer
ihn einreicht. Im Hands-on setzt ihr genau dieses Bordmittel ein:
Mit dem Label
pod-security.kubernetes.io/enforce=restricted auf einem
Namespace seht ihr live, wie ein Pod mit privileged: true
und ohne runAsNonRoot vom Admission-Controller
abgewiesen wird, bevor er überhaupt geplant wird – danach ordnet ihr
den Unterschied zu den Modi warn und audit
ein. Der dritte Block geht über Base64 hinaus, das ihr aus dem Modul
Workloads & Konfiguration bereits als “kodiert, nicht verschlüsselt”
kennt: Encryption at Rest für Secrets über eine
EncryptionConfiguration am API-Server, als Konzept-Demo
direkt gegen etcd – ohne Cloud-KMS, dazu eine
Abgrenzung zu Vault/External-Secrets-Operator als eigenständigem
Betriebsmodell. Zum Abschluss ein bewusster Ausblick ohne eigenes
Hands-on: eingebaute Pod Security Admission gegen Policy-Engines wie
Kyverno oder OPA Gatekeeper –
Scope-Grenze offen benannt, ohne unbelegte Tool-Empfehlung. Das
eigene, mehrstündige Hands-on-Modul dazu gibt es inzwischen: siehe
Kubernetes Admission Controllers & Policy Engines — Kyverno vs. OPA Gatekeeper.
Voraussetzung sind die Module “Kubernetes Administration” (RBAC/
ServiceAccounts) und “Kubernetes Anwendungsdesign” (
securityContext) – beide werden hier vorausgesetzt und
nicht wiederholt. Die Session läuft weiterhin vollständig lokal über
Minikube oder kind, ohne Cloud-Account und ohne Kostenwirkung.
Format
90 Minuten, live (remote oder vor Ort), Input & Hands-on
Teilnehmende
Ops/Admins, die Namespace-weite Security-Policies durchsetzen und Secrets über Base64 hinaus absichern wollen
Voraussetzungen
Abgeschlossene Module “Kubernetes Administration” und “Kubernetes Anwendungsdesign” oder gleichwertige Vorkenntnisse, lauffähige lokale Docker-Umgebung für Minikube oder kind
Warum dieses Training für deine Organisation wirkt
Vom Workload zur Namespace-Policy
Ein securityContext schützt nur den Pod, in dem er
steht – ein vergessenes Feld in einem einzigen Manifest reicht
für eine Lücke. Pod Security Admission durchsetzt dieselbe
Härtung für jeden Pod in einem Namespace, unabhängig davon, wer
ihn schreibt.
Ablehnung ist kein Fehler, sondern die Funktion
Wer restricted nur aus der Dokumentation kennt,
unterschätzt, wie hart die Durchsetzung tatsächlich ist. Wer
live sieht, wie kubectl apply mit einer klaren
Admission-Fehlermeldung abbricht, erkennt den Unterschied zu
warn/audit sofort.
Base64 war nie das Ende der Secrets-Geschichte
“Ein Secret ist Base64-kodiert, nicht verschlüsselt” ist der
Merksatz aus dem Workloads-Modul. Dieses Modul zeigt, was
direkt gegen etcd tatsächlich mit Encryption at
Rest passiert – vorher und nachher, live vergleichbar.
Was Teilnehmende mitnehmen
- Die drei Pod-Security-Standards-Profile
privileged/baseline/restrictedbenennen und gegen den bereits bekanntensecurityContextabgrenzen: Workload-lokal vs. Namespace-weite Policy. - Einen Namespace mit dem Label
pod-security.kubernetes.io/enforce=restrictedversehen und live erleben, wie ein Pod mit privilegierten Feldern vom Admission-Controller abgewiesen wird, bevor er läuft. - Den Unterschied zwischen den Modi
enforce,warnundauditeinordnen und begründen, wann welcher Modus sinnvoll ist. - Ein zuvor abgewiesenes Pod-Manifest gezielt um
securityContext(runAsNonRoot: true,capabilities.drop: [ALL]) ergänzen, bis es dierestricted-Policy besteht. - Eine
EncryptionConfigurationmit demaescbc-Provider konzeptionell einordnen und den Unterschied zwischen einem Secret vor und nach aktivierter Encryption at Rest direkt gegenetcdnachvollziehen. - Encryption at Rest von Vault/External-Secrets-Operator als eigenständigem Betriebsmodell abgrenzen – beide lösen unterschiedliche Probleme, keines ersetzt das andere.
- Eingebaute Pod Security Admission gegen Policy-Engines wie Kyverno oder OPA Gatekeeper als Ausblick einordnen, ohne Tool-Empfehlung – das Hands-on dazu liegt im eigenständigen Aufbaumodul Kubernetes Admission Controllers & Policy Engines.
Für wen dieses Modul ideal ist
- • Ops/Admins mit abgeschlossenen Modulen “Kubernetes Administration” und “Kubernetes Anwendungsdesign” oder gleichwertigen Vorkenntnissen
- • Alle, die demnächst eine Namespace-weite Security-Baseline durchsetzen sollen, statt sich auf einzelne, disziplinierte Manifest-Autor:innen zu verlassen
- • Teams, die vor dem nächsten Compliance-Audit wissen wollen, was “Secret” in ihrem Cluster tatsächlich bedeutet – kodiert oder verschlüsselt
Rahmendaten
- • Dauer: 90 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, zwei Hands-on-Übungen (PSA-Durchsetzung, Secrets-Encryption-at-Rest), Admission-Controller-Ausblick als reiner Konzeptteil
- • Voraussetzungen: abgeschlossene Module “Kubernetes Administration” und “Kubernetes Anwendungsdesign”, lauffähige lokale Docker-Umgebung für Minikube oder kind, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Pod Security Standards als Konzept (15 min): die drei Profile
privileged/baseline/restricted, Abgrenzung zum bereits gelehrtensecurityContext— Workload-lokal vs. Namespace-weite Policy.Hands-on 1: Pod Security Admission (25 min, Hands-on): Namespace-Label
pod-security.kubernetes.io/enforce=restrictedsetzen, einen Pod mit privilegierten Feldern live abgewiesen sehen, danach den Unterschied zuwarn/auditzeigen.Secrets jenseits Base64 (20 min): Encryption at Rest via
EncryptionConfigurationals Konzept, kein Cloud-KMS nötig, Abgrenzung zu Vault/External-Secrets-Operator als Betriebsmodell.Admission-Controller-Konzept: eingebaut vs. Policy-Engines (15 min): PSA gegen Kyverno/OPA Gatekeeper als Ausblick, ohne vollständiges Hands-on — Scope-Grenze offen benannt, keine unbelegte Tool-Empfehlung, mit Verweis auf das Aufbaumodul Kubernetes Admission Controllers & Policy Engines für das dortige Hands-on.
Puffer/Q&A (15 min): offene Fragen, individuelle Vertiefung je nach Compliance-Anforderung der Teilnehmenden.
Dieses Modul setzt zwei Vertiefungsmodule
voraus: Kubernetes Administration — RBAC, Node-Betrieb und Cluster-Netzwerk
für RBAC und ServiceAccounts, die hier als bekannt gelten und
nicht wiederholt werden, sowie
Kubernetes Anwendungsdesign — Multi-Container-Patterns, Jobs & Security Context
für den securityContext, der ebenfalls als bekannt
vorausgesetzt und nicht erneut eingeführt wird. Wer einen der
beiden Kurse noch nicht abgeschlossen hat, sollte ihn zuerst
buchen.
Dieses Modul vertieft damit konkret zwei Vorgängerkurse gleichzeitig, anders als die sieben gleichrangigen Vertiefungsmodule auf “Kubernetes Workloads & Konfiguration”, die jeweils nur das gemeinsame Workloads-Fundament voraussetzen.
Wer den Ausblick aus Block 4 dieses Moduls – eingebaute Pod Security Admission gegen Policy-Engines – in ein echtes Hands-on überführen will, findet das im aufbauenden Modul Kubernetes Admission Controllers & Policy Engines — Kyverno vs. OPA Gatekeeper. Der dort behandelte Admission-Webhook-Mechanismus setzt genau auf dem hier gelehrten Pod-Security-Admission-Konzept auf.
Hands-on Inhalte (Auszug)
Namespace mit restricted-Policy
- Namespace
secure-demomit dem Labelpod-security.kubernetes.io/enforce=restrictedanlegen - Ein Pod-Manifest mit
privileged: trueund ohnerunAsNonRootanwenden und die Admission-Fehlermeldungviolates PodSecurity “restricted:latest”live lesen
Manifest bis zur Zulassung nachschärfen
- Dasselbe Manifest um
securityContextmitrunAsNonRoot: trueundcapabilities.drop: [ALL]ergänzen - Erneut anwenden und live bestätigen, dass der Pod jetzt läuft – derselbe Namespace, dieselbe Policy, ein konformes Manifest
Secret vor Encryption at Rest
- Ein Secret anlegen und den gespeicherten Wert direkt über
etcdctl getgegen etcd auslesen - Den lesbaren Base64-Wert im Rohzugriff live bestätigen – derselbe Zugriffsweg, den Angreifer:innen mit etcd-Zugriff hätten
Secret nach Encryption at Rest
EncryptionConfigurationmitaescbc-Provider aktivieren und denselben Secret-Wert erneut peretcdctl getauslesen- Den jetzt verschlüsselten Inhalt dem vorherigen Klartext-Base64-Wert gegenüberstellen
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der Namespace-Policy bis zum zugelassenen Manifest) 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