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: mf_app (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 mf_app + 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/n8n_n8n_pg_data/_data
Sicherheitsanforderungen (Headers, CSP, HSTS, Rate‑Limits)¶
- 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.job_runs (Status ok/fail/partial, Fehlertext).
- Alerts: core.alerts_log (Zeitpunkt, Kanal, Zustandswechsel Ja/Nein).
- Datenqualität: core.data_quality (Issues mit Severity).
- Aufbewahrung (Policy):
- job_runs: 12 Monate.
- alerts_log: 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: job_runs, alerts_log, data_quality (betriebsbezogen).
- Kommunikationsdaten: Webex‑Alert‑Metadaten (Kanal, message_id). 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, prices_daily, fundamentals, mf_rank, liquidity, corporate_actions, signals, alerts_log, market_state, news_cache, ai_evaluations, config, job_runs, data_quality.
- Netzwerk: Docker‑Netz „deploy_internal“; 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 job_runs und befüllte Tabellen (z. B. prices_daily, signals).