Architektur

4-Stufen-Sicherheitsisolierung mit NATS JetStream Messaging.

Datenfluss-Diagramm

Vollständiger Request/Response-Zyklus durch alle 4 isolierten Sicherheitsstufen

Client
(System)
Frontend
NATS-1
dirty-req
Request
Validator
NATS-2
clean-req
Request
Validator
Backend
Response
Validator
Ihr BackendServer(Ihre API)
NATS-4
clean-resp
Response
Validator
NATS-3
dirty-resp
AuditLog (Syslog/OTLP)
Request-Pfad
Response-Pfad
Request-Pfad
Client → Frontend → NATS-1 → Request Validator → NATS-2 → Backend → Ihr Server
Response-Pfad
Ihr Server → Backend → NATS-3 → Response Validator → NATS-4 → Frontend → Client
Unvalidierte Daten (dirty)
Validierte Daten (clean)
Schreibt ins AuditLog
Externes System

Warum 4 separate NATS-Instanzen?

Sicherheitsisolierung

Jede NATS-Instanz ist vollständig isoliert. Wenn ein Angreifer eine Komponente kompromittiert, kann er nicht auf Nachrichten anderer Stufen zugreifen. Dirty (unvalidierte) und Clean (validierte) Daten werden niemals vermischt.

Defense in Depth

Selbst wenn der Request Validator umgangen wird, bietet der Response Validator eine weitere Schutzebene. Jede Stufe arbeitet unabhängig mit eigener Sicherheitsgrenze.

Audit-Trail

Alle Nachrichten werden in einer separaten PostgreSQL-Audit-Datenbank protokolliert. Dies bietet eine vollständige, unveränderliche Aufzeichnung des gesamten API-Verkehrs für Compliance und Forensik.

Performance

NATS JetStream bietet Hochdurchsatz- und Low-Latency-Messaging. Die 4-Stufen-Architektur fügt minimalen Overhead hinzu und bietet maximale Sicherheit.

Vereinfachungen

Alternative Deployment-Optionen für reduzierte Kosten bei geringeren Sicherheitsanforderungen

Container-basiertes Deployment

Deployment aller Komponenten (Frontend, Request Validator, Response Validator, Backend, 4 NATS-Instanzen) als isolierte Container in einem Podman/Docker Pod mit internem Netzwerk.

Vorteile:
  • Deutlich reduzierte Hardware-Kosten (ein Host statt acht)
  • Einfaches Deployment mit docker-compose/podman-compose
  • Internes Pod-Netzwerk für schnelle Kommunikation
Nachteile:
  • Verlässt sich auf Container-Isolation statt Hardware-Trennung
  • Container-Escape-Vulnerabilities könnten alle Komponenten gefährden
  • Gemeinsame Kernel-Ressourcen

Einmalige Validierung

Anstatt zusätzliche Request Validator und Response Validator Prozesse zu betreiben, führt nur der Backend-Prozess die Validierung durch. NATS-1 ist direkt mit dem Backend verbunden, NATS-3 direkt mit dem Frontend.

Vorteile:
  • Reduzierte Hardware-Kosten (2 Prozesse weniger, 2 NATS-Instanzen weniger)
  • Schnellere Verarbeitung (weniger Hops)
  • Einfachere Deployment-Architektur
Nachteile:
  • Validierung im Backend-Prozess-Kontext (weniger isoliert)
  • Kompromittiertes Backend könnte Validierung umgehen
  • Keine unabhängige Sicherheitsschicht
  • Geringere Netzwerk-Isolation

Eine gemeinsame NATS-Instanz

Anstatt 4 separate NATS-Instanzen zu betreiben, können alle Message-Queues über eine einzige NATS-Instanz mit verschiedenen Subjects (dirty-req, clean-req, dirty-resp, clean-resp) abgewickelt werden.

Vorteile:
  • Geringere Hardware-/Cloud-Kosten
  • Einfachere Wartung und Monitoring
  • Weniger Netzwerkkonfiguration
Nachteile:
  • Geringere Sicherheitsisolierung
  • Bei einem NATS-Bug könnten Validierungen umgangen werden
  • Kompromittierte Komponente hat Zugriff auf alle Queues

Mehr erfahren

Sehen Sie unsere Sicherheitsarchitektur in Aktion mit 181 dokumentierten Tests.

Architektur-Tests ansehen