Kubernetes v1.33: Endlich sicherer Zugriff auf private Container-Images!
Die neue Image Pull Policy in Kubernetes v1.33 sorgt für mehr Sicherheit bei der Verwendung privater Container-Images.
Endlich sicherer Zugriff auf private Container-Images!
In der Welt von Kubernetes gibt es immer wieder Überraschungen, und die Funktionsweise der imagePullPolicy
ist da keine Ausnahme. Es mag seltsam erscheinen, dass es seit über 10 Jahren ein Problem gibt, bei dem Pods Zugriff auf authentifizierte Images erhalten konnten, ohne die notwendigen Berechtigungen zu haben. Mit der neuen Version v1.33 hat die Kubernetes-Community nun endlich ein zehn Jahre altes Problem gelöst.
Was ändert sich konkret für Entwickler/DevOps-Teams?
Die imagePullPolicy: IfNotPresent
hat bis jetzt genau das getan, was sie verspricht: Sie zieht ein Image nur, wenn es nicht lokal vorhanden ist. Doch das hatte auch Sicherheitslücken zur Folge. Nehmen wir folgendes Szenario an: Pod A im Namespace X wird auf Node 1 geplant und benötigt Image Foo aus einem privaten Repository. Für die Authentifizierung nutzt der Pod Secret 1, das die notwendigen Anmeldedaten enthält.
Wenn jedoch Pod B im Namespace Y ebenfalls auf Node 1 geplant wird und auch Image Foo benötigt, aber nicht auf Secret 1 zugreifen kann, geschieht etwas Unerwartetes. Da die IfNotPresent
-Richtlinie besagt, dass das Image nur heruntergeladen wird, falls es nicht vorhanden ist, wird der Kubelet feststellen, dass Image Foo bereits lokal vorhanden ist und es Pod B zur Verfügung stellen – trotz fehlender Berechtigungen.
Praktische Beispiele oder Anwendungsfälle
Mit der Einführung von Kubernetes v1.33 wird dies nun anders geregelt. Der Kubelet überprüft nun die Anmeldedaten des Pods, bevor er ihm Zugriff auf das bereits vorhandene Image gewährt. Dies bedeutet, dass nur Pods, die tatsächlich die erforderlichen Berechtigungen besitzen, auf private Images zugreifen können.
Ein Beispiel: Wenn Pod A und Pod B beide die gleichen Anmeldedaten aus Secret 1 beziehen, wird Pod B nicht gezwungen, sich erneut zu authentifizieren, solange die Anmeldedaten gültig sind. Dies verbessert nicht nur die Sicherheit, sondern auch die Leistung und Stabilität des Services.
Diese Änderungen haben weitreichende Auswirkungen auf die Sicherheit und den Zugriff auf Container-Images in Kubernetes. Durch die Zusammenarbeit mit Partnern wie ayedo können Unternehmen sicherstellen, dass ihre Kubernetes-Implementierungen optimal konfiguriert sind und die Vorteile dieser neuen Sicherheitsfeatures nutzen.
Im Großen und Ganzen bringt Kubernetes v1.33 also nicht nur eine technische Verbesserung, sondern auch einen Schritt in die richtige Richtung für die Sicherheit in der Container-Orchestrierung!
Quelle: Kubernetes Blog