Publikation von Christoph Puppe
Kubernetes-Tutorial, Teil 2: Namespaces, Benutzer- und Objektverwaltungen
Kubernetes macht die Benutzerverwaltung nicht selbst, trotzdem gibt es bei der sicheren Konfiguration einige Identitäten zu berücksichtigen. Das Fundament: UID und GID der Container-Prozesse dürfen keine Berechtigungen auf dem Node haben; User Namespaces verdoppeln die IDs, werden aber nur von CRI-O unterstützt. Ohne explizite Angabe bekommt jeder Pod den Default-Service-Account, dessen Token man mit automountServiceAccountToken: false aus dem Pod heraushalten sollte, kombiniert mit einer Network Policy gegen den API-Server. Zur Authentifizierung kennt Kubernetes Token, X.509-Zertifikate und Plug-ins; da der private Schlüssel eines Dienstes nicht mit Passwort verschlüsselt sein kann, sind Zertifikate kaum besser als Token, beide sind Geheimnisse. Die Autorisierung läuft über RoleBindings, wobei sich nur Erlaubnisse addieren, Verbote gibt es nicht. Danach härtet der Artikel exemplarisch AKS und GKE. GKE punktet mit dem Autopilot, dem gehärteten Read-only-Image COS_containerd und der Option, API-Zugriffe auf Projekt oder IP-Bereich zu beschränken; die Autopilot-Härtung war so wirksam, dass sich die Analysesoftware gar nicht erst installieren ließ. AKS glänzt mit der Azure-AD-Integration und Richtlinien-Sets im Defender for Cloud. Die Bilanz der Image-Qualität fällt deutlich aus: AquaSec fand bei Azure 2066 Verwundbarkeiten, bei GCP 61, private Schlüssel einer Test-CA inklusive. Insgesamt hat GCP die Nase vorn, Azure hält bei der Richtlinienverwaltung dagegen. Wichtig ist in beiden Fällen ein privater Cluster.
heise online · PDF · Permalink