Veröffentlicht am

Kubernetes BaFin-Compliance: MaRisk, BAIT und DORA umsetzen

Teilen:
Authors

Kubernetes fuer Finanzdienstleister: BaFin-Compliance mit 4.000 EUR/Monat statt 80.000 EUR Security-Team

TL;DR

  • Finanzdienstleister muessen MaRisk, BAIT und seit 2025 DORA einhalten. Kubernetes bringt die technischen Werkzeuge mit -- aber nur wenn sie richtig konfiguriert sind.
  • Ein dediziertes Security-Team (2-3 Spezialisten) kostet 80.000 bis 120.000 EUR pro Jahr. Ein Managed Kubernetes-Service mit Compliance-Fokus liefert vergleichbare Ergebnisse fuer 48.000 EUR pro Jahr.
  • Die drei kritischen Bereiche fuer BaFin-Audits: Zugriffskontrolle (RBAC), Audit-Logging und Datenlokation -- alle drei sind in Kubernetes nativ abbildbar.
  • Managed Kubernetes zaehlt als wesentliche Auslagerung nach BAIT und erfordert eine formelle BaFin-Anzeige.
  • Automatisierte Policy-Checks mit Kyverno oder OPA Gatekeeper machen Compliance reproduzierbar und reduzieren den manuellen Audit-Aufwand um 60 bis 80 Prozent.

Die regulatorische Realitaet fuer Finanzdienstleister

Wer als Finanzdienstleister Kubernetes betreibt, muss sich durch ein dichtes Regelwerk arbeiten. Die relevanten Vorschriften:

RegelwerkHerausgeberKernforderungKubernetes-Relevanz
MaRisk (AT 7.2)BaFinIT-Risikomanagement, NotfallkonzeptCluster-Sicherheit, DR-Plan
BAITBaFinIT-Governance, Berechtigungen, LoggingRBAC, Audit Logs, Monitoring
DORAEU (seit Jan 2025)Digitale operationelle ResilienzChaos Testing, Incident Response
DSGVOEUDatenschutz, DatenlokationData Residency, Encryption
KWG Par. 25bBundestagAuslagerungsmanagementProvider-Vertraege, Exit-Strategie

Die Herausforderung fuer mittelstaendische Finanzdienstleister (Vermoegensverwaltungen, Factoring-Unternehmen, spezialisierte Banken, Fintechs mit BaFin-Lizenz): Diese Anforderungen existieren unabhaengig von der Unternehmensgroesse. Die BaFin unterscheidet in der Pruefungspraxis nicht zwischen einer Grossbank und einem 200-Personen-Fintech.


Warum ein Security-Team allein das Problem nicht loest

Die Kostenfalle "eigenes Security-Team"

Viele Finanzdienstleister denken: "Wir brauchen ein Security-Team, um die BaFin-Anforderungen zu erfuellen." Das stimmt im Grundsatz -- aber die Kosten werden unterschaetzt:

Kosten eines minimalen internen Security-Teams:

Security Engineer (Senior):           75.000 -  90.000 EUR/Jahr
+ Arbeitgeberanteil (~21%):           15.750 -  18.900 EUR/Jahr
= Personalkosten Person 1:           90.750 - 108.900 EUR/Jahr

Compliance-Beauftragter (anteilig):   20.000 -  30.000 EUR/Jahr
Security-Tooling (Lizenzen):          10.000 -  20.000 EUR/Jahr
Schulungen und Zertifizierungen:       5.000 -   8.000 EUR/Jahr
Externe Penetrationstests:             8.000 -  15.000 EUR/Jahr
───────────────────────────────────────────────────────────────
Minimales Setup pro Jahr:           133.750 - 181.900 EUR
= Pro Monat:                         11.146 -  15.158 EUR

Fuer 24/7-Abdeckung (mind. 2 Engineers):
Personalkosten x2:                  181.500 - 217.800 EUR/Jahr
+ Tooling, Schulungen, Pentests:     23.000 -  43.000 EUR/Jahr
───────────────────────────────────────────────────────────────
24/7 Security-Team pro Jahr:        204.500 - 260.800 EUR
= Pro Monat:                         17.042 -  21.733 EUR

Die Alternative: Managed Kubernetes mit Compliance-Fokus

Ein Managed Kubernetes-Service, der BaFin-relevante Compliance-Anforderungen abdeckt, kostet typischerweise 4.000 bis 6.000 EUR pro Monat. Die Differenz ist erheblich:

KostenpositionSecurity-Team (intern)Managed K8s + Compliance
Personalkosten/Jahr90.000 - 220.000 EUR0 EUR (im Service enthalten)
Tooling/Jahr10.000 - 20.000 EUR0 EUR (im Service enthalten)
Managed Service/Jahr0 EUR48.000 - 72.000 EUR
Externe Audits/Jahr8.000 - 15.000 EUR4.000 - 8.000 EUR
Gesamtkosten/Jahr108.000 - 255.000 EUR52.000 - 80.000 EUR
AbdeckungAbhaengig von Teamgroesse24/7 durch Team-Rotation

Einen ausfuehrlichen Kostenvergleich finden Sie in unserem Artikel Kubernetes Kosten: intern vs. extern.


MaRisk und BAIT auf Kubernetes gemappt

BAIT-Anforderungen: Konkrete technische Umsetzung

Die BAIT (Bankaufsichtliche Anforderungen an die IT) definiert Mindeststandards. Hier die Uebersetzung in Kubernetes-Konfigurationen:

Benutzerberechtigungen und Funktionstrennung (BAIT Kapitel 6)

Die BAIT verlangt eine dokumentierte Funktionstrennung zwischen Entwicklung, Betrieb und Ueberwachung. In Kubernetes bilden Sie das ueber separate RBAC-Rollen ab:

# BAIT-konforme RBAC-Struktur: Segregation of Duties
# Rolle 1: Entwickler (kann deployen, aber nicht Cluster aendern)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: bait-developer
  namespace: fintech-production
  labels:
    compliance: bait-chapter-6
    role-type: development
rules:
  - apiGroups: ["apps"]
    resources: ["deployments"]
    verbs: ["get", "list", "watch", "create", "update"]
  - apiGroups: [""]
    resources: ["pods", "pods/log", "services", "configmaps"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["get", "list"]
---
# Rolle 2: Operator (kann Cluster verwalten, aber nicht deployen)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: bait-operator
  labels:
    compliance: bait-chapter-6
    role-type: operations
rules:
  - apiGroups: [""]
    resources: ["nodes", "namespaces", "persistentvolumes"]
    verbs: ["get", "list", "watch", "update", "patch"]
  - apiGroups: ["networking.k8s.io"]
    resources: ["networkpolicies"]
    verbs: ["get", "list", "watch", "create", "update", "delete"]
  - apiGroups: ["apps"]
    resources: ["deployments"]
    verbs: ["get", "list", "watch"]
---
# Rolle 3: Auditor (kann alles lesen, aber nichts aendern)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: bait-auditor
  labels:
    compliance: bait-chapter-6
    role-type: audit
rules:
  - apiGroups: ["*"]
    resources: ["*"]
    verbs: ["get", "list", "watch"]

Weitergehende RBAC-Strategien fuer den Enterprise-Einsatz finden Sie in unserem RBAC-Guide.

Audit-Logging (BAIT Kapitel 5 und MaRisk AT 7.2)

Die BaFin verlangt lueckenloses Logging aller administrativen Zugriffe. Kubernetes bietet dafuer API-Server Audit Logging:

# Audit Policy fuer BaFin-konforme Protokollierung
# Speichern unter: /etc/kubernetes/audit-policy.yaml
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  # Alle Zugriffe auf Secrets: Vollstaendige Protokollierung
  - level: RequestResponse
    resources:
      - group: ""
        resources: ["secrets"]
    namespaces: ["fintech-production", "payment-processing"]

  # RBAC-Aenderungen: Immer vollstaendig protokollieren
  - level: RequestResponse
    resources:
      - group: "rbac.authorization.k8s.io"
        resources: ["roles", "rolebindings", "clusterroles", "clusterrolebindings"]

  # Deployments und StatefulSets: Metadata + Request Body
  - level: Request
    resources:
      - group: "apps"
        resources: ["deployments", "statefulsets", "daemonsets"]

  # Node-Aenderungen: Vollstaendig protokollieren
  - level: RequestResponse
    resources:
      - group: ""
        resources: ["nodes", "nodes/status"]

  # Health Checks und Status: Nicht loggen (zu viel Noise)
  - level: None
    resources:
      - group: ""
        resources: ["endpoints", "services/status"]
    verbs: ["get", "list", "watch"]

  # Alles andere: Metadata
  - level: Metadata

DORA-Anforderungen (seit Januar 2025)

DORA (Digital Operational Resilience Act) bringt zusaetzliche Anforderungen:

DORA-AnforderungKubernetes-UmsetzungManaged Service Abdeckung
IKT-RisikomanagementRisk Assessment fuer Cluster-KomponentenJa (quartalsweise Review)
Incident ManagementAlerting, Runbooks, Post-MortemsJa (Kern-Leistung)
Resilience TestingChaos Engineering, DR-TestsJa (quartalsweise)
Third-Party RiskProvider-Bewertung, Exit-StrategieTeilweise (eigene Bewertung noetig)
Information SharingIncident-Reports, Threat IntelligenceJa (im Reporting enthalten)

Datenlokation: Das Deutschland-Thema

Warum Datenlokation fuer Finanzdienstleister kritisch ist

Die BaFin erwartet, dass personenbezogene Kundendaten und transaktionsrelevante Daten in der EU verbleiben -- idealerweise in Deutschland. Bei Cloud-Providern mit US-Hauptsitz ist das ein Dauerthema.

Die technische Loesung in Kubernetes:

# Node Affinity: Workloads auf deutsche Nodes beschraenken
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service
  namespace: fintech-production
  labels:
    data-residency: germany
    compliance: bafin-dora
spec:
  replicas: 3
  selector:
    matchLabels:
      app: payment-service
  template:
    metadata:
      labels:
        app: payment-service
        data-residency: germany
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: topology.kubernetes.io/region
                    operator: In
                    values:
                      - germanywestcentral
                      - germanynorth
      containers:
        - name: payment-service
          image: registry.internal/payment-service:v2.4.1
          resources:
            requests:
              memory: "256Mi"
              cpu: "250m"
            limits:
              memory: "512Mi"
              cpu: "500m"

Cloud-Regionen fuer deutsche Finanzdienstleister

Cloud ProviderDeutsche RegionenBaFin-Relevanz
AzureGermany West Central (Frankfurt), Germany North (Berlin)Bevorzugt: Deutsche Rechenzentren unter deutscher Jurisdiktion
AWSeu-central-1 (Frankfurt)Akzeptabel: EU-Region, aber US-Unternehmen
GCPeurope-west3 (Frankfurt)Akzeptabel: EU-Region, aber US-Unternehmen
IONOS / HetznerMehrere DE-StandorteVorteil: Deutsches Unternehmen, deutsche Jurisdiktion

Auslagerungsmanagement: Die BaFin-Anzeige

Managed Kubernetes als wesentliche Auslagerung

Wenn Sie Ihren Kubernetes-Betrieb an einen Managed-Service-Anbieter auslagern, handelt es sich nach BAIT um eine wesentliche Auslagerung. Das hat konkrete Konsequenzen:

  1. BaFin-Anzeige: Sie muessen die Auslagerung bei der BaFin anzeigen (KWG Par. 25b).
  2. Risikoanalyse: Vor Vertragsabschluss ist eine dokumentierte Risikoanalyse erforderlich.
  3. Vertragsanforderungen: Der Vertrag muss Weisungsrechte, Pruefungsrechte und Exit-Regelungen enthalten.
  4. Laufende Ueberwachung: Die Leistung des Dienstleisters muss regelmaessig bewertet werden.
  5. Exit-Strategie: Ein dokumentierter Plan fuer den Anbieterwechsel muss existieren.

Was der Vertrag enthalten muss

Pruefungspunkte fuer den Managed-Kubernetes-Vertrag mit BaFin-Relevanz:

  • Pruefungsrecht der BaFin und externer Pruefer (Par. 25b Abs. 3 KWG)
  • Weisungsrecht des auslagernden Unternehmens
  • Vertraulichkeitsvereinbarungen fuer Kundendaten
  • Datenlokation und Verbot der Verlagerung ohne Zustimmung
  • Notfallkonzept und Business Continuity
  • Subunternehmer-Regelung (Weiterverlagerung)
  • Kuendigungsrecht bei wesentlichen Vertragsverletzungen
  • Transitionsunterstuetzung bei Vertragsende

Policy-as-Code: Compliance automatisieren

Kyverno Policies fuer BaFin-Anforderungen

Manuelle Compliance-Checks skalieren nicht. Policy-as-Code macht BaFin-Anforderungen zu automatisch durchgesetzten Regeln:

# Kyverno Policy: Keine Container ohne Resource Limits in Production
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: bafin-require-resource-limits
  annotations:
    policies.kyverno.io/title: "Require Resource Limits"
    policies.kyverno.io/description: "BAIT IT-Betrieb: Alle Production-Workloads
      muessen definierte Resource Limits haben, um unkontrollierte
      Ressourcennutzung zu verhindern."
    compliance-reference: "BAIT Kapitel 7 - IT-Betrieb"
spec:
  validationFailureAction: Enforce
  background: true
  rules:
    - name: check-resource-limits
      match:
        any:
          - resources:
              kinds:
                - Pod
              namespaces:
                - fintech-production
                - payment-processing
      validate:
        message: "BaFin/BAIT: Alle Container in regulierten Namespaces
          muessen CPU und Memory Limits definiert haben."
        pattern:
          spec:
            containers:
              - resources:
                  limits:
                    memory: "?*"
                    cpu: "?*"
---
# Kyverno Policy: Keine Images aus oeffentlichen Registries
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: bafin-restrict-image-registries
  annotations:
    compliance-reference: "BAIT Kapitel 5 - Informationssicherheit"
spec:
  validationFailureAction: Enforce
  background: true
  rules:
    - name: validate-image-registry
      match:
        any:
          - resources:
              kinds:
                - Pod
              namespaces:
                - fintech-production
                - payment-processing
      validate:
        message: "BaFin/BAIT: Images duerfen nur aus der internen Registry
          geladen werden. Oeffentliche Registries sind in regulierten
          Namespaces nicht erlaubt."
        pattern:
          spec:
            containers:
              - image: "registry.internal/*"

Weitere Details zu Compliance-Automatisierung finden Sie in unserem Compliance-ohne-Security-Team-Guide.


Der 90-Tage-Plan: Von Null auf BaFin-ready

Phase 1: Assessment und Quick Wins (Tag 1-30)

  • Cluster-Security-Assessment mit kube-bench (CIS Benchmark)
  • RBAC-Bereinigung: cluster-admin Bindings auf Break-Glass reduzieren
  • Audit Logging aktivieren (API Server Audit Policy)
  • Image Scanning einrichten (Trivy in der CI/CD-Pipeline)
  • Dokumentation der Ist-Architektur fuer die BaFin-Akte

Phase 2: Policies und Automation (Tag 31-60)

  • Kyverno oder OPA Gatekeeper installieren und Basis-Policies deployen
  • Network Policies fuer alle regulierten Namespaces implementieren
  • Secrets-Management auf External Secrets Operator umstellen
  • Backup-Strategie dokumentieren und ersten Restore-Test durchfuehren
  • Auslagerungsvertrag mit BaFin-relevanten Klauseln finalisieren

Phase 3: Haertung und Audit-Vorbereitung (Tag 61-90)

  • Penetrationstest durch externen Dienstleister
  • Compliance-Dashboard einrichten (Policy-Compliance-Report)
  • BaFin-Anzeige vorbereiten und einreichen
  • Notfallkonzept und Business-Continuity-Plan finalisieren
  • Probe-Audit mit internem Compliance-Team

Haeufige Fehler bei BaFin-Audits

FehlerKonsequenzVermeidung
Audit Logs nicht aktiviertWesentliche Feststellung, NachpruefungAudit Policy ab Tag 1 deployen
Zu viele cluster-admin BindingsMangelnde FunktionstrennungRBAC-Review monatlich
Keine Exit-Strategie dokumentiertVerstoss gegen KWG Par. 25bExit-Plan vor Vertragsabschluss
Fehlende BaFin-AnzeigeFormaler Verstoss, Bussgeld moeglichAnzeige innerhalb von 6 Wochen
Images ohne Vulnerability ScanRisiko-FeststellungTrivy in Pipeline erzwingen
Backup nie getestetNotfallkonzept nicht belastbarQuartalsweiser Restore-Test

Zusammenfassung: BaFin-Compliance ist kein Luxus-Feature

Fuer mittelstaendische Finanzdienstleister ist BaFin-Compliance keine optionale Zusatzleistung, sondern eine Existenzfrage. Die Pruefungen kommen -- und sie werden detaillierter, seit DORA in Kraft ist.

Die gute Nachricht: Kubernetes liefert die technischen Bausteine. RBAC, Audit Logging, Network Policies, Pod Security Standards und Node Affinity decken den Grossteil der technischen Anforderungen ab. Was fehlt, ist die korrekte Konfiguration, die laufende Ueberwachung und die Dokumentation.

Ein Managed Kubernetes-Service mit Compliance-Fokus kostet 4.000 bis 6.000 EUR im Monat und ersetzt dabei nicht nur den operativen Betrieb, sondern auch einen erheblichen Teil der Security-Arbeit. Verglichen mit 80.000 bis 260.000 EUR pro Jahr fuer ein internes Security-Team ist das eine wirtschaftliche Alternative, die trotzdem BaFin-Pruefungen besteht.

Der entscheidende Punkt: Starten Sie vor dem Audit, nicht danach. Die 90-Tage-Roadmap in diesem Artikel ist realistisch -- wenn Sie heute beginnen.

Fuer die breitere Compliance-Perspektive lesen Sie unseren DSGVO- und BSI-Compliance-Guide und den Artikel zur Kubernetes-Security-Haertung.

Kubernetes-Beratung gesucht?

Wir helfen deutschen Unternehmen bei der Kubernetes-Implementierung, Migration und Optimierung. DSGVO-konform und praxiserprobt.

📖 Verwandte Artikel

Weitere interessante Beiträge zu ähnlichen Themen