NatronTech Logo
Sicherheit

User Namespaces

Availability
Stage
Experimental

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 root lä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: false sind hostNetwork: true, hostIPC: true oder hostPID: true nicht 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.

On this page