kalafoto - stock.adobe.com
Kubernetes Schritt für Schritt richtig absichern
Mit Kubernetes lassen sich hoch skalierbare und effiziente Container-Umgebungen einrichten. Das erfordert jedoch umfassende Maßnahmen, um alle Dienste und Ressourcen zu schützen.
Cloud Computing bietet einen flexiblen und zugleich sehr mächtigen Zugriff auf Ressourcen und Services. Die dadurch entstehenden Sicherheitsrisiken dürfen aber nicht unterschätzt werden. Insbesondere die mit Kubernetes eingerichteten Cluster sind zahlreichen Gefahren ausgesetzt, die nur noch wenig mit den Risiken traditioneller Legacy-basierter Anwendungen gemein haben.
Dem Chief Information Security Officer (CISO) oder auch dem Verantwortlichen für IT-Sicherheit im Unternehmen obliegt die wichtige Aufgabe, für den Schutz der Firmendaten in jeder Situation zu sorgen. Ein CISO muss sicherstellen können, dass sowohl die Eigentümer als auch die Kunden eines Unternehmens zufrieden mit den getroffenen Maßnahmen sind.
Außerdem müssen sie davon überzeugt sein, dass jederzeit alle nötigen Schritte unternommen werden, um die Sicherheit zu garantieren und weiter zu verbessern. Eine solide Sicherheitsstrategie für Kubernetes-Umgebungen erfordert jedoch teilweise neue Vorgehensweisen, die mit bereits bekannten und seit längerem genutzten Sicherheitskonzepten kombiniert werden müssen.
Die Aufgabe der Absicherung von Kubernetes sollten Sie aus zwei Blickwinkeln betrachten: Einmal aus Sicht der Funktionen und dann aus Sicht der bislang genutzten Gewohnheiten.
Ein Ratgeber zu den wesentlichen Sicherheitsfunktionen in Kubernetes
Kubernetes verfügt über eine ganze Reihe von integrierten Funktionen, die verwendet werden können, um eine sichere Umgebung einzurichten und auch auf Dauer aufrecht zu erhalten.
So gibt es mehrere Möglichkeiten, um sich gegenüber den API-Diensten (Application Programming Interfaces) von Kubernetes zu authentifizieren. Welcher sich jeweils am besten eignet, hängt davon ab, welche Kubernetes-Services genutzt werden. Achten Sie dabei darauf, dass eine Authentifizierung sowohl für die Nutzer als auch für die Dienste benötigt wird. Jeder CISO muss daher sicherstellen können, dass die von ihm zur Authentifizierung verwendeten Methoden nicht zu viele Informationen freigeben. Eine einfache Möglichkeit, eine wirklich sichere Authentifizierungsmethode zu finden, ist die folgende:
- Eine sichere Technik ist die Nutzung von Tokens für OpenID Connect, die auf dem offenen und modernen Authentifizierungsstandard OAuth 2.0 basieren.
- Weniger sichere Methoden umfassen Zertifikate auf Basis von x509 und statische Passwörter. Diese nicht mehr aktuellen Authentifizierungstechniken bietet weniger Schutz.
Mit Role-based Access Control (RBAC) können Sie zudem genau festlegen, wer auf Ihre Kubernetes-APIs zugreifen darf und welche Rechte dabei gelten sollen. Die Methode ist eine deutliche Verbesserung gegenüber den früheren auf Attributen basierenden Zugangskontrollen, die auch noch leichter zu implementieren, überprüfen und verwalten ist.
Es gibt aber einige wichtige Punkte, die Sie beim Zuweisen von Rechten per RBAC beachten sollten:
- Wer braucht Zugriff? Gewähren Sie nur einen Zugriff, wenn er wirklich benötigt wird.
- Manche Dienste benötigen überhaupt keinen Zugang zur Kubernetes-API. Deaktivieren Sie diese Zugänge.
Ähnlich wie in einem VPN (Virtual Private Network) sind die Netzwerkrichtlinien in den Kubernetes-Clustern maßgeblich dafür verantwortlich, festzulegen, welche Datenströme die Cluster überhaupt erreichen dürfen. Diese Policies bestimmen, wie der Traffic innerhalb der Cluster geregelt wird. Deswegen sollten sie immer wieder genau überprüft werden.
Außerdem dürfen Sie nicht vergessen, Kubernetes auf Ebene der sogenannten Pods abzusichern. Dabei handelt es sich um die kleinste einsetzbare Einheit in Kubernetes. Für diese Aufgabe eignet sich eine Technik namens Pod Security Context. Damit können Sie festlegen, wie die Zugriffsrechte für die einzelnen Pods aussehen sollen und wie sie für die Container in ihren Pods gestaltet werden sollen.
In Kubernetes Secrets lassen sich sensible Daten wie zum Beispiel Passwörter, API-Schlüssel und Autorisierungs-Tokens ablegen. Alle in diesen geheimen Objekten gespeicherten Daten sind vor fremden Zugriffen besser geschützt, als wenn sie zum Beispiel wie so oft in Container-Images abgelegt werden.
Sichere Vorgehensweisen für Kubernetes
Die Nutzung von Containern in Firmen nimmt rapide zu. Das ist unbestritten. Der Trend hat aber auch dazu geführt, dass die Orchestrierung der eingesetzten Container mit vor allem Kubernetes immer wichtiger wird. Die dabei entstehenden Infrastrukturen müssen gründlich abgesichert werden, um Schäden zu verhindern. Die folgenden vier Vorgehensweisen helfen Ihnen dabei, die Sicherheit der einzelnen Container und ihrer Umgebungen deutlich zu verbessern:
Unterteilen Sie die einzelnen Workloads aufgrund der wichtigsten geltenden Anforderungen. So sollten etwa sensible Informationen in eigenen Ressourcen untergebracht werden, die getrennt von anderen Daten gehalten werden. So sind sie nicht so exponiert und weniger in Gefahr, gestohlen oder anderweitig missbraucht zu werden.
Nutzen Sie Namespaces, um Ressourcen besser voneinander zu separieren. Ähnlich wie im gerade vorgestellten Konzept, das Workloads anhand ihrer Funktion unterteilt, können Sie auch Namespaces verwenden, um Ressourcen in Kubernetes voneinander abzutrennen. Diese Form von logischen Unterteilungen bewirkt eine Isolation verschiedener Ressourcen, so dass böswillige Aktionen erschwert werden.
Aktivieren Sie alle wichtigen Logging- und Protokoll-Funktionen. Ein robustes Audit-Logging ist nicht nur hilfreich, wenn es um die Einhaltung Ihrer Compliance-Vorgaben geht. Spätestens bei einem Sicherheits-Vorfall werden Sie dankbar sein, wenn Sie die Ihnen zur Verfügung stehenden Funktionen zum Protokollieren von Geschehnissen rechtzeitig aktiviert haben. Nicht nur können die dadurch angelegten Logs dauerhaft überwacht und auf verdächtige Aktivitäten überprüft werden. Sie sind auch dann nützlich, wenn zu einem späteren Zeitpunkt forensische Analysen durchgeführt werden müssen.
Vergessen Sie aber nicht die Sicherheit auf Ebene der Container. Setzen Sie die Konzepte zum Schutz Ihrer Kubernetes-Cluster auch ein, um die eingesetzten Container ebenfalls zu schützen. Welche Maßnahmen hier sinnvoll sind, hängt von den verwendeten Techniken und Lösungen wie Docker oder Rancher ab. Bedenken Sie aber, dass alle Ressourcen in Betracht gezogen werden müssen, um wirklich alle Schwachstellen in Ihrer Umgebung zu identifizieren und zu beheben.
Weitere Tipps zur Optimierung Ihrer Kubernetes-Umgebung
Zusätzlich zu den bereits genannten Hinweisen, um die Sicherheit von Kubernetes zu erhöhen, gibt es mehrere Maßnahmen, die Verantwortliche durchführen können, um das Deployment von Kubernetes in ihrer Organisation insgesamt zu verbessern.
Halten Sie Ihre Kubernetes-Umgebung immer auf dem aktuellen Stand. Wie bei jeder anderen Software, um die sich Security-Profis kümmern, sollten Sie sicherstellen, dass Updates möglichst zeitnah eingespielt werden. Sorgen Sie vor allem dafür, dass Ihre Anwendungen mit den jeweils aktuellen Patches versehen sind, die von den Kubernetes-Entwicklern und der CNCF (Cloud Native Computing Foundation) veröffentlicht wurden.
Nutzen Sie essentielle Quellen wie das Center for Internet Security (CIS). Das CIS bietet zum Beispiel einen Benchmark für Kubernetes an, der auf zahlreichen Hilfen und Hinweisen von Experten basiert. Damit können Sie Ihre Kubernetes-Umgebung härten. Es besteht nämlich kein Grund, dass Rad neu zu erfinden, wenn es ausgewiesene Spezialisten gibt, die ihre Expertise zur Verfügung stellen, um für die Einhaltung Ihrer Compliance-Vorgaben zu sorgen.
Halten Sie die Kenntnisse Ihrer Mitarbeiter auf dem aktuellen Stand und setzen Sie auf Zertifizierungen. Unter anderem bietet die CNCF nützliche Zertifikate für Kubernetes-Administratoren. Diese sorgen dafür, dass Ihre Mitarbeiter jederzeit über aktuelle Entwicklungen im Kubernetes-Umfeld Bescheid wissen. Außerdem bieten die Trainings Mehrwerte und einen wesentlichen Ansporn für die berufliche und professionelle Weiterentwicklung Ihrer Angestellten.
Unternehmen und CISOs, die auf Kubernetes setzen, erhalten dadurch mehr Flexibilität und eine weit höhere Skalierbarkeit. Dazu benötigen sie aber engagierte Teams, die Anwendungen und Dienste auf Basis von Kubernetes entwickeln können. Um einen geeigneten Prozess in Gang zu bekommen, mit dem Sie Ihre Kubernetes-Umgebung besser absichern können, sollten Sie den in diesem Beitrag beschriebenen Empfehlungen folgen. Die Gefahren und Bedrohungen ändern sich jedoch immer wieder. Als CISO müssen Sie deswegen kontinuierlich auf dem aktuellen Stand bleiben und sich laufend über wichtige Neuigkeiten in Ihrem Aufgabenfeld informieren. Nur so können Sie in diesen dynamischen Umgebungen auch in Zukunft für Sicherheit sorgen.
Über den Autor:
Joe Nemer ist Forscher und technischer Redakteur bei der Cloud Academy, einer Cloud-Schulungsplattform für Unternehmen.