Kubernetes v1.33: Präzise Kontrolle über Gruppen für mehr Sicherheit

Entdecken Sie die neuen Funktionen von Kubernetes v1.33, die Sicherheit und Transparenz in der Gruppenverwaltung verbessern.

Meta: ayedo Redaktion · 09.05.2025 · ⏳ 2 Minuten · Alle Blogs →

Die neue Funktion supplementalGroupsPolicy wurde als optionale Alpha-Funktion in Kubernetes v1.31 eingeführt und ist nun in v1.33 in die Beta-Phase übergegangen. Das zugehörige Feature Gate (SupplementalGroupsPolicy) ist jetzt standardmäßig aktiviert. Diese Funktion ermöglicht eine präzisere Kontrolle über die Supplemental Groups in Containern, was die Sicherheitslage insbesondere beim Zugriff auf Volumes stärkt. Zudem verbessert sie die Transparenz der UID/GID-Details in Containern und bietet somit eine verbesserte Sicherheitsüberwachung.

Bitte beachten Sie, dass diese Beta-Version einige Verhaltensänderungen beinhaltet. Weitere Informationen finden Sie in den Abschnitten Die eingeführten Verhaltensänderungen in der Beta und Upgrade-Überlegungen.

Motivation: Implizite Gruppenmitgliedschaften in /etc/group im Container-Image

Obwohl die meisten Kubernetes-Cluster-Administratoren und -Benutzer sich dessen möglicherweise nicht bewusst sind, fusioniert Kubernetes standardmäßig die Gruppendaten aus dem Pod mit den Informationen, die in /etc/group des Container-Images definiert sind.

Sehen wir uns ein Beispiel an: Das folgende Pod-Manifest spezifiziert runAsUser=1000, runAsGroup=3000 und supplementalGroups=4000 im Sicherheitskontext des Pods.

apiVersion: v1
kind: Pod
metadata:
  name: implicit-groups
spec:
  securityContext:
    runAsUser: 1000
    runAsGroup: 3000
    supplementalGroups: [4000]
  containers:
  - name: ctr
    image: registry.k8s.io/e2e-test-images/agnhost:2.45
    command: [ "sh", "-c", "sleep 1h" ]
    securityContext:
      allowPrivilegeEscalation: false

Was ist das Ergebnis des id-Befehls im ctr-Container? Die Ausgabe sollte ungefähr wie folgt aussehen:

none uid=1000 gid=3000 groups=3000,4000,50000

Woher kommt die Gruppen-ID 50000 in den Supplementary Groups (groups-Feld), obwohl 50000 im Pod-Manifest überhaupt nicht definiert ist? Die Antwort ist die Datei /etc/group im Container-Image.

Wenn wir den Inhalt von /etc/group im Container-Image überprüfen, sollte Folgendes angezeigt werden:

none user-defined-in-image:x:1000: group-defined-in-image:x:50000:user-defined-in-image

Dies zeigt, dass der primäre Benutzer des Containers 1000 in der letzten Zeile der Gruppe 50000 angehört.

Somit werden die in /etc/group im Container-Image definierten Gruppenmitgliedschaften für den primären Benutzer des Containers implizit mit den Informationen aus dem Pod zusammengeführt. Bitte beachten Sie, dass dies eine Designentscheidung war, die die aktuellen CRI-Implementierungen von Docker geerbt haben, und die Community sich bis jetzt nicht wirklich damit befasst hat.

Was ist daran problematisch?

Die implizit zusammengeführten Gruppeninformationen aus /etc/group im Container-Image stellen ein Sicherheitsrisiko dar. Diese impliziten GIDs können von Richtlinien-Engines nicht erkannt oder validiert werden, da es keinen Eintrag dafür im Pod-Manifest gibt. Dies kann zu unerwarteten Zugriffssteuerungsproblemen führen, insbesondere beim Zugriff auf Volumes (siehe kubernetes/kubernetes#112879 für Details), da die Dateiberechtigungen in Linux durch UID/GIDs gesteuert werden.

Mit der Einführung der supplementalGroupsPolicy in Kubernetes v1.33 haben Entwickler und DevOps-Teams nun die Möglichkeit, die Sicherheitslage ihrer Anwendungen zu verbessern und die Kontrolle über Gruppenmitgliedschaften zu optimieren. ayedo unterstützt Sie gerne dabei, diese neuen Funktionen effektiv in Ihre Kubernetes-Umgebung zu integrieren.


Quelle: Kubernetes Blog

ayedo Alien Kubernetes Hat

Hosten Sie Ihre Apps bei ayedo

Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.

Jetzt ausprobieren →

Ähnliche Inhalte

Alle Blogs →



ayedo Redaktion · 06.07.2025 · ⏳ 2 Minuten

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods

Kubernetes ist der De-facto-Standard für die Container-Orchestrierung, aber wenn es um den Umgang mit spezialisierter Hardware wie GPUs und anderen Beschleunigern geht, wird es kompliziert. In diesem …

Lesen →

Herausforderungen und Lösungen: So meistern Sie Geräteausfälle in Kubernetes-Pods
Katrin Peter · 03.07.2025 · ⏳ 2 Minuten

Produkt-Update bei Loopback:

Lesen →

Produkt-Update bei Loopback:
Katrin Peter · 03.07.2025 · ⏳ 3 Minuten

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland

Lesen →

Kubernetes als Schlüsseltechnologie für die OZG-Umsetzung im Saarland
ayedo Redaktion · 28.06.2025 · ⏳ 3 Minuten

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen

In Branchen, in denen Systeme äußerst zuverlässig laufen müssen und strenge Leistungsanforderungen bestehen, wie beispielsweise in der Telekommunikation, Hochleistungs- oder KI-Computing, benötigen …

Lesen →

Kompatibilität von Container-Images: Ein Schlüssel zur Zuverlässigkeit in Cloud-Umgebungen
Katrin Peter · 17.06.2025 · ⏳ 3 Minuten

Kubernetes kann Freiheit - wenn man es richtig macht.

Lesen →

Kubernetes kann Freiheit - wenn man es richtig macht.

Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →


Noch Fragen? Melden Sie sich!

Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.