TL;DR
Kubernetes v1.37 führt Pod-Zertifikate und Cluster-Vertrauensbündel ein, um die Produktionsidentität von Workloads zu verbessern. Diese neue Funktion ermöglicht die Verwendung von X.509-Zertifikaten für die Authentifizierung, was eine sicherere Alternative zu den bisherigen Service-Account-JWTs darstellt.
Hauptinhalt
Kubernetes hat mit der Version 1.37 eine bedeutende Erweiterung in der Authentifizierungstechnologie eingeführt, die es Workloads ermöglicht, sich sicherer gegenüber anderen Systemen zu identifizieren. Bisher basierten die Authentifizierungsmethoden hauptsächlich auf Service-Account-JWTs (JSON Web Tokens), die von der Steuerungsebene des Clusters erstellt werden. Diese Tokens sind kryptografisch signiert und ermöglichen es, die Identität des aufrufenden Workloads zu verifizieren.
Mit der Einführung von Pod-Zertifikaten und Cluster-Vertrauensbündeln wird die Ausgabe von X.509-Zertifikaten für TLS und mTLS direkt in den Kern von Kubernetes integriert. Dies zielt darauf ab, die Nutzung von X.509-Zertifikaten so einfach wie die Verwendung von Service-Account-JWTs zu gestalten, während gleichzeitig das hohe Sicherheitsniveau von Kubernetes gewahrt bleibt.
Service-Account-JWTs haben den Vorteil, dass sie nahtlos in Kubelet integriert sind und vor dem Start des Workloads in das Dateisystem des Containers geschrieben werden. Sie folgen den Prinzipien des geringsten Privilegs und können zur Authentifizierung bei externen Systemen verwendet werden. Allerdings haben sie auch eine wesentliche Schwäche: Sie sind Träger-Tokens, was bedeutet, dass jeder, der das Token besitzt, sich als die angegebene Identität ausgeben kann. Dies kann zu Sicherheitsrisiken führen, da Tokens an Peers weitergegeben werden müssen.
Die neue Methode der Pod-Zertifikate zielt darauf ab, die Herausforderungen der Träger-Tokens zu überwinden, indem sie auf Nachweis-basierten Anmeldeinformationen basiert. Anstatt das gesamte Token zu übermitteln, wird nur ein Nachweis der Berechtigung gesendet, was durch asymmetrische kryptografische Signaturen ermöglicht wird. X.509-Zertifikate, die in TLS verwendet werden, bieten eine bewährte Lösung für diese Problematik.
Technische Details/Implikationen
Die Architektur der Pod-Zertifikate umfasst mehrere Schlüsselelemente. Anwendungen können Zertifikate in ihrer Pod-Spezifikation anfordern und die Schlüssel sowie Zertifikate aus dem Dateisystem des Containers lesen. Kubelet spielt eine zentrale Rolle, indem es PodCertificateRequest-Objekte ausstellt und ClusterTrustBundle-Objekte im Auftrag des Workloads verwaltet. Darüber hinaus wird ein Signer-Controller benötigt, um die Zertifikate zu signieren.
Die Flexibilität der Pod-Zertifikate ist ein weiterer wesentlicher Aspekt. Im Gegensatz zu den standardisierten Service-Account-JWTs ermöglicht das X.509-Ökosystem eine Vielzahl von Zertifikatsarten, die innerhalb eines Clusters gleichzeitig ausgegeben werden können. Zukünftige Entwicklungen könnten mindestens zwei integrierte Zertifikatsanbieter umfassen: einen für Server-TLS-Zertifikate und einen für SPIFFE-Client-Zertifikate.
Fazit/Ausblick
Die Einführung von Pod-Zertifikaten in Kubernetes v1.37 stellt einen bedeutenden Fortschritt in der Authentifizierungstechnologie dar, der die Sicherheit von Cloud-nativen Anwendungen verbessert. Die Möglichkeit, verschiedene Zertifikatstypen innerhalb eines Clusters zu verwalten, eröffnet neue Perspektiven für die Integration und Interoperabilität innerhalb von Kubernetes-Umgebungen.