Zero-Trust-Sicherheit für Kubernetes-Anwendungen mit NGINX konzipieren

NGINX | 26. September 2022

Die Komplexität und Anzahl von Cyberangriffen nimmt exponentiell zu, wodurch für Ihre in lokalen, hybriden und Multi-Cloud-Kubernetes-Umgebungen bereitgestellten Anwendungen ein erhebliches Gefährdungsrisiko entsteht. Herkömmliche Sicherheitsmodelle basieren auf einem Perimeter und gehen davon aus, dass Benutzer vertrauenswürdig sind (und die Kommunikation zwischen ihnen sicher ist), wenn sie sich innerhalb der geschützten Grenzen der Umgebung befinden. In den heutigen verteilten Umgebungen gibt es jedoch keine sichere Zone innerhalb des Perimeters mehr – Kommunikation, die aus dem „Inneren“ der Umgebung stammt, kann genauso gefährlich sein wie externe Bedrohungen.

In diesem Blogbeitrag beleuchten wir die Vorteile eines Zero-Trust-Modells zur Absicherung Ihrer Kubernetes-Infrastruktur und zeigen, wie NGINX Ihnen dabei helfen kann, Ihre Sicherheitslage zu verbessern.

Was ist Zero Trust?

Zero Trust ist ein Sicherheitsmodell, das auf Identität statt auf Standort basiert. Es geht davon aus, dass jede Anfrage auf Zugriff auf Anwendungen, Daten und Geräte ein Angriff sein könnte – unabhängig davon, ob sich die anfragende Person scheinbar vor Ort, an einem entfernten Standort oder in der Cloud befindet.

Zur Umsetzung der drei Kernprinzipien von Zero Trust – niemals vertrauen, immer verifizieren, kontinuierlich überwachen – müssen alle Benutzer, Dienste, Anwendungen und Geräte fortlaufend einen Authentifizierungs- und Autorisierungsnachweis erbringen. Zeitlich begrenzte Berechtigungen werden auf Grundlage dynamischer Zugriffsrichtlinien und nach dem Prinzip der geringsten Rechte gewährt.

Die gesamte Kommunikation wird verschlüsselt und über einen Richtlinienentscheidungs- und -durchsetzungspunkt (PDP/PEP) geleitet, der alle Beteiligten authentifiziert und ihnen auf Grundlage dynamischer Zugriffsrichtlinien Berechtigungen gewährt. Darüber hinaus stehen Funktionen für Audits, Überwachung, Berichterstellung und Automatisierung zur Verfügung, um Sicherheitsrisiken zu analysieren, zu bewerten und zu minimieren.

Zero-Trust-Diagramm

Wie Zero Trust Ihre Sicherheitslage verbessert

Zero Trust verbessert Ihre Sicherheitslage in mehrfacher Hinsicht:

  • Blockiert automatisch unbefugte Aktivitäten
  • Erzwingt Zugriffskontrollen, um die exponierte Angriffsfläche zu reduzieren
  • Erkennt Verhaltensanomalien und Anzeichen für eine Kompromittierung
  • Definiert Echtzeitrichtlinien nach dem Prinzip der geringsten Rechte, die die Zugriffsdauer begrenzen
  • Authentifiziert und validiert kontinuierlich die Identität, um laufende Angriffe abzuwehren

Zero Trust ist besonders wichtig für moderne, cloudnative Anwendungen, die in einer Kubernetes-Umgebung ausgeführt werden. Lose gekoppelte und portable, verteilte Anwendungen und Dienste werden containerisiert und in hybriden Multi-Cloud-Umgebungen ausgeführt, in denen standortbasierte Sicherheit keine Option ist. Sicherheit ist daher zwingend auf die kontinuierliche Überprüfung von Identitäten und Berechtigungen, Ende-zu-Ende-Verschlüsselung und Überwachung angewiesen.

So erreichen Sie Zero-Trust-Sicherheit

Um die Zero-Trust-Prinzipien zu erfüllen, muss Ihre Kubernetes-Umgebung wichtige Sicherheitsfunktionen wie Authentifizierung, Autorisierung, Zugriffskontrolle, Richtlinien, Verschlüsselung, Überwachung und Auditierung für Benutzer, Anwendungen und Dienste bereitstellen.

Eine Möglichkeit, dies zu erreichen, besteht darin, die Sicherheit direkt in die Anwendung zu integrieren. Das bedeutet jedoch, dass Ihre Entwickler zahlreiche Sicherheitsverfahren implementieren müssen – etwa zum Aufbau und zur Überprüfung von Vertrauen, zur Verwaltung von Benutzeridentitäten und Zertifikaten sowie zur Ver- und Entschlüsselung der gesamten Kommunikation. Außerdem müssen sie Technologien von Drittanbietern wie TLS und Single Sign-on (SSO) verstehen und integrieren. All dies erhöht nicht nur die Komplexität Ihrer ohnehin schon komplexen Kubernetes-Bereitstellung, sondern lenkt die Entwickler auch von dem ab, worauf sie sich konzentrieren müssen (und wollen!): die Optimierung der Geschäftsfunktionen der Anwendung.

Keine Panik – es gibt einen besseren Weg: Verlagern Sie die Sicherheit und andere nicht funktionale Anforderungen auf Ihre Kubernetes-Infrastruktur! Konnektivitätstools für Kubernetes-Cluster wie Ingress-Controller und Service-Meshes können PDP und PEP für die gesamte Kommunikation zwischen Ihren Anwendungen und Diensten bereitstellen – unabhängig davon, ob sie von Benutzern oder anderen Anwendungen oder Diensten ausgeht. So können Sie sich auf Ihre geschäftlichen Kernkompetenzen und Funktionen konzentrieren und gleichzeitig Anwendungen schneller und einfacher bereitstellen.

Wie F5 NGINX helfen kann

Wie die folgende Abbildung zeigt, umfasst die NGINX-Lösung für sichere Kubernetes-Konnektivität alle infrastrukturunabhängigen Komponenten und Tools, die Sie benötigen, um Ihre Benutzer, verteilten Anwendungen, Microservices und APIs in großem Maßstab und durchgängig in jeder Umgebung erfolgreich zu schützen – lokal, hybrid und in Multi-Cloud-Umgebungen. Basierend auf der weltweit beliebtesten Datenebene vereint die Lösung:

  • NGINX Ingress Controller als Ingress-Controller für Kubernetes und als PDP/PEP, der sich in Identitäts- und SSO-Anbieter von Drittanbietern integrieren lässt. Basierend auf NGINX Plus, übernimmt NGINX Ingress Controller erweiterte Konnektivität, Überwachung und Transparenz, Authentifizierung und SSO und fungiert als API-Gateway.
  • NGINX Service Mesh sichert als schlankes, schlüsselfertiges und entwicklerfreundliches Service Mesh die Dienstkonnektivität innerhalb des Kubernetes-Clusters. Der für Unternehmen ausgelegte Sidecar, der als gemeinsam mit jedem Kubernetes-Dienst bereitgestellter PDP/PEP fungiert, basiert auf NGINX Plus.
  • NGINX App Protect für den umfassenden Schutz moderner Anwendungen und APIs, basierend auf den marktführenden Sicherheitstechnologien von F5. Die Lösung verfolgt einen modularen Ansatz, der flexible Bereitstellungsszenarien und eine optimale Ressourcennutzung ermöglicht:
    • NGINX App Protect WAF – Eine leistungsstarke, schlanke WAF, die vor den OWASP Top 10 schützt und die PCI-DDS-Konformität gewährleistet
    • NGINX App Protect DoS – Verhaltensbasierte Erkennung und Abwehr von DoS-Angriffen mit konsistentem und adaptivem Schutz über verschiedene Clouds und Architekturen hinweg

Zero-Trust-Diagramm 2

Mit der NGINX-Lösung können Sie:

  • Integrieren Sie robuste Sicherheitskontrollen in verteilten Umgebungen, ohne die Veröffentlichungsgeschwindigkeit zu verlangsamen oder die Leistung zu beeinträchtigen.
  • Laufende Angriffe durch kontinuierliche Authentifizierung, Identitätsprüfung und die Erkennung von Verhaltensanomalien automatisch blockieren
  • Implementieren Sie Least-Privilege-Richtlinien in Echtzeit, granulare Zugriffskontrollen, Ende-zu-Ende-Verschlüsselung und eine teamübergreifende Governance.
  • Anwendungen sicher vom Code bis zum Kunden bereitstellen – mit einer integrierten, robusten WAF und DoS-Schutz auf Anwendungsebene
  • Bewerten und verbessern Sie kontinuierlich die Sicherheitslage Ihrer Kubernetes-Umgebung mithilfe detaillierter Echtzeit- und Verlaufsmetriken.
  • Vereinfachen Sie die Bereitstellung und Verwaltung sicherer Benutzer-zu-Dienst- und Dienst-zu-Dienst-Kommunikation durch die Konsolidierung von Technologien.

Implementieren Sie umfassende Zero-Trust-Sicherheit mit NGINX

Wenn Unternehmen wachsen, wird es immer wichtiger, Anforderungen, die nicht spezifisch für die Funktionalität einer App sind – etwa Zero-Trust-Sicherheitsfunktionen – aus der Anwendungsschicht auszulagern. Wie oben erläutert, werden Entwickler dadurch von der Aufgabe entlastet, Sicherheitslogik für ihre Apps zu entwickeln, zu pflegen und zu replizieren. Stattdessen können sie Sicherheitstechnologien auf Plattformebene einfach nutzen. NGINX ermöglicht die zentrale Durchsetzung von Sicherheitsrichtlinien für Kubernetes am Rand des Clusters mit dem NGINX Ingress Controller und innerhalb des Clusters mit NGINX Service Mesh. Je nach Sicherheitsanforderungen Ihrer App können Sie mit NGINX App Protect WAF und DoS, die am Rand oder innerhalb des Clusters bereitgestellt werden, einen erweiterten Anwendungsschutz vor komplexen Cyberangriffen hinzufügen.

Sehen wir uns im Detail an, wie die NGINX-Lösung die Funktionen bereitstellt, die Sie benötigen, um umfassende Zero-Trust-Sicherheit für Ihre Kubernetes-Bereitstellungen zu implementieren.

Authentifizierung und Autorisierung

Eines der Grundprinzipien der Zero-Trust-Sicherheit besteht darin, dass jedes Gerät, jeder Benutzer, jeder Dienst und jede Anfrage authentifiziert und autorisiert wird. Bei der Authentifizierung wird die Identität überprüft – mit anderen Worten: Es wird sichergestellt, dass jeder an einer Kommunikation Beteiligte tatsächlich derjenige ist, für den er sich ausgibt. Bei der Autorisierung wird überprüft, ob ein Beteiligter berechtigt ist, auf die angeforderte Ressource oder Funktion zuzugreifen.

Zur Umsetzung dieses Prinzips bietet die NGINX-Lösung mehrere Optionen für die Implementierung von Authentifizierung und Autorisierung, darunter HTTP-Basic-Authentifizierung, JSON Web Tokens (JWTs) und OpenID Connect durch Integrationen mit Identitätsanbietern wie Okta und Azure Active Directory (AD). Die NGINX-Lösung stellt außerdem sichere Identitäten für Dienste aus (ähnlich wie Anwendungsbenutzer Zertifikate als Identitätsnachweis erhalten), sodass diese authentifiziert und autorisiert werden können, um Aktionen im gesamten Kubernetes-Cluster auszuführen. Neben der Verwaltung von Workload-Identitäten automatisiert die NGINX-Lösung auch die Zertifikatsverwaltung durch integrierte Anbindungen an Public-Key-Infrastrukturen (PKI) und Zertifizierungsstellen.

Da der NGINX Ingress Controller bereits alle im Cluster eingehenden Anfragen überprüft und an die entsprechenden Dienste weiterleitet, ist er der effizienteste Ort für die zentrale Benutzerauthentifizierung und -autorisierung sowie in einigen Szenarien auch für die Dienstauthentifizierung.

Weitere Informationen finden Sie in unserem Blogbeitrag „Implementierung der OpenID-Connect-Authentifizierung für Kubernetes mit Okta und dem NGINX Ingress Controller“.

Datenverschlüsselung und -integrität

Ein weiteres Zero-Trust-Prinzip besagt, dass jegliche Kommunikation abgesichert sein muss – ihre Vertraulichkeit und Integrität müssen gewahrt bleiben – unabhängig davon, wo sich die Beteiligten befinden. Daten dürfen weder von unbefugten Dritten gelesen noch während der Übertragung verändert werden. Um dieses Prinzip zu erfüllen, verwendet die NGINX-Lösung SSL/TLS-Verschlüsselung für die Kommunikation zwischen Benutzern und Diensten sowie gegenseitige TLS-Authentifizierung (mTLS) und -Verschlüsselung für die Kommunikation zwischen Diensten.

Wenn Ihre Anwendungsarchitektur keine Service-zu-Service-Kommunikation innerhalb des Kubernetes-Clusters umfasst, reicht der NGINX Ingress Controller möglicherweise aus, um Ihre Anforderungen an die Datenintegrität zu erfüllen. Es gibt zwei grundlegende Optionen:

  • Mit TLS Passthrough leitet der NGINX Ingress Controller SSL/TLS-verschlüsselte Verbindungen direkt an den Dienst weiter, ohne sie zu entschlüsseln oder Zugriff auf die SSL/TLS-Zertifikate oder -Schlüssel zu benötigen.
  • Bei der SSL/TLS-Terminierung fungiert der NGINX Ingress Controller als Reverse-Proxy. Er beendet die TLS-Verbindung mit dem Anfragenden und verwendet anschließend mTLS oder dienstseitiges SSL/TLS, um eine neue Verbindung zu Ihren Kubernetes-Diensten (Backend- und Upstream-Servern) zu verschlüsseln.

Wenn Ihre Architektur eine Service-zu-Service-Kommunikation innerhalb des Clusters umfasst, benötigen Sie zur Gewährleistung der Datenintegrität sowohl den NGINX Ingress Controller als auch NGINX Service Mesh. NGINX Service Mesh stellt sicher, dass nur bestimmte Services miteinander kommunizieren dürfen, und verwendet mTLS, um sie zu authentifizieren und die Kommunikation zwischen ihnen zu verschlüsseln. Mit NGINX Service Mesh können Sie mTLS nach dem „Zero-Touch“-Prinzip implementieren. Das bedeutet, dass Entwickler ihre Anwendungen weder nachträglich mit Zertifikaten ausstatten müssen noch überhaupt wissen müssen, dass eine gegenseitige Authentifizierung stattfindet.

Weitere Informationen zur Absicherung der Kommunikation in einem Kubernetes-Cluster finden Sie in unserem Blogbeitrag „Die mTLS-Architektur in NGINX Service Mesh“.

Zugriffskontrolle und Zugriffsrichtlinie

Die Zugriffskontrolle ist ein weiteres entscheidendes Element des Zero-Trust-Modells. Kubernetes verwendet eine rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC), um zu regeln, welche Ressourcen und Vorgänge den verschiedenen Benutzern zur Verfügung stehen. Sie legt fest, wie Benutzer oder Benutzergruppen mit Kubernetes-Objekten oder Namespaces im Cluster interagieren können.

Die NGINX-Kubernetes-Konnektivitätslösung unterstützt RBAC und lässt sich dadurch problemlos an die Sicherheitsrichtlinien Ihres Unternehmens anpassen. Mit RBAC erhalten Benutzer kontrollierten Zugriff auf die Funktionen, die sie für ihre Arbeit benötigen, ohne ein IT-Ticket erstellen und auf dessen Bearbeitung warten zu müssen. Ohne RBAC können Benutzer Berechtigungen erhalten, die sie nicht benötigen oder zu denen sie nicht berechtigt sind. Werden diese Berechtigungen missbraucht, kann dies zu Sicherheitslücken führen.

Wenn Sie RBAC mit dem NGINX Ingress Controller konfigurieren, können Sie den Zugriff für zahlreiche Personen und Teams steuern, indem Sie die Berechtigungen an den verschiedenen Rollen in der Anwendungsentwicklungs- und Bereitstellungsumgebung Ihres Unternehmens ausrichten. Das Tool zur granularen Zugriffsverwaltung ermöglicht Self-Service und Governance über mehrere Teams hinweg.

Wenn Sie erfahren möchten, wie Sie RBAC mit dem NGINX Ingress Controller nutzen können, sehen Sie sich unser Webinar auf DevNetwork an: „Fortgeschrittene Kubernetes-Bereitstellungen mit dem NGINX Ingress Controller“. Ab 13:50 erklären unsere Experten, wie Sie RBAC und Ressourcenzuweisung für Sicherheit, Self-Service und Mandantenfähigkeit einsetzen können.

Beobachtbarkeit

Audits, Überwachung, Protokollierung, Tracing und Berichterstattung sind zentrale Elemente einer Zero-Trust-Umgebung. Je mehr Informationen Sie über den Zustand Ihrer Kubernetes-Anwendungsinfrastruktur erfassen und je effektiver Sie diese korrelieren, analysieren und auswerten können, desto besser können Sie Ihre Sicherheitslage stärken.

Wahrscheinlich verwenden Sie in Ihrer Kubernetes-Bereitstellung bereits Monitoring-Tools und benötigen nicht noch ein weiteres. Damit Sie sich ein vollständiges Bild davon machen können, was in Ihren Clustern vor sich geht, haben wir die NGINX Plus API so instrumentiert, dass sich Metriken problemlos in jedes Drittanbieter-Tool exportieren lassen, das JSON unterstützt. Zudem bieten wir vorkonfigurierte Integrationen mit beliebten Tools wie OpenTelemetry sowie Grafana und Prometheus. Durch detaillierte Traces erhalten Sie gezielte Einblicke in die Anwendungskonnektivität und können nachvollziehen, wie Anfragen durchgängig verarbeitet werden: NGINX Ingress Controller bietet Einblicke in die Konnektivität zwischen Ihrem Cluster und externen Clients, während NGINX Service Mesh die Konnektivität zwischen den containerisierten, auf Microservices basierenden Anwendungen und Diensten innerhalb des Clusters abdeckt.

WAF- und DoS-Schutz

Mit NGINX App Protect können Sie die Sicherheit Ihrer verteilten Anwendungen weiter erhöhen, indem Sie sie vor Bedrohungen wie den OWASP Top 10 und Denial-of-Service-Angriffen (DoS) auf Layer 7 schützen. Als integraler Bestandteil der durchgängigen NGINX-Lösung für sichere Konnektivität bietet NGINX App Protect einen flexiblen, anwendungszentrierten Schutz vor hochentwickelten Bedrohungen, der weit über einfache Signaturen hinausgeht. Die Lösung nutzt die führende und bewährte Sicherheitsexpertise von F5, ohne die Geschwindigkeit von Releases oder die Performance zu beeinträchtigen. Sicherheitstelemetriedaten lassen sich problemlos an Analyse- und Transparenzlösungen von Drittanbietern weiterleiten. Zudem reduziert die Lösung Fehlalarme durch äußerst zuverlässige Signaturen und automatisierte Verhaltensanalysen.

Das modulare Design von NGINX App Protect ermöglicht es Ihnen, je nach Bedarf entweder WAF- oder DoS-Schutz oder beides auf derselben oder auf unterschiedlichen Instanzen bereitzustellen. Sie können sich beispielsweise dafür entscheiden, diese zusammen mit dem NGINX Ingress Controller am Rand Ihres Clusters bereitzustellen. Dies ist ideal, um einen differenzierten Schutz zu gewährleisten, der im gesamten Cluster einheitlich ist. Wenn Sie stattdessen anwendungsspezifische Richtlinien für mehrere Anwendungen in einem Cluster benötigen, können Sie den WAF- und/oder DoS-Schutz auf Service- oder Pod-Ebene bereitstellen.

Weitere Informationen zur Bereitstellung von WAF- und DoS-Schutz finden Sie im Beitrag „Shifting Security Tools Left for Safer Apps“ in unserem Blog.

Erste Schritte mit der NGINX Zero-Trust-Sicherheitslösung für Kubernetes

Unabhängig davon, ob Sie am Anfang Ihrer Kubernetes-Reise stehen oder als fortgeschrittener Benutzer Kubernetes bereits seit einiger Zeit in einer Produktionsumgebung betreiben: NGINX bietet ein umfassendes Set an Tools und Bausteinen, das Ihre Anforderungen erfüllt und Ihre Sicherheitslage verbessert.

Fordern Sie zunächst Ihre kostenlose 30-Tage-Testversion von NGINX Ingress Controller mit NGINX App Protect WAF und DoS an und laden Sie das dauerhaft kostenlose NGINX Service Mesh herunter.


Teilen

Über den Autor

Ilya Krutov
Ilya KrutovSenior Product Marketing Manager | F5 NGINX

Weitere Blogbeiträge von Ilya Krutov

Ähnliche Blogbeiträge

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln
NGINX | 23.08.2022

Die Zukunft von NGINX: Zurück zu unseren Open-Source-Wurzeln

Beim NGINX Sprint 2022 besinnen wir uns auf unsere Open-Source-Wurzeln. Erfahren Sie mehr über die Initiativen, die wir im kommenden Jahr verfolgen, und teilen Sie uns mit, was Sie sich wünschen.

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen
NGINX | 08.09.2021

Ein Leitfaden zur Auswahl eines Ingress-Controllers, Teil 1: Ermitteln Sie Ihre Anforderungen

Ein Ingress-Controller kann eines der leistungsstärksten Tools in Ihrem Kubernetes-Stack sein. Erfahren Sie, wie Sie Ihre Ingress-Anforderungen ermitteln, um die beste Option auszuwählen.

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet
NGINX | 16.08.2021

Bereitstellung des NGINX Ingress Controllers auf Amazon EKS: So haben wir getestet

Wir haben kürzlich den Lösungsleitfaden zum NGINX Ingress Controller um Empfehlungen zur Dimensionierung für Amazon Elastic Kubernetes Service (EKS) ergänzt. In diesem Blogbeitrag erläutern wir, wie wir diese Empfehlungen erarbeitet haben, und stellen Ihnen alle Informationen zur Verfügung, die Sie benötigen, um selbst ähnliche Tests durchzuführen.

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77
NGINX | 12.12.2018

Protokollierung des Datenverkehrs zwischen NGINX und Upstream-Servern bei CDN77

Bei der Fehlersuche bei Datenverkehrsproblemen zwischen NGINX und Upstream-Servern konnte CDN77 die benötigten Daten nur aus dem Fehlerprotokoll mit aktivierter Debug-Ausgabe beziehen, was die Leistung beeinträchtigt und riesige Dateien erzeugt. Daher entwickelte das Team ein neues benutzerdefiniertes Modul, das ausschließlich die benötigten Daten protokolliert.

Ankündigung von NGINX Plus R16
NGINX | 05.09.2018

Ankündigung von NGINX Plus R16

NGINX Plus R16 ist eine einheitliche, elastische Ingress- und Egress-Schicht für Anwendungen, die die Funktionen eines Load Balancers, API-Gateways und einer WAF vereint und neue Features wie clusterfähige Ratenbegrenzung, Schlüssel-Wert-Speicher, „Random with Two Choices“, verbessertes UDP-Load-Balancing und vieles mehr bietet.

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing
NGINX | 13.10.2016

5 Gründe für den Umstieg auf softwarebasiertes Load Balancing

Entdecken Sie fünf Gründe für den Wechsel zu einem softwarebasierten Load Balancer wie NGINX Plus, darunter Kosteneinsparungen, die Einführung von DevOps und eine einheitliche Lösung für alle Umgebungen.