BLOG | NGINX

Zero-Trust-Sicherheit für Kubernetes-Apps mit NGINX

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Ilya Krutov Miniaturbild
Ilja Krutow
Veröffentlicht am 26. September 2022

Die Komplexität und Anzahl von Cybersicherheitsangriffen nimmt exponentiell zu. Dadurch entsteht ein erhebliches Gefährdungsrisiko für Ihre Apps, die in lokalen, hybriden und Multi-Cloud-Kubernetes-Umgebungen bereitgestellt werden. Herkömmliche Sicherheitsmodelle sind perimeterbasiert und gehen davon aus, dass Benutzer vertrauenswürdig sind (und die Kommunikation zwischen ihnen sicher), wenn sie sich innerhalb der sicheren Grenzen der Umgebung befinden. In den heutigen verteilten Umgebungen existiert das Konzept einer sicheren Zone innerhalb des Perimeter nicht mehr – Kommunikation, die aus „innerhalb“ der Umgebung stammt, kann genauso gefährlich sein wie externe Bedrohungen.

In diesem Blog untersuchen wir die Vorteile der Einführung eines Zero-Trust-Modells zur Sicherung Ihrer Kubernetes-Infrastruktur und wie NGINX zur Verbesserung Ihrer Sicherheitslage beitragen kann.

Was ist Zero Trust?

Zero Trust ist ein Sicherheitsmodell, das auf Identität und nicht auf Standort basiert. Dabei wird davon ausgegangen, dass jede Anfrage für den Zugriff auf Anwendungen, Daten und Geräte ein Angriff sein könnte, unabhängig davon, ob sich der Anfragende vor Ort, an einem Remote-Standort oder in der Cloud befindet.

Um die drei Kernprinzipien von Zero Trust – niemals vertrauen, immer überprüfen, kontinuierlich überwachen – umzusetzen, muss jeder Benutzer, jeder Dienst, jede Anwendung und jedes Gerät kontinuierlich einen Authentifizierungs- und Autorisierungsnachweis vorlegen. Zeitgebundene Berechtigungen werden auf Grundlage dynamischer Zugriffsrichtlinien und nach dem Prinzip der geringsten Berechtigungen gewährt.

Die gesamte Kommunikation wird verschlüsselt und über einen Policy Decision/Enforcement Point (PDP/PEP) geleitet, der alle Parteien authentifiziert und ihnen auf der Grundlage dynamischer Zugriffsrichtlinien Berechtigungen erteilt. Darüber hinaus stehen Audit-, Überwachungs-, Berichts- und Automatisierungsfunktionen zur Verfügung, um Sicherheitsrisiken zu analysieren, zu bewerten und zu mindern.

Zero-Trust-Diagramm

Wie Zero Trust Ihre Sicherheitslage verbessert

Zero Trust verbessert Ihre Sicherheitslage auf verschiedene Weise:

  • Blockiert automatisch nicht autorisierte Aktivitäten
  • Erzwingt Zugriffskontrollen, um die Angriffsfläche zu verringern
  • Erkennt Verhaltensanomalien und Hinweise auf eine Gefährdung
  • Definiert Echtzeit-Richtlinien mit geringsten Berechtigungen, die die Zugriffszeit begrenzen
  • Authentifiziert und validiert ständig die Identität, um laufende Angriffe zu blockieren

Zero Trust ist besonders wichtig für moderne, Cloud-native Apps, die in einer Kubernetes-Umgebung ausgeführt werden. Lose gekoppelte und portable, verteilte Apps und Dienste werden in Containern gespeichert und in hybriden Multi-Cloud-Umgebungen ausgeführt, in denen standortbasierte Sicherheit keine Option ist. Sicherheit hängt zwangsläufig von einer kontinuierlichen Validierung von Identitäten und Berechtigungen, einer Ende-zu-Ende -Verschlüsselung und einer Überwachung ab.

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 Auditing für Benutzer, Anwendungen und Dienste bereitstellen.

Eine Möglichkeit, dies zu erreichen, besteht darin, Sicherheit in die App selbst zu integrieren. Das bedeutet jedoch, dass Ihre Entwickler mehrere Sicherheitsverfahren implementieren müssen – zum Herstellen und Überprüfen von Vertrauen, zum Verwalten von Benutzeridentitäten und Zertifikaten, zum Verschlüsseln und Entschlüsseln der gesamten Kommunikation usw. Sie müssen außerdem Technologien von Drittanbietern wie TLS und Single Sign-On (SSO) verstehen und integrieren. All dies erhöht nicht nur die Komplexität Ihrer bereits komplexen Kubernetes-Bereitstellung. Es lenkt die Entwickler von dem ab, worauf sie sich konzentrieren müssen (und wollen!): die Optimierung der Geschäftsfunktionalität der App.

Keine Panik – es gibt einen besseren Weg: Verlagern Sie 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 Apps und Diensten bereitstellen – unabhängig davon, ob sie von Benutzern oder anderen Apps oder Diensten stammt. Das bedeutet, dass Sie sich auf Ihr Kerngeschäft und Ihre Funktionalität konzentrieren können und gleichzeitig Apps schneller und einfacher bereitstellen können.

Wie F5 NGINX helfen kann

Wie das folgende Diagramm 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 – vor Ort, hybrid und in mehreren Clouds – erfolgreich zu schützen. Die Lösung basiert auf der beliebtesten Datenebene der Welt und kombiniert:

  • NGINX Ingress Controller als Ingress-Controller für Kubernetes und ein PDP/PEP, der sich in Identitäts- und SSO-Anbieter von Drittanbietern integrieren lässt. Basierend auf NGINX Plus übernimmt der NGINX Ingress Controller erweiterte Konnektivität, Überwachung und Sichtbarkeit, Authentifizierung und SSO und fungiert als API-Gateway.
  • NGINX Service Mesh sichert als leichtes, schlüsselfertiges und entwicklerfreundliches Service Mesh die Servicekonnektivität innerhalb des Kubernetes-Clusters. Der Sidecar der Unternehmensklasse, der als PDP/PEP fungiert und mit jedem Kubernetes-Dienst co-lokalisiert ist, basiert auf NGINX Plus.
  • NGINX App Protect für ganzheitlichen Schutz moderner Apps und APIs, basierend auf den marktführenden Sicherheitstechnologien von F5. Es verwendet einen modularen Ansatz für Flexibilität in Bereitstellungsszenarien und optimale Ressourcennutzung:
    • NGINX App Protect WAF – Ein starkes, leichtes WAF, das vor den OWASP Top 10 schützt und PCI DDS-Konformität bietet
    • NGINX App Protect DoS – Verhaltensbasierte DoS-Erkennung und -Minderung mit konsistentem und adaptivem Schutz über Clouds und Architekturen hinweg

Zero-Trust-Diagramm 2

Die NGINX-Lösung ermöglicht Ihnen:

  • Integrieren Sie starke Sicherheitskontrollen in verteilten Umgebungen, ohne die Release-Geschwindigkeit zu verlangsamen oder die Leistung zu beeinträchtigen.
  • Blockieren Sie laufende Angriffe automatisch durch ständige Authentifizierung, Identitätsüberprüfung und Erkennung von Verhaltensanomalien.
  • Implementieren Sie Echtzeit-Richtlinien für geringste Berechtigungen, feinkörnige Zugriffskontrolle, End-to-End- Verschlüsselung und Governance über mehrere Teams hinweg.
  • Liefern Sie Apps sicher vom Code zum Kunden mit einer integrierten, robusten WAF und DoS-Abwehr auf App-Ebene
  • Bewerten und verbessern Sie die Sicherheitslage Ihrer Kubernetes-Umgebung kontinuierlich mit detaillierten Echtzeit- und historischen Metriken.
  • Vereinfachen Sie die Bereitstellung und Verwaltung sicherer Benutzer-zu-Dienst- und Dienst-zu-Dienst- Kommunikation durch Technologiekonsolidierung.

Implementieren Sie umfassende Zero Trust-Sicherheit mit NGINX

Mit der Skalierung von Unternehmen wird es entscheidend, Anforderungen, die nicht spezifisch für die Funktionalität einer App sind – wie etwa Zero Trust-Sicherheitsfunktionen – aus der Anwendungsebene auszulagern. Wir haben oben erläutert, wie Entwickler hierdurch von der Last befreit werden, Sicherheitslogik für ihre Apps erstellen, verwalten und replizieren zu müssen. Stattdessen können sie Sicherheitstechnologien problemlos auf Plattformebene nutzen. NGINX bietet eine zentralisierte Durchsetzung von Sicherheitsrichtlinien für Kubernetes am Rand des Clusters mit NGINX Ingress Controller und innerhalb des Clusters mit NGINX Service Mesh. Sie können mit NGINX App Protect WAF und DoS, das je nach Ihren App-Sicherheitsanforderungen am Edge oder innerhalb des Clusters bereitgestellt wird, erweiterten Anwendungsschutz vor ausgeklügelten Cyberangriffen hinzufügen.

Lassen Sie uns im Detail untersuchen, wie die NGINX-Lösung die Funktionen enthält, die Sie zum Implementieren umfassender Zero Trust-Sicherheit für Ihre Kubernetes-Bereitstellungen benötigen.

Authentifizierung und Autorisierung

Eines der Schlüsselprinzipien der Zero-Trust-Sicherheit besteht darin, dass jedes Gerät, jeder Benutzer, jeder Dienst und jede Anfrage authentifiziert und autorisiert wird. Bei der Authentifizierung handelt es sich um den Vorgang der Identitätsüberprüfung. Mit anderen Worten geht es darum, sicherzustellen, dass jede an einer Kommunikation beteiligte Partei auch diejenige ist, die sie vorgibt zu sein. Bei der Autorisierung handelt es sich um den Vorgang, mit dem überprüft wird, ob eine Partei Anspruch auf den von ihr angeforderten Zugriff auf eine Ressource oder Funktion hat.

Um diesem Prinzip gerecht zu werden, bietet die NGINX-Lösung mehrere Optionen zur Implementierung von Authentifizierung und Autorisierung, darunter HTTP-Basisauthentifizierung , 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 Identifikationen in Form von Zertifikaten erhalten), wodurch diese authentifiziert und autorisiert werden können, Aktionen im gesamten Kubernetes-Cluster auszuführen. Zusätzlich zur Handhabung von Workload-Identitäten automatisiert die NGINX-Lösung die Zertifikatsverwaltung mit integrierten Integrationen mit Public Key Infrastructure (PKI) und Zertifizierungsstellen.

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

Weitere Einzelheiten finden Sie in unserem Blog unter „Implementieren der OpenID Connect-Authentifizierung für Kubernetes mit Okta und NGINX Ingress Controller“ .

Datenverschlüsselung und -integrität

Ein weiteres Zero-Trust-Prinzip besteht darin, dass die gesamte Kommunikation gesichert werden muss – ihre Vertraulichkeit und Integrität gewahrt bleiben muss – unabhängig davon, wo sich die Teilnehmer befinden. Daten dürfen während der Übertragung weder unbefugt gelesen noch verändert werden. Um diesem Prinzip gerecht zu werden, verwendet die NGINX-Lösung SSL/TLS-Verschlüsselung für die Benutzer-Dienst- Kommunikation und gegenseitige TLS-Authentifizierung (mTLS) und -Verschlüsselung für die Dienst-zu-Dienst -Kommunikation.

Wenn Ihre App-Architektur keine Dienst-zu-Dienst- Kommunikation innerhalb des Kubernetes-Clusters erfordert, reicht 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.
  • Mit der SSL/TLS-Terminierung fungiert der NGINX Ingress Controller als Reverse-Proxy, der die TLS-Verbindung mit dem Anforderer beendet und dann mTLS oder serviceseitiges SSL/TLS verwendet, um eine neue Verbindung zu Ihren Kubernetes-Diensten (Backend- und Upstream-Server) zu verschlüsseln.

Wenn Ihre Architektur eine Dienst-zu-Dienst- Kommunikation innerhalb des Clusters beinhaltet, benötigen Sie zur Gewährleistung der Datenintegrität sowohl NGINX Ingress Controller als auch NGINX Service Mesh. NGINX Service Mesh stellt sicher, dass nur bestimmte Dienste 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 „Zero Touch“ implementieren. Das bedeutet, dass Entwickler ihre Anwendungen nicht mit Zertifikaten nachrüsten müssen und nicht einmal wissen müssen, dass eine gegenseitige Authentifizierung stattfindet.

Weitere Informationen zur Sicherung der Kommunikation in einem Kubernetes-Cluster finden Sie in unserem Blog im Artikel „Die mTLS-Architektur im NGINX Service Mesh“ .

Zugriffskontrolle und Zugriffsrichtlinie

Die Zugriffskontrolle ist ein weiteres wichtiges Element im Zero-Trust-Modell. Kubernetes verwendet eine rollenbasierte Zugriffskontrolle (RBAC), um zu regeln, welche Ressourcen und Vorgänge verschiedenen Benutzern zur Verfügung stehen. Es bestimmt, wie Benutzer oder Benutzergruppen mit jedem Kubernetes-Objekt oder -Namespace im Cluster interagieren können.

Die NGINX Kubernetes-Konnektivitätslösung ist RBAC-fähig und ermöglicht so eine einfache Anpassung an die Sicherheitsrichtlinien Ihres Unternehmens. Mit der Implementierung von RBAC erhalten Benutzer eingeschränkten Zugriff auf die Funktionen, die sie für ihre Arbeit benötigen, ohne ein IT-Ticket einreichen und auf dessen Erfüllung warten zu müssen. Ohne RBAC können Benutzer Berechtigungen erhalten, die sie nicht benötigen oder auf die sie keinen Anspruch haben. Bei Missbrauch der Berechtigungen kann dies zu Sicherheitslücken führen.

Wenn Sie RBAC mit NGINX Ingress Controller konfigurieren, können Sie den Zugriff für zahlreiche Personen und Teams steuern, indem Sie die Berechtigungen an die verschiedenen Rollen in der Anwendungsentwicklungs- und Bereitstellungsumgebung Ihres Unternehmens anpassen. Sein feinkörniges Zugriffsverwaltungstool ermöglicht Self-Service und Governance über mehrere Teams hinweg.

Um zu erfahren, wie Sie RBAC mit NGINX Ingress Controller nutzen können, sehen Sie sich unser Webinar zu DevNetwork „Erweiterte Kubernetes-Bereitstellungen mit NGINX Ingress Controller“ an. Ab 13:50 erklären unsere Experten, wie Sie RBAC und Ressourcenzuweisung für Sicherheit, Selfservice und Multitenancy nutzen können.

Beobachtbarkeit

Auditing, Überwachung, Protokollierung, Nachverfolgung und Berichterstellung sind Schlüsselelemente in einer Zero-Trust-Umgebung. Je mehr Informationen Sie über den Zustand Ihrer Kubernetes-Anwendungsinfrastruktur sammeln und je effektiver Sie diese korrelieren, analysieren und auswerten können, desto mehr können Sie Ihre Sicherheitslage stärken.

Sie verwenden in Ihrer Kubernetes-Bereitstellung wahrscheinlich bereits Überwachungstools 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 ausgestattet, dass sich Metriken problemlos in jedes Drittanbietertool exportieren lassen, das JSON akzeptiert, und bieten vorgefertigte Integrationen mit beliebten Tools wie OpenTelemetry , Grafana und Prometheus . Sie erhalten gezielte Einblicke in die App-Konnektivität mit Deep Traces, sodass Sie verstehen, wie Anfragen End-to-End verarbeitet werden: NGINX Ingress Controller bietet Einblick in die Konnektivität zwischen Ihrem Cluster und externen Clients, während NGINX Service Mesh die Konnektivität zwischen den containerisierten, auf Microservices basierenden Apps und Diensten innerhalb des Clusters abdeckt.

WAF und DoS-Schutz

Mit NGINX App Protect können Sie die Sicherheit Ihrer verteilten Anwendungen weiter stärken, indem Sie sie vor Bedrohungen wie den OWASP Top 10 und Layer 7 -Denial-of-Service-Angriffen (DoS) schützen. NGINX App Protect, ein integraler Bestandteil der durchgängigen sicheren NGINX-Konnektivitätslösung, bietet agile, app-zentrierte Sicherheit vor den fortschrittlichsten Bedrohungen – weit über einfache Signaturen hinaus. Es nutzt die führende und bewährte Sicherheitskompetenz von F5 und beeinträchtigt weder die Release-Geschwindigkeit noch die Leistung. Es kann Sicherheitstelemetrie problemlos an Analyse- und Sichtbarkeitslösungen von Drittanbietern weiterleiten und reduziert Fehlalarme durch Signaturen mit hoher Vertrauenswürdigkeit und automatisierte Verhaltensanalyse.

Dank des modularen Designs von NGINX App Protect können Sie je nach Bedarf WAF- und DoS-Schutz oder beides auf derselben oder auf verschiedenen Instanzen bereitstellen. Sie können sie beispielsweise mit dem NGINX Ingress Controller am Rand Ihres Clusters bereitstellen. Dies ist ideal, um einen fein abgestuften Schutz bereitzustellen, der über einen gesamten einzelnen Cluster hinweg konsistent ist. Wenn Sie stattdessen app‑spezifische Richtlinien für mehrere Apps in einem Cluster benötigen, können Sie WAF und/oder DoS‑Schutz auf Service‑ oder Pod‑Ebene bereitstellen.

Weitere Informationen zum Bereitstellen von WAF und DoS-Schutz finden Sie in unserem Blog unter „Shifting Security Tools Left for Safer Apps“ .

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

Egal, ob Sie sich noch am Anfang Ihrer Kubernetes-Reise befinden oder ein fortgeschrittener Benutzer sind, der Kubernetes bereits seit einiger Zeit in der Produktion ausführt, NGINX bietet einen umfassenden Satz an Tools und Bausteinen, um Ihre Anforderungen zu erfüllen und Ihre Sicherheitslage zu verbessern.

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 stets kostenlose NGINX Service Mesh herunter .


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."