DSGVO-Hinweise¶
Das Plugin verarbeitet personenbezogene Daten der Admin-User deines Shopware-Backoffices. Diese Seite fasst zusammen, was du DSGVO-konform regeln solltest.
Was wird verarbeitet?¶
| Datenkategorie | Erhebung | Quelle |
|---|---|---|
| User-ID + Username | immer | aus Shopware-Admin-Session |
Zeitstempel (created_at) |
immer | Server-Uhr beim Logging-Ereignis |
| IP-Adresse | nur wenn captureIpAddress = true |
aus Request::getClientIp() |
| User-Agent | nur wenn captureUserAgent = true |
aus Request-Header User-Agent |
| Diff (Vorher/Nachher) | immer | aus DAL-Write-Event, sensitive Felder maskiert |
| Entity-Label | immer | menschenlesbarer Name der bearbeiteten Entität (z. B. Produktname, Kundenname) |
Auch indirekte personenbezogene Daten
Das diff-Feld kann personenbezogene Daten enthalten — z. B. wenn ein Admin eine Kundenadresse bearbeitet, steht im Diff der alte und neue Vor-/Nachname/Adresse des Kunden (nicht des Admins). Dieses Datum unterliegt der DSGVO, weil der Admin im Auftrag des Verantwortlichen handelt.
Rechtsgrundlage¶
Typische Rechtsgrundlagen für den Betrieb des Plugins:
- Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse) — Nachvollziehbarkeit von Admin-Aktionen ist berechtigtes Interesse des Verantwortlichen (Audit, Forensik, Compliance)
- Art. 6 Abs. 1 lit. c DSGVO (rechtliche Verpflichtung) — bei expliziten Audit-Vorgaben (PCI-DSS, ISO 27001, BSI-Grundschutz)
- Art. 88 DSGVO i. V. m. § 26 BDSG (Beschäftigtendatenschutz) — wenn Admin-User Beschäftigte sind
Empfohlenes Vorgehen vor Aktivierung¶
1. Verarbeitungsverzeichnis ergänzen (Art. 30 DSGVO)¶
In dein Verzeichnis aller Verarbeitungstätigkeiten einen neuen Eintrag aufnehmen:
Verarbeitungstätigkeit: Admin-Audit-Log
Zweck: Nachvollziehbarkeit, Forensik, Compliance
Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO
Datenkategorien: User-ID, Username, Zeitstempel, Aktion, Entity-Diff
[falls aktiv:] IP-Adresse, User-Agent
Empfänger: nur intern berechtigte Admin-Rollen
Aufbewahrung: <X> Tage (Default 365)
Löschmechanismus: automatisierter Scheduled Task
2. Admin-User informieren (Art. 13 DSGVO)¶
Beschäftigte / Admin-User vor Aktivierung schriftlich informieren:
- Welche Daten werden erfasst?
- Zu welchem Zweck?
- Wie lange werden sie aufbewahrt?
- Wer hat Zugriff (nur Rollen mit
kommora_activity_log:read)? - Welche Rechte haben sie (Auskunft, Berichtigung, Löschung — wobei Löschung wegen Audit-Zwecks i. d. R. nicht durchsetzbar)?
Praktisches Onboarding
Pack die Information in dein Mitarbeiter-Onboarding-Dokument oder einen Aushang am Arbeitsplatz. Eine kurze E-Mail mit Bestätigungs-Antwort ist auch eine Möglichkeit.
3. Betriebsrat einbeziehen (§ 87 Abs. 1 Nr. 6 BetrVG)¶
Wenn dein Unternehmen einen Betriebsrat hat und das Plugin nicht nur in kleiner Tester-Runde, sondern dauerhaft betrieben wird: mitbestimmungspflichtig. Begründung: das Plugin ist eine „technische Einrichtung zur Verhaltens- und Leistungskontrolle".
Praktisches Vorgehen: Betriebsrat-Vorlage erstellen mit:
- Zweck
- Aufbewahrungsfrist
- Zugriffsberechtigte
- Auswertungs-Regeln (z. B. „nur bei konkretem Verdacht oder Audit, nicht zur Routine-Performance-Kontrolle")
4. Aufbewahrungsfrist angemessen wählen¶
Default 365 Tage. Empfehlung je nach Use Case:
| Use Case | Empfohlene Frist |
|---|---|
| Reines Forensik-/Debugging-Tool | 90 Tage |
| Standard-Compliance | 365 Tage |
| PCI-DSS-Audit-Pflicht | 365–730 Tage |
| Spezielle Branchenvorgaben | nach Vorgabe (z. B. Finanzbranche bis 10 Jahre) |
Niemals: ewig aufbewahren. Das verstößt gegen den Grundsatz der Speicherbegrenzung (Art. 5 Abs. 1 lit. e DSGVO).
5. IP- und User-Agent-Erfassung bewusst entscheiden¶
Default: aus. Aktivieren nur, wenn dokumentierter Grund:
- konkrete Audit-Anforderung (z. B. „IP-Erfassung bei Login-Versuchen zur Brute-Force-Erkennung")
- forensische Notwendigkeit nach Sicherheitsvorfall
Wenn aktiviert: die Aktivierung im Verarbeitungsverzeichnis dokumentieren und im Datenschutz-Hinweis nennen.
Was passiert bei Auskunfts-/Löschungs-Anfragen?¶
Auskunfts-Anfrage eines Admin-Users (Art. 15 DSGVO)¶
Der User darf wissen, was über ihn protokolliert wird. Vorgehen:
- Im Modul nach
actor_username = <username>filtern - Zeitraum-Filter anwenden (Auskunfts-Anspruch typischerweise begrenzt auf 1-2 Jahre)
- CSV-Export → an den User aushändigen
Löschungs-Anfrage (Art. 17 DSGVO)¶
Die Löschung von Audit-Log-Einträgen ist i. d. R. nicht durchsetzbar, weil ein berechtigtes Interesse des Verantwortlichen (Audit, Compliance) typischerweise überwiegt. Dokumentiere die Ablehnung mit Begründung.
Ausnahme: wenn der User explizit Beschäftigter war und das Beschäftigungsverhältnis endet, kann eine Anonymisierung (nicht Löschung) angemessen sein:
-- Beispiel: Username + IP aller alten Einträge eines ausgeschiedenen Users anonymisieren
UPDATE kommora_activity_log
SET actor_username = 'ANONYMIZED', ip_address = NULL, user_agent = NULL
WHERE actor_user_id = ?
Anfrage eines Kunden zu seinen Daten im diff¶
Wenn ein Kunde (Storefront-Nutzer) wissen will, ob/wie Admin-User seine Daten bearbeitet haben:
- Im Modul nach
entity_name IN ('customer', 'customer_address')undentity_id = <customer-uuid>filtern - CSV-Export → an den Kunden aushändigen (Pflicht, weil das
diffpersonenbezogene Daten des Kunden enthält)
Sicherheits-Maßnahmen technisch¶
- ACL-Permission
kommora_activity_log:read— nur explizit berechtigte Rollen sehen Logs - Sensitive-Felder-Maskierung — Passwörter, Tokens, API-Keys werden automatisch als
***gespeichert - Truncation — Strings > 2000 Zeichen und Arrays > 4 KB werden gekürzt, um DB-Aufblähung zu vermeiden
- No-Op-Filter — Updates ohne tatsächliche Änderung erzeugen keinen Eintrag
- Datenbank-Tabelle im selben Datenraum wie Shopware-Daten — keine Cross-System-Datentransfers, keine Drittanbieter
- Keine Telemetrie an Kommora oder Dritte — alles bleibt in deinem Shop
Auftragsverarbeitungsvertrag¶
Wenn dein Shopware auf einer fremden Infrastruktur läuft (Managed-Hoster, Cloud), prüfe deinen Auftragsverarbeitungs-Vertrag (AVV) mit dem Hoster — das Audit-Log liegt in der Shopware-DB und ist damit Teil des AVV-Scopes.
Kommora selbst hat keinen Zugriff auf deine Log-Daten — das Plugin schickt nichts nach außen.