Kubernetes 1.31: Präzise Kontrolle über Gruppenmitgliedschaften in Pods
Entdecken Sie, wie Kubernetes 1.31 die Verwaltung von Gruppenmitgliedschaften in Pods optimiert und was das für Ihre Anwendungen bedeutet.
Kubernetes 1.31 bringt eine spannende neue Funktion mit sich, die die Handhabung von Gruppenmitgliedschaften in Containern innerhalb von Pods verbessert. Diese Änderung zielt darauf ab, die Kontrolle über Gruppenmitgliedschaften zu verfeinern und potenzielle Sicherheitsrisiken zu minimieren.
Was ändert sich konkret für Entwickler/DevOps-Teams?
Mit der Einführung des neuen Feldes supplementalGroupsPolicy
im .spec.securityContext
eines Pods wird die Art und Weise, wie Gruppenmitgliedschaften für Containerprozesse berechnet werden, optimiert. Entwickler und DevOps-Teams haben nun die Möglichkeit, zwischen zwei Politiken zu wählen:
- Merge: Die Gruppenmitgliedschaften, die im
/etc/group
für den primären Benutzer des Containers definiert sind, werden zusammengeführt. Dies ist die Standardoption und sorgt für Rückwärtskompatibilität.
- Strict: Nur die angegebenen Gruppen-IDs in den Feldern
fsGroup
, supplementalGroups
oder runAsGroup
werden als Gruppenmitgliedschaften der Containerprozesse angehängt. Gruppenmitgliedschaften aus /etc/group
werden ignoriert.
Praktische Beispiele oder Anwendungsfälle
Nehmen wir an, wir haben einen Pod, der runAsUser=1000
, runAsGroup=3000
und supplementalGroups=4000
im Sicherheitskontext definiert. Hier ein Beispiel, wie Sie einen Pod mit der Standard-Policy erstellen können:
apiVersion: v1
kind: Pod
metadata:
name: implicit-groups
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
supplementalGroups:
- 4000
containers:
- name: my-container
image: my-image
Erstellen Sie den Pod mit:
console
$ kubectl apply -f https://k8s.io/blog/2024-08-22-Fine-grained-SupplementalGroups-control/implicit-groups.yaml
Überprüfen Sie, dass der Pod läuft:
console
$ kubectl get pod implicit-groups
Führen Sie den Befehl id
im Container aus, um die Gruppenmitgliedschaften zu sehen:
console
$ kubectl exec implicit-groups – id
Die Ausgabe sollte ähnlich wie folgt aussehen:
none
uid=1000 gid=3000 groups=3000,4000,50000
Die Gruppe 50000
stammt aus der Datei /etc/group
im Container-Image.
Wenn Sie die Strict
-Policy verwenden möchten, könnte das Pod-Manifest so aussehen:
apiVersion: v1
kind: Pod
metadata:
name: strict-supplementalgroups-policy
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
supplementalGroupsPolicy: Strict
supplementalGroups:
- 4000
containers:
- name: my-container
image: my-image
Erstellen Sie den Pod mit:
console
$ kubectl apply -f https://k8s.io/blog/2024-08-22-Fine-grained-SupplementalGroups-control/strict-supplementalgroups-policy.yaml
Diese neuen Möglichkeiten zur Kontrolle von Gruppenmitgliedschaften sind besonders wichtig für Sicherheitsrichtlinien und die Zugriffsverwaltung in Kubernetes. ayedo, als Ihr Partner für Kubernetes, unterstützt Sie gerne bei der Implementierung dieser neuen Funktionen und hilft Ihnen, Ihre Anwendungen sicher und effizient zu betreiben.
Quelle: Kubernetes Blog