Sicherheit
User Namespaces
User Namespaces
Ab Kubernetes v1.33 (und containerd >2.X) steht das Feature User Namespaces zur Verfügung. Es isoliert Benutzer innerhalb eines Containers von Benutzern auf dem Host-System.
Funktionsweise
User Namespaces ist ein Linux-Feature, das Container-Benutzer auf andere Host-Benutzer abbildet (User Mapping).
- Effekt: Ein Prozess, der im Container als
rootläuft, agiert auf dem Host als unprivilegierter Benutzer. - Aktivierung: Um User Namespaces zu verwenden, setzen Sie
pod.spec.hostUsers: false.
apiVersion: v1
kind: Pod
metadata:
name: userns
spec:
hostUsers: false
containers:
- name: shell
image: debian
command: ["sleep", "infinity"]Einschränkungen
- NFS: Idmapped Mounts werden nicht unterstützt (ext4, tmpfs, overlayfs funktionieren hingegen).
- Host Namespaces: Mit
hostUsers: falsesindhostNetwork: true,hostIPC: trueoderhostPID: truenicht möglich. - Volume Devices: Raw Block Volumes (
volumeDevices) werden nicht unterstützt.
Sicherheitsempfehlung
Wir empfehlen, für Container, die Root-Rechte benötigen (z.B. Operatoren), konsequent hostUsers: false zu setzen.
Dies minimiert den Schaden bei einem möglichen Container-Ausbruch ("Blast Radius"). Capabilities wie CAP_SYS_MODULE oder CAP_SYS_ADMIN sind im User Namespace wirkungslos oder stark eingeschränkt, was die Sicherheit signifikant erhöht.