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 · 08.06.2025 · ⏳ 3 Minuten

Neue Wege im KI-Management: Die Gateway API Inference Extension

Moderne generative KI- und große Sprachmodelle (LLMs) stellen Kubernetes vor einzigartige Herausforderungen im Datenverkehrsmanagement. Im Gegensatz zu typischen kurzlebigen, zustandslosen Webanfragen …

Lesen →

Neue Wege im KI-Management: Die Gateway API Inference Extension
ayedo Redaktion · 06.06.2025 · ⏳ 2 Minuten

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet

Einführung in die Verwaltung von Sidecar-Containern in Kubernetes In der Welt von Kubernetes sind Sidecar-Container nützliche Helfer, die Funktionen erweitern oder zusätzliche Aufgaben für die …

Lesen →

Wie Sie sicherstellen, dass Ihr Sidecar-Container zuerst startet
ayedo Redaktion · 05.06.2025 · ⏳ 2 Minuten

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!

Wir freuen uns, die allgemeine Verfügbarkeit der Gateway API v1.3.0 bekanntzugeben! Diese Version wurde am 24. April 2025 veröffentlicht und bringt spannende neue Funktionen mit sich. Was ändert sich …

Lesen →

Gateway API v1.3.0: Neue Funktionen für flexibles Request Mirroring und mehr!
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Application Performance sollte messbar sein — jederzeit, in Echtzeit

Wer Anwendungen produktiv betreibt, braucht keine schönen Dashboards, sondern harte Daten. Performance-Probleme entstehen nie dann, wenn Zeit für Debugging ist. Sie kommen genau dann, wenn Systeme …

Lesen →

Application Performance sollte messbar sein — jederzeit, in Echtzeit
Katrin Peter · 03.06.2025 · ⏳ 2 Minuten

Warum betreibt ihr eure App eigentlich noch selbst?

Die Frage stellt sich immer wieder. Entwicklerteams liefern Features, optimieren Releases, bauen saubere Architekturen — und dann hängen sie trotzdem noch in der Infrastruktur. Kubernetes-Cluster …

Lesen →

Warum betreibt ihr eure App eigentlich noch selbst?

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.