← Index · Redmine Sicherheit_&_Compliance Sicherheit & Compliance
Seitenregeln
Single Source of Truth für Sicherheitsmodell, Anforderungen und Nachweise; keine Implementierungsdetails.
Definiert Policies/Standards; Umsetzung wird in den Technik‑Seiten verlinkt.
Keine Geheimnisse oder Schlüssel; nur Verfahren, Orte und Rotationsregeln.
Enthält Datenschutz (Datenklassen, Lösch-/Aufbewahrung, AV‑Verträge).
Aktualisieren bei: neue Bedrohungen/Findings, Policy‑Änderungen, Audit‑Ergebnisse.
Verweise auf: „Plattform, Netzwerk & Edge“ (Header/TLS‑Umsetzung), „Build, Deployment & Laufzeit“ (Secrets‑Nutzung), „Daten, …“ (Datenlebenszyklus).
Benenne betroffene Dateien inkl. Pfad als Unterpunkte, wenn diese für zukünftige Änderungen relevant.
Zweck und Abgrenzung
Zweck: Sicheres Betreiben des Projekts „n8n aktien“ (Workflows, Datenbank, Benachrichtigungen, Dashboard) auf Basis klarer Policies und prüfbarer Nachweise.
Geltungsbereich: n8n (Community Edition), PostgreSQL (App‑DB), Datenpipelines (HTTP/APIs), interne Netzwerke (Docker), Benachrichtigungskanäle (Webex), Datenhaltung (Kurse, Kennzahlen, Logs).
Nicht enthalten: Finanzberatung, automatisierte Trades, externe Benutzerportale.
Authentifizierung (lokal/SSO) und Autorisierung/Rollen
n8n Auth:
Modus: Lokale Konten (n8n CE), Admin‑Account vorhanden.
Policy: Mindestpasswortlänge ≥ 14, 2FA sofern verfügbar, Administratoren minimal halten.
Rollenmodell (Policy):
Admin: System‑ und Credential‑Verwaltung, Workflow‑Änderungen.
Operator: Workflows ausführen, Logs einsehen, keine Credential‑Änderung.
Viewer: Lesender Zugriff auf Ausführungen/Dashboards (falls angewendet).
Zugriff auf PostgreSQL:
App‑User: mfapp (Least Privilege, Owner der App‑DB mf app, eigenes Schema core).
Trennung von n8n‑System‑DB (n8n) und App‑DB (mf_app).
Webex:
Bot‑Token als Secret in n8n‑Credentials (kein Klartext in Workflows/Repos).
Nachweise:
Container/DB: postgres:16‑alpine, DB mfapp + Role mf app angelegt.
n8n Version: 2.1.4 (Self‑Hosted), erfolgreich verbundene Credentials (Postgres, OpenFIGI, Alpha Vantage, SimFin, FMP).
Secrets‑Management (Ablage, Rotation – ohne Werte)
Ablage:
n8n Credentials Store für API‑Keys/Tokens (OpenFIGI, Alpha Vantage, SimFin, FMP, Webex).
Keine Secrets in Workflows (Expressions/Referenzen nutzen).
Zugriff:
Nur Admins dürfen Credentials anlegen/ändern; Nodes referenzieren Credentials.
Rotation:
Policy: API‑Keys halbjährlich oder bei Verdacht/Wechsel rotieren.
Widerruf: Alte Keys unmittelbar deaktivieren und Credential‑Referenzen aktualisieren.
Speicherung:
Keine Speicherung von Secrets in der App‑DB (mf_app).
Verschlüsselung (Transport/Ruhend)
Transport:
Externe API‑Aufrufe: HTTPS erzwungen (OpenFIGI, Alpha Vantage, SimFin, FMP).
Interne Verbindungen: n8n ↔ PostgreSQL im Docker‑Netzwerk (segmentiert). Policy: Bei Exponierung nach außen TLS per Reverse Proxy.
Ruhend:
Daten: PostgreSQL Volumes (Docker‑managed). Policy: Regelmäßige verschlüsselte Backups.
Credentials: In n8n‑Credential‑Speicher (Policy: Host‑Disk verschlüsselt; OS‑Ebene).
Dateien/Pfade (relevant):
Docker Volume Postgres (Beispiel): /var/lib/docker/volumes/n8nn8n pgdata/ data
Reverse‑Proxy/Dashboards (Policy):
TLS 1.2+; HSTS: max‑age ≥ 6 Monate; Redirect HTTP→HTTPS.
Security‑Header: X‑Content‑Type‑Options=nosniff, X‑Frame‑Options=DENY, Referrer‑Policy=strict-origin-when-cross-origin.
CSP (Metabase/Custom UIs): default-src 'self'; img-src 'self' data: https:; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self' https:.
APIs/Outbound:
Allowed Domains in n8n‑Credentials/Nodes whitelisten (z. B. api.openfigi.com, www.alphavantage.co, api.simfin.com, financialmodelingprep.com, stooq.com).
Rate‑Limits: Externe Free‑APIs mit Backoff/Planung (tägliche Läufe, On‑Demand).
Logging‑Hygiene:
Keine Secrets in Logs; nur Statuscodes/IDs.
Schwachstellen‑ und Patch‑Prozess
Container‑Images:
Policy: Monatliches Update‑Fenster für n8n‑ und Postgres‑Images (Minor/Patches), CVE‑Monitoring.
Abhängigkeiten:
n8n Release Notes prüfen; inkompatible Änderungen in Testlauf validieren.
Konfiguration:
Least Privilege für DB‑Rollen, Netzwerk‑Isolation (Docker‑Netz).
Nachweise:
job_runs Tabelle protokolliert Workflow‑Läufe inkl. Status/Fehler.
Protokollierung für Sicherheit (Events, Aufbewahrung)
Protokollquellen:
n8n Workflow‑Runs: core.jobruns (Status ok/fail/partial, Fehlertext).
Alerts: core.alertslog (Zeitpunkt, Kanal, Zustandswechsel Ja/Nein).
Datenqualität: core.data_quality (Issues mit Severity).
Aufbewahrung (Policy):
jobruns: 12 Monate.
alertslog: 12 Monate.
data_quality: bis behobene Issues + 12 Monate.
Zugriff:
Nur Admin/Operator; keine PII in Logs.
Datenschutz/DSGVO (Datenklassen, Lösch-/Aufbewahrung, AV‑Verträge)
Datenklassen:
Markt‑/Finanzdaten (öffentlich): Kurse, Indikatoren, Kennzahlen, Rankings.
Betriebsdaten: jobruns, alerts log, dataquality (betriebsbezogen).
Kommunikationsdaten: Webex‑Alert‑Metadaten (Kanal, messageid). Keine personenbezogenen Inhalte.
Personenbezogene Daten: Minimal; System speichert standardmäßig keine Nutzer‑PII in der App‑DB.
Lösch-/Aufbewahrung (Policy):
Markt‑/Historienkurse: unbegrenzt zulässig (kein Personenbezug).
Betriebs‑ und Alert‑Logs: gemäß Abschnitt „Protokollierung“.
KI‑Auswertungen: core.ai_evaluations (Begründungstexte) – Aufbewahrung 12 Monate (Policy).
Auftragsverarbeitung:
Externe Dienste (OpenFIGI, Alpha Vantage, SimFin, FMP, Stooq): reine Marktdatenabfragen, keine PII‑Übermittlung. Webex: Bot‑Nachrichten enthalten nur Faktentexte/Signale (Policy: keine PII senden).
Nachweise/Audits/Abnahmen
Bestand/Artefakte:
PostgreSQL App‑DB und Schema core mit Tabellen: securities, listings, pricesdaily, fundamentals, mf rank, liquidity, corporateactions, signals, alerts log, marketstate, news cache, aievaluations, config, job runs, dataquality.
Netzwerk: Docker‑Netz „deployinternal“; Postgres‑Container n8n-n8n-postgres-1; n8n‑Container n8n-n8n-1.
n8n Credentials vorhanden: Postgres (mf_app), OpenFIGI (Header Auth), Alpha Vantage (Query Auth), SimFin (Query Auth), FMP (Query Auth).
Reproduzierbarkeit:
Datenfluss und Berechnungen nachvollziehbar (Indikator‑SQL, Signal‑SQL in Workflows).
Marktstatus‑Proxy (VIX→FG) mit Quelle und Komponenten dokumentiert (core.market_state).
Abnahmen:
Funktionsnachweise über zuletzt erfolgreiche jobruns und befüllte Tabellen (z. B. prices daily, signals).