NGINX veröffentlicht die Version 1.9.0 des NGINX Ingress Controller. NGINX Controller gehört neben NGINX Plus, NGINX App Protect, NGINX Unit und NGINX Amplify zum Portfolio der NGINX Reihe und basiert auf der Open-Source-Software. Der NGINX Ingress Controller für Kubernetes ist ein Hintergrunddienst, der unter anderem auf NGINX Open Source, NGINX Plus und auch in einer Kubernetes Umgebung ausgeführt werden kann. Der Dienst ermittelt Anforderungen, die für einen Lastausgleich erforderlich sind, indem er Kubernetes Ingress Ressourcen sowie NGINX Ingress Ressourcen bewacht. Anschließend werden durch diesen Hintergrunddienst automatisch NGINX oder NGINX Plus konfiguriert, um die Weiterleitung oder den Ausgleich des Datenverkehrs zu diesen Diensten zu ermöglichen. Das neue Update erweitert die Entwicklung, der von NGINX unterstützten Lösung für den Ingress-Lastausgleich auf Kubernetes Plattformen. Darunter fallen unter anderem die Container Plattformen Red Hat OpenShift, Google Kubernetes Engine und viele weitere.
Mit dem neuen Release verbessert NGINX ihren Einsatz in Richtung eines flexibleren und zeitgleich leistungsfähigeren Ingress Controller.
NGINX Ingress Controller 1.9.0 umfasst folgende neue Erweiterungen
WAF Funktionen
Zusätzliche WAF Richtlinien werden ab sofort von NGINX App Protect unterstützt. Darunter fallen benutzerdefinierte URLs, benutzerdefinierte Parameter und die JSON Schema-Validierungen. Weitere Informationen zur Integration von App Protect in den NGINX Ingress Controller sind in folgendem Beitrag zu finden.
Verbesserte Sichtbarkeit
Durch neu integrierte Ingress Controller Metriken bietet sich die Möglichkeit, das Verhalten der Anwendungen besser verstehen zu können. Dazu gehören unter anderem Upstream spezifische Metriken (Prometheus-Metriken), der Grund für das erneute Laden der Konfiguration sowie die Latenz und Verteilung von Anforderungen. Das Grafana-Dashboard wird erweitert, um die Metriken zu nutzen und zusätzliche Visualisierungsmöglichkeiten zu bieten. Hier werden auch die Kubernetes Objekte, die mit den Metriken in Verbindung stehen, identifiziert. Durch das Dashboard lassen sich nicht gewünschte Verhaltensmuster zügig ausfindig machen, die wiederum zu einer schnelleren Fehlerbehebung beitragen.
Service Mesh
Der NGINX Ingress Controller kann ohne Probleme in das NGINX Service Mesh (NSM) integriert werden. Dies hilft, dass Anwendungen, die im Mesh durchgeführt werden, sicher an externe Services geliefert werden können. Besonders gut gelingt die Integration für InT- und Egress–mTLS-Funktionen mit externen Diensten.
Weitere Richtlinien
Für die Version 1.9.0 des Ingress Controller werden drei neue Richtlinien zusätzlich eingeführt. Die JWT-Validierung, Ratenbegrenzung und mTLS-Authentifizierung. Diese sogenannten Richtlinien wurden bereits in dem NGINX Ingress Controller Update 1.8.0 als separates Kubernetes Objekt eingeführt. Sie können von verschiedenen Teams an mehreren Stellen eingeführt und auch definiert werden. Auch gelten die Richtlinien des Updates 1.9.0 als Ergänzung der bereits eingefügten ACL-Richtlinie.
Validierungsrichtlinie für JSON Web Token
Die Richtlinien zur Validierung sowie auch die Richtlinie zur Ratenbegrenzung von JSON Web Token (JWT) legen ihren Fokus auf den Schutz von Infrastruktur- und Anwendungsressourcen innerhalb des Kubernetes Perimeters. Dadurch soll verhindert werden, dass diese von nicht legitimierten Benutzern missbraucht und gleichzeitig von legitimierten Nutzern überlastet werden.
Um zu erreichen, dass nur legitimierte Nutzer auf eine Anwendung zugreifen können, hängen die dafür zuständigen Sicherheitsteams eine JWT Richtlinie an VS- und VSR-Ressourcen.
Richtlinie zur Ratenbegrenzung
Um Dienste vor sogenannten DDoS-Angriffen oder Kennwortschätzungsangriffen zu schützen, beschränken Sicherheitsteams die Rate der Anforderungen auf einen typischen Wert für tatsächliche Nutzer. Auch ist die Möglichkeit gegeben, einen Statuscode zu bestimmen, der an den Nutzer zurückgegeben wird, falls die Anforderung als abgelehnt oder überlastet eingestuft wurde. Für die Identifikation dieser Benutzer haben die Teams mehrere Möglichkeiten, beispielsweise die IP-Adresse.
mTLS Richtlinien
Teams, die für die Sicherheit verantwortlich sind müssen sicherstellen, dass der Ingress Controller die vorgelegten Zertifikate gegen eine konfigurierbare Zertifizierungsstelle validieren kann. Ist dies der Fall, kann eine verschlüsselte Verbindung zwischen dem Client und dem Server hergestellt werden. Administratoren können, dadurch das Kubernetes eine mandantenfähige Plattform ist, eine weitere Sicherheitsebene zur Verfügung stellen, um sicherzugehen, dass nur authentifizierte Clients zu identifizierbaren Diensten weitergeleitet werden.
Die eingeführten Richtlinien beinhalten zwei neue Richtlinien, die gemeinsam gegenseitiges TLS (mTLS) implementieren. Darunter fallen eine Ingress-mTLS-Richtlinie, welche die vom Client vorgelegte Zertifikate validiert, und eine Egress-mTLS-Richtlinie, die vom Server vorgelegte Zertifikate validiert.
Weitere, ausführlichere Informationen zu den Neuerungen sowie deren genaue Funktionsweise finden sich im offiziellen Blogbeitrag zur Veröffentlichung.