Kubernetes ist in Bezug auf Container zum Standard in Cloud-nativer Software geworden. Tatsächlich ergab die jüngste Umfrage der Cloud Native Computing Foundation (CNCF), dass die Kubernetes-Nutzung in der Produktion auf 78 % gestiegen ist. Doch wie bei jeder Technologie, die in kurzer Zeit immer beliebter wird, herrscht große Verwirrung darüber, was Kubernetes ist und welche Sicherheitsaspekte mit Kubernetes und der Containerisierung einhergehen. Ein typisches Beispiel: In der gleichen CNCF-Umfrage nannten 40 % der Befragten die Sicherheit als Herausforderung bei der Containernutzung/Bereitstellung und 38 % bezeichneten die Komplexität als Herausforderung.
Für Sicherheitsingenieure, die mit der Härtung der Containerbereitstellung beauftragt sind, gibt es definitiv eine Lernkurve zu überwinden. Um Ihnen den Einstieg zu erleichtern, werfen wir einen Blick darauf, was Kubernetes ist, wie es funktioniert, und erkunden einige grundlegende Kubernetes-Sicherheitskonzepte.
Kubernetes ist eine Plattform zur Orchestrierung und Verwaltung von Container-Workloads (z. B Docker-Container).
Seit seiner ersten Veröffentlichung im Jahr 2014 hat sich Kubernetes – ein Open-Source-CNCF-Abschlussprojekt, dessen Wurzeln auf das Entwicklungsteam von Google zurückgehen – zu einem der beliebtesten Tools in DevOps- und Cloud-Native-Kreisen entwickelt.
Eine Voraussetzung für das Verständnis von Kubernetes ist das Verständnis von Containern. Kurz gesagt handelt es sich bei Containern um leichte Softwarepakete, die alle Abhängigkeiten enthalten, die eine Anwendung zum Ausführen benötigt. Container lösen das Problem, Anwendungen in verschiedenen Umgebungen zuverlässig auszuführen. Da sie leicht und tragbar sind, erfreuen sich Container immer größerer Beliebtheit und sind für die Entwicklung moderner Mikroservices und Webanwendungen von entscheidender Bedeutung.
Während die Verwendung eines einzelnen Containers nicht viel Verwaltung und Orchestrierung erfordert, müssen große Anwendungen skalierbar sein. Moderne Entwicklungsteams müssen in der Lage sein, den Prozess der Containerbereitstellung zu automatisieren und zu skalieren. Hier kommen Container-Workload-Management-Tools wie Kubernetes ins Spiel. Kubernetes sorgt für die fehlende Verwaltung und Orchestrierung.
Der Begriff „Management und Orchestrierung“ wird häufig verwendet, wenn es um Kubernetes geht. Das sagt uns jedoch nicht viel über die Einzelheiten. Vereinfacht ausgedrückt bedeutet dies, dass Kubernetes Lastausgleich, Konfigurationsmanagement, Konfiguration von Speicherressourcen und automatische Ressourcenzuweisung (z. B CPU und RAM pro Container) und die Skalierung der Containerbereitstellung nach oben oder unten.
Beim Thema Docker vs. Kubernetes kann es zu großer Verwirrung kommen. Dabei ist es eigentlich ganz einfach:
Dieser letzte Punkt ist es, der zu etwas Verwirrung führen kann. Docker bietet zufällig ein Tool – Swarm – an, das ähnliche Funktionen wie Kubernetes bietet. Allerdings ist Kubernetes das bei weitem beliebtere Verwaltungs- und Orchestrierungstool.
Neben Containern gibt es noch weitere wichtige Konzepte, die es beim Einstieg in Kubernetes zu verstehen gilt. Werfen wir einen Blick auf einige Schlüsselbegriffe:
Kubernetes kann überall dort effektiv nützlich sein, wo ein Infrastructure-as-Code-Ansatz für die Containerbereitstellung nützlich sein kann. Das bedeutet, dass agile Entwicklungsteams und Teams mit Fokus auf DevOps-Praktiken häufig Kubernetes verwenden, um ihre CI/CD-Pipelines (Continuous Integration/Continuous Delivery) zu automatisieren. Darüber hinaus kann Kubernetes bei der automatischen Skalierung cloudnativer Anwendungen helfen, indem es den Zustand der Knoten und die Ressourcennutzung überwacht und je nach Bedarf hoch- oder herunterskaliert.
Natürlich bietet Kubernetes zwar einen Mehrwert aus Sicht der Automatisierung und Skalierbarkeit, bringt aber auch neue Herausforderungen für Sicherheitsteams mit sich. Wie können Sie sicherstellen, dass Ihre Anwendungen und Dienste sicher bereitgestellt werden? Wie immer beginnt dies mit dem Verständnis Ihres Bedrohungsmodells und Ihrer Risikobereitschaft, aber es gibt ein paar Grundlagen, die Ihnen den Einstieg erleichtern.
Es ist außerdem wichtig, einen Plan für die Container-Sichtbarkeit und Schwachstelle-Scanning-to-Scanning zu haben, um sicherzustellen, dass die Problembehebung schnell erfolgt und Sie alle relevanten Standards einhalten. Um mit dem Scannen von Container-Schwachstellen und der Bewertung der Sicherheitslage zu beginnen, empfehlen wir die Lektüre von Continuous Container Visibility and Compliance (PDF).
Nachdem Sie nun verstanden haben, wie Kubernetes auf hoher Ebene funktioniert – die Containerbereitstellung automatisch steuern und verwalten – können Sie die nächsten Schritte unternehmen, um k8s sicher bereitzustellen. Für einen tieferen Einblick in die Implementierung von Sicherheit mit Containern, Kubernetes und serverloser Infrastruktur melden Sie sich für das kostenlose Webinar „How to Layer Security into Modern Cloud Application“ an, das vom Cloud-Sicherheitsexperten Hillel Solow präsentiert wird.