Publikation von Christoph Puppe
Kubernetes-Tutorial, Teil 3: Überprüfen von Anfragen an die K8s-API
Admission Controller sind ein zentrales Element zum Absichern von Kubernetes: Jede Anfrage an die K8s-API wird authentifiziert, autorisiert und durchläuft dann eine Kette von Kontrollen. Mutating Admissions passen Konfigurationen dynamisch an, etwa per Sidecar für das Service Mesh Istio; Validating Admissions gleichen das Ergebnis mit festgelegten Regeln ab. Vor allem der zweite Schritt entscheidet über die Clustersicherheit, denn hier muss jeder Container vorbei: Wurde das Image gescannt, liegt ein privater SSH-Schlüssel darin? Left Shift in der CI/CD prüft nur, was im Git steht; erst ein Admission Controller sieht alle Requests, auch die am Repository vorbei. Seit Kubernetes 1.24 die PodSecurityPolicy außer Dienst gestellt hat, liefert die Pod Security Admission mit den Levels Privileged, Baseline und Restricted einen Ersatz. Wem das zu starr ist, der greift zu Kyverno oder zum Open Policy Agent mit Gatekeeper, dessen Regelsprache Rego eine freie Bibliothek mitbringt, aber Einarbeitung kostet; kommerzielle Plattformen verpacken dieselbe Funktionalität hinter API und Web-UI. Jedes Feature ist aber auch eine Flanke: Wer schreibend auf das Regelwerk zugreift, kann seine Rechte erhöhen oder mit einem Mutating Controller jede Anfrage beliebig verändern; Schreibrechte auf Images, Regeln und Labels sind strikt zu begrenzen. Wer Sicherheit ernst nimmt, sollte die Arbeit in präzise Regeln stecken, denn erzwungene Regeln schlagen bloß überwachte.
heise online · PDF · Permalink