Architektur

4-Stufen-Sicherheitsisolation mit NATS JetStream Messaging.

Datenfluss-Diagramm

Vollständiger Abfrage/Antwort-Zyklus durch alle 4 isolierten Sicherheitsstufen

Anwendung
(Client)
Frontend
NATS-1
dirty-query
Query
Validator
NATS-2
clean-query
Query
Validator
Backend
Response
Validator
PostgreSQL(Datenbank)
NATS-4
clean-resp
Response
Validator
NATS-3
dirty-resp
AuditLog (Syslog/OTLP)
Abfrage-Pfad
Antwort-Pfad
Abfrage-Pfad
Anwendung → Frontend → NATS-1 → Query Validator → NATS-2 → Backend → PostgreSQL
Antwort-Pfad
PostgreSQL → Backend → NATS-3 → Response Validator → NATS-4 → Frontend → Anwendung
Unvalidierte Daten (dirty)
Validierte Daten (clean)
Schreibt ins AuditLog
Externes System

Warum 4 separate NATS-Instanzen?

Sicherheitsisolation

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

Defense in Depth

Selbst wenn der Query Validator umgangen wird, bietet der Response Validator eine weitere Schutzschicht. Jede Stufe arbeitet unabhängig mit ihrer eigenen Sicherheitsgrenze.

Audit-Trail

Alle Nachrichten werden in einem separaten Audit-System protokolliert. Dies bietet einen vollständigen, unveränderlichen Datensatz aller Datenbankabfragen für Compliance und Forensik.

Performance

NATS JetStream bietet hohen Durchsatz und geringe Latenz. Die 4-Stufen-Architektur fügt minimalen Overhead hinzu und bietet gleichzeitig maximale Sicherheit.

Vereinfachungen

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

Container-basiertes Deployment

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

Vorteile:
  • Deutlich reduzierte Hardwarekosten (ein Host statt acht)
  • Einfaches Deployment mit docker-compose/podman-compose
  • Internes Pod-Netzwerk für schnelle Kommunikation
Nachteile:
  • Setzt auf Container-Isolation statt Hardware-Trennung
  • Container-Escape-Schwachstellen könnten alle Komponenten kompromittieren
  • Gemeinsame Kernel-Ressourcen

Einzelvalidierung

Anstatt separate Query Validator und Response Validator Prozesse auszuführen, führt nur der Backend-Prozess die Validierung durch. NATS-1 verbindet direkt zum Backend, NATS-3 direkt zum Frontend.

Vorteile:
  • Reduzierte Hardwarekosten (2 weniger Prozesse, 2 weniger NATS-Instanzen)
  • Schnellere Verarbeitung (weniger Hops)
  • Einfachere Deployment-Architektur
Nachteile:
  • Validierung im Backend-Prozesskontext (weniger isoliert)
  • Kompromittiertes Backend könnte Validierung umgehen
  • Keine unabhängige Sicherheitsschicht
  • Reduzierte Netzwerkisolation

Einzelne NATS-Instanz

Anstatt 4 separater NATS-Instanzen laufen alle Message-Queues über eine einzelne NATS-Instanz mit unterschiedlichen Subjects (dirty-query, clean-query, dirty-resp, clean-resp).

Vorteile:
  • Geringere Hardware-/Cloud-Kosten
  • Einfachere Wartung und Monitoring
  • Weniger Netzwerkkonfiguration
Nachteile:
  • Reduzierte Sicherheitsisolation
  • Ein NATS-Bug könnte Validierungsumgehung ermöglichen
  • Kompromittierte Komponente hat Zugriff auf alle Queues

Mehr erfahren

Entdecken Sie Signando Postgres Funktionen und Preise.