Kubernetes v1.25: Sicherheit durch Benutzer-Namensräume für Pods
Erfahren Sie, wie Benutzer-Namensräume in Kubernetes v1.25 die Sicherheit von Pods erhöhen und sichere Workloads ermöglichen.
Kubernetes v1.25 bringt eine bedeutende Neuerung mit sich: die Unterstützung für Benutzer-Namensräume. Diese Funktion ermöglicht es, sichere Workloads in Kubernetes zu betreiben, indem jeder Pod nur auf einen eingeschränkten Satz von verfügbaren UIDs und GIDs auf dem System zugreifen kann. Dies fügt eine zusätzliche Sicherheitsebene hinzu, um Pods, die auf demselben System laufen, zu schützen.
Was ändert sich konkret für Entwickler/DevOps-Teams?
Mit der neuen Unterstützung für Benutzer-Namensräume können Entwickler und DevOps-Teams sicherere Anwendungen bereitstellen. Jeder Pod läuft in einer eigenen Umgebung mit einzigartigen IDs, was das Risiko von Sicherheitsvorfällen verringert. Insbesondere wird es möglich, Workloads als Root auszuführen, ohne den Host zu gefährden. Diese Isolation ist besonders wertvoll in multi-tenant Umgebungen, wo verschiedene Teams oder Anwendungen auf demselben Cluster betrieben werden.
Praktische Beispiele oder Anwendungsfälle
Stellen Sie sich vor, Sie betreiben eine Anwendung, die als Root-Benutzer laufen muss. Mit Benutzer-Namensräumen können Sie die Root-ID innerhalb des Pods auf eine nicht-null ID außerhalb des Containers abbilden. Das bedeutet, dass die Anwendung im Container glaubt, sie laufe als Root, während sie aus der Sicht des Hosts mit einer regulären, unprivilegierten ID arbeitet. Dies gewährleistet, dass die Anwendung über die erforderlichen Berechtigungen verfügt, ohne dass die Sicherheit des Hosts gefährdet wird.
So aktivieren Sie Benutzer-Namensräume
Aktuell müssen Sie die Unterstützung für Benutzer-Namensräume aktivieren, da sie standardmäßig deaktiviert ist. Dazu setzen Sie hostUsers
auf false
in der Pod-Spezifikation:
yaml
apiVersion: v1
kind: Pod
spec:
hostUsers: false
containers:
- name: nginx
image: docker.io/nginx
Beachten Sie, dass diese Funktion hinter einem Feature-Gate steht. Aktivieren Sie das Gate UserNamespacesStatelessPodsSupport
, bevor Sie die neue Funktion nutzen können. Zudem muss die Laufzeitumgebung Benutzer-Namensräume unterstützen:
- containerd: Unterstützung ist für die Version 1.7 geplant. Weitere Informationen finden Sie in dem Issue #7063.
- CRI-O: Version 1.25 unterstützt bereits Benutzer-Namensräume.
- Unterstützung für
cri-dockerd
ist derzeit nicht geplant.
Werden Sie aktiv
Wenn Sie mehr über Benutzer-Namensräume erfahren oder sich an der Community beteiligen möchten, können Sie das SIG Node über verschiedene Kanäle erreichen:
Sie können uns auch direkt kontaktieren:
- GitHub / Slack: @rata @giuseppe
Mit der Unterstützung von ayedo als erfahrenem Kubernetes-Partner sind Sie bestens gerüstet, um die neuen Möglichkeiten von Kubernetes v1.25 zu nutzen und Ihre Anwendungen sicherer zu gestalten.
Quelle: Kubernetes Blog