Laut CNCF-Jahresumfrage 2023 verwenden 84% der Unternehmen Kubernetes in ihren Produktionssoftware-Pipelines oder planen dies (gegenüber 81% im Jahr 2022). Kubernetes ist also für Unternehmen zu einem De-facto-Betriebssystem geworden, um ihre Softwareanwendungen in der Produktion einzusetzen.
Da immer mehr Benutzer und Unternehmen involviert sind und deren Daten und Kommunikation vertraulich sind, ist die Verwaltung der Sicherheit von Kubernetes für die Unternehmen eins der wichtigsten Anliegen. 67% der Teilnehmer des State of Kubernetes Report 2024 von RedHat gaben an, dass ihre Kubernetes-Bereitstellungen schon aus Sicherheitsgründen verzögert wurden.
Mit dem Aufkommen der Microservices-Architektur spielt die Public Key Infrastructure (PKI) eine entscheidende Rolle, da sie durch Verschlüsselung, Authentifizierung und Autorisierung in der gesamten DevOps-Pipeline eine sichere Kommunikation gewährleistet. Dies sind einige der Schwachstellen, die durch solche Sicherheitsmaßnahmen behoben werden müssen:
- Client-Zertifikate für das Kubelet zur Authentifizierung beim API-Server
- Kubelet-Server-Zertifikate für den API-Server zur Kommunikation mit den Kubelets
- Serverzertifikat für den API-Server-Endpunkt
- Client-Zertifikate für Administratoren des Clusters zur Authentifizierung beim API-Server
- Client-Zertifikate für den API-Server zur Kommunikation mit den Kubelets
- Client-Zertifikate für den API-Server zur Kommunikation mit etcd
- Client-Zertifikate/Kubeconfig für den Controller-Manager zur Kommunikation mit dem API-Server
- Client-Zertifikate/Kubeconfig für den Scheduler zur Kommunikation mit dem API-Server
- Client- und Server-Zertifikate für den Front-Proxy
In diesem Blog untersuchen wir die Bedeutung der Absicherung der Pod-zu-Pod-Kommunikation in Kubernetes-Umgebungen und wie die Implementierung von TLS für die erforderliche zusätzliche Schutzebene sorgt.
Was ist ein Pod und warum wird er verwendet?
In containerisierten Anwendungen und Orchestrierungsplattformen wie Kubernetes stellt ein „Pod“ eine Gruppe aus einem oder mehreren Containern dar, die über ein gemeinsames Netzwerk oder einen gemeinsamen Host miteinander kommunizieren. In einem Pod betriebene Container nutzen Ressourcen gemeinsam und führen zusammen bestimmte Aufgaben aus.
Orchestrierungsplattformen wie Kubernetes sind für das richtige Pod-Management von entscheidender Bedeutung. Mit Kubernetes können Entwickler die Bereitstellung, Skalierung und Verwaltung von Containeranwendungen automatisieren, damit die Arbeitsabläufe effizient bleiben.
Die Absicherung der Pod-to-Pod-Kommunikation
Die Pod-zu-Pod-Kommunikation wird TLS und mTLS abgesichert, das eine Verschlüsselung mit X.509-Zertifikaten implementiert. mTLS-Zertifikate bringen dann eine bidirektionale Authentifizierungs- und Verschlüsselung ein, welche die Sicherheit erhöht. Diese Zertifikate werden als Kubernetes-Geheimnisse gespeichert, damit vertrauliche Informationen innerhalb eines Clusters sicher verwaltet werden. mTLS-Sicherheit ist für die Absicherung von Containerumgebungen extrem wichtig und verbessert zudem die Sicherheitslage der Microservices-Architektur.
Warum Pods abgesichert werden müssen
Durch die Absicherung von Pods und deren Kommunikation in Containerumgebungen werden sensible Anwendungen geschützt und das Risiko böswilliger Angriffe oder Datenlecks verringert sich. Diese Pod-Sicherheit schützt Unternehmen und ermöglicht Verbesserungen und Gewissheiten in den Workflows:
- Vertraulichkeit von Daten – TLS-Zertifikate fördern die Datenintegrität und verhindern durch Verschlüsselung unbefugten Zugriff. Diese gesicherte Kommunikation ist besonders für Umgebungen wichtig, in denen vertrauliche Daten wie Finanztransaktionen oder Gesundheitsdaten verarbeitet werden.
- Isolation und Mehrfachinstanzen – Wenn mehrere Instanzen in einer gemeinsamen Umgebung arbeiten, besteht die Gefahr, dass beeinträchtigte Cluster andere Pods im Cluster beeinflussen. mTLS gewährleistet die Sicherheit von Implementierungen über mehrere Instanzen hinweg.
- Authentifizierung – Durch die Absicherung von Pods mit TLS können Pods nur mit autorisierten Einheiten kommunizieren. Das verringert das Risiko böswilliger Angriffe, die zu unbefugtem Zugriff führen.
- Verbesserte Sicherheitslage – Die Pod-Sicherheit ist für eine erfolgreiche Code-Entwicklung von größter Bedeutung und mTLS legt durch eine Richtlinie die grundlegenden Sicherheitsanforderungen für alle Pods in einem Kubernetes-Cluster fest.
- Compliance-Anforderungen – Durch Pod-Sicherheit können Unternehmen Compliance-Standards einhalten und Datenschutzverstöße und Systemausfälle in stark regulierten Branchen können verhindert werden.
- Verbesserte Leistung – In addition to the security benefits of a TLS, they can also offer performance enhancements including faster ‘handshake’ times, ideal for high traffic Kubernetes environments.
Was ist mTLS und warum wird es wichtig?
mTLS oder „Mutual Transport Security Layer“ ist die Erweiterung eines Standard-TLS-Protokolls, das eine gegenseitige Authentifizierung von Client und Server erfordert, um eine sichere Verbindung herzustellen. Dieser zusätzliche Schritt erhöht die Sicherheit der Kommunikation zwischen diesen Parteien, da er gewährleistet, dass sowohl der Client als auch der Server diejenigen sind, für die sie sich ausgeben.
mTLS ermöglicht Folgendes:
- Datenverschlüsselung - insbesondere in Microservices-Architekturen, um die Kommunikation zwischen den Diensten abzusichern.
- Zero-Trust-Architektur - Jede Kommunikation wird authentifiziert.
- Anwendung auf verschiedene Kommunikationsprotokolle – Keine Beschränkung auf webbasierte Anwendungen.
Aufgrund dieser Merkmal wird mTLS häufig zur Absicherung vertraulicher Kommunikation genutzt, die in Cloud-nativen und auf Microservices basierenden Umgebungen weit verbreitet ist.
Sicherung von Kubernetes-Umgebungen mit GlobalSigns Cert-manager Issuer
Mit GlobalSigns cert-manager Issuer können Entwickler ihre Kubernetes-Cluster über ein nahtlos verwendbares Plugin mit vertrauenswürdigen TLS-Zertifikaten absichern. Die Cert-manager-Funktionen optimieren für GlobalSigns Atlas Issuer die Generierung und Bereitstellung von X.509-Zertifikaten für Ihre Sicherheitsanforderungen in Kubernetes. Zudem werden vertrauenswürdige Zertifikate schnell und einfach auf Anfrage bereitgestellt.