Governance & Security
Niemand kommt an den Rechten vorbei – auch der Agent nicht
Die meisten Datenplattformen haben ein Rechtemodell und daneben einen Serviceaccount, der alles darf. Der zweite hebelt das erste aus, sobald etwas automatisiert wird. lavalake ist so gebaut, dass es diesen Account nicht gibt.
- Identität
- Keycloak OIDC
- Delegation
- Token Exchange, RFC 8693
- Durchsetzung
- in Trino, nicht in der Oberfläche
- Audit
- WORM, Hash-Kette
Row Level Security und Datenmaskierung
Row Level Security begrenzt, welche Zeilen eine Person lesen darf. Datenmaskierung schützt einzelne Spaltenwerte, etwa Namen in einer Personalauswertung. In lavalake werten Trino-Richtlinien beide Regeln unter der Identität des Nutzers aus. Damit lassen sich unterschiedliche Sichten auf dieselbe Tabelle bereitstellen.
User Access Management mit Rollen
Für die Zugriffsverwaltung werden Keycloak-Rollen an Trino weitergegeben. Rollenbasierte Zugriffskontrolle (RBAC) bündelt Rechte für Gruppen; Zeilen- und Spaltenrichtlinien bestimmen den sichtbaren Ausschnitt. Prüfen Sie die Kombination mit einer Fachrolle und einer eingeschränkten Rolle, bevor Sie einen Bericht freigeben.
Data Provenance: Herkunft und Verarbeitung nachvollziehen
Data Provenance beschreibt, wo Daten herkommen und welche Verarbeitung sie durchlaufen haben. lavalake leitet die Tabellenherkunft aus protokollierten Vorgängen ab. Zusammen mit der Zugriffshistorie lässt sich nachvollziehen, welche Quelle hinter einer Tabelle steht und wer darauf zugegriffen hat. Die Aussage reicht so weit wie die in der Plattform erfassten Vorgänge.
Datenschutz im Arbeitsalltag
Betroffenenanfragen, bestätigte Löschungen und Aufbewahrungsfristen gehören zur Plattform. Ein Bericht über die Verarbeitungen der Anlage lässt sich als Word oder PDF exportieren. Befristete Support-Zugänge und eine konfigurierbare Zwei-Faktor-Pflicht ergänzen die Zugriffskontrolle.
Die Kette, an der alles hängt
Sie melden sich über OIDC an Keycloak an. Der Agent-Dienst tauscht Ihr Token nach RFC 8693 gegen ein Token für Trino. Trino führt die Anweisung unter dieser Identität aus. Was Sie nicht sehen dürfen, kommt nicht zurück – nicht weil die Oberfläche es ausblendet, sondern weil die Engine es nicht liefert.
Browser ── OIDC-Login ──▶ Keycloak
Agent ── Token Exchange (RFC 8693, audience=trino)
Trino ── führt aus unter Ihrer Identität
── Grants + Row-Access + Column-Masking
Ergebnis ── nur Ihr AusschnittRechte, die in der Oberfläche durchgesetzt werden, sind keine Rechte. Sie sind eine Bitte.
Der Unterschied fällt auf, sobald jemand die Oberfläche umgeht. Bei einem Modell mit Sammel-Serviceaccount steht dann die ganze Datenbank offen. Hier steht genau das offen, was die Rolle des Anmeldenden ohnehin sehen darf.
Durchsetzungsstatus prüfen
Im Compose-Stapel sind Regel- und Gruppendateien mit Trino verbunden. Im Helm-Weg werden die Richtlinien ebenfalls an Trino verteilt. Die Konsole zeigt, ob die Durchsetzung aktiv, inaktiv oder gestört ist.
Zeilen und Spalten
Policies für Zeilenzugriff und Spaltenmaskierung werden in Trino ausgewertet. Eine Abteilung sieht ihren Ausschnitt, ein Personalbereich sieht Namen, die Auswertung daneben sieht dieselbe Tabelle mit maskierter Spalte. Es sind nicht zwei Tabellen und keine zwei Berichte – es ist dieselbe Tabelle, unterschiedlich gefiltert.
Wichtig ist, wo das greift: nicht nur in der Abfrage, die Sie selbst tippen, sondern auch in einer Dashboard-Kachel, die jemand anders angelegt hat, und in einem Suchtreffer. Jede Kachel rechnet je Betrachter unter dessen Identität.
Seit v0.34.0 werden Keycloak-Rollen als Trino-Gruppen durchgereicht. Eine Richtlinie gilt damit für alle Mitglieder der angegebenen Rolle. Änderungen aus der Nutzerverwaltung werden sofort synchronisiert; zusätzlich wird die Zuordnung regelmäßig erneuert.
Tabellen und Spalten klassifizieren
In der Tabellenansicht ordnet die Administration Tabellen und Spalten mit Tags ein, etwa als personenbezogen, vertraulich oder Finanzdaten. „Klassifizieren“ schlägt passende Tags anhand von Spaltennamen und Datentypen vor. Die Vorschläge werden einzeln bestätigt und jede Änderung protokolliert.
Die Namens-Heuristik funktioniert ohne KI-Anbindung. Optional verfeinert ein konfiguriertes API- oder selbst betriebenes Modell die Vorschläge; es erhält nur Namen und Typen, keine Datenwerte. Tags lösen noch keine automatische Maskierung aus. Auskunfts-, Lösch- und Aufbewahrungsabläufe unterstützen den Umgang mit personenbezogenen Daten.
Ein Audit-Log, das man nicht stillschweigend ändert
Das Audit-Log ist eine Hash-Kette: jeder Eintrag trägt den Hash seines Vorgängers. Wer einen Eintrag nachträglich ändert oder entfernt, bricht die Kette an dieser Stelle – der Bruch ist prüfbar. Das ist nicht dasselbe wie „wir schreiben Protokolle“, und es ist der Unterschied, auf den eine Revision hinausläuft.
- Erfasst werden Nutzer und Agenten gleichermaßen
- Aus dem Log abgeleitet: Lineage je Tabelle – woher die Daten kamen
- Aus dem Log abgeleitet: Zugriffshistorie – wer eine Tabelle angefasst hat
- Auskunfts-, Lösch- und Aufbewahrungsabläufe für personenbezogene Daten
Der Agent bekommt Ihre Rechte, nicht mehr
Der eingebaute Assistent arbeitet mit demselben delegierten Token. Er hat keine eigene Kennung mit erweiterten Rechten. Zusätzlich läuft jede Werkzeugnutzung durch eine Kette: einstufen, protokollieren, ausführen. Verändernde und löschende Schritte fragen vorher nach.
| Einstufung | Beispiel | Verhalten |
|---|---|---|
| lesend | trino_run_readonly_query | läuft |
| verändernd | import_csv, create_dashboard | Rückfrage |
| löschend | trino_drop_table, delete_dashboard | Rückfrage |
| gemischt | trino_execute_statement | je Anweisung eingestuft |
Der Rand nach außen
Alles läuft hinter einem einzigen Reverse-Proxy. Trino, der Objektspeicher und die Plattform-Datenbank sind von außen nicht erreichbar – es gibt drei Routen, und keine davon führt an der Identitätsprüfung vorbei. Verbindungen zu registrierten Quellen prüft ein Egress-Schutz gegen SSRF und den Zugriff auf Metadaten-Endpunkte. Dokumente werden in einem Worker mit Zeit- und Speicherlimit geparst, Secrets liegen AES-256-GCM verschlüsselt.
- Drei Routen nach außen: Konsole, Agent-API, Keycloak
- Egress-Schutz gegen SSRF und Metadaten-Endpunkte
- Dokumenten-Parsing mit Zeit- und Speicherlimit im Worker
- Zuschaltbare interne TLS-Ebene für die dokumentierten Dienstverbindungen
- Secret-Dateien für Compose; Vault/External Secrets für Kubernetes
Datenintegrität entlang des Datenwegs prüfen
Datenintegrität beschreibt, ob Daten konsistent bleiben und Änderungen kontrolliert erfolgen. Prüfen Sie etwa, ob Kundenschlüssel nach dem Import noch zu den richtigen Bestellungen gehören und ob eine Aufbereitung Zeilen unerwartet vervielfacht. Zugriffsregeln und Audit-Protokolle ergänzen fachliche Qualitätsprüfungen. Ein nachvollziehbarer Zugriff allein bestätigt noch nicht die fachliche Richtigkeit eines Werts.
Wo das in der Plattform sitzt
Dasselbe Bild wie auf der Startseite, hier auf den Teil geschärft, um den es auf dieser Seite geht.
- Zugang: Konsole (SPA) · SQL-Worksheet · Dashboards · KI-Assistent · MCP-Server – alles hinter einem Reverse-Proxy
- Identität & Governance: Keycloak OIDC · Token Exchange nach RFC 8693 · Row-Access- und Masking-Policies · WORM-Audit · Lineage
- Compute: Trino unter Ihrer Identität · Leistungsklassen S, M und L im Compose-Stapel
- Katalog & Tabellenformat: Apache Iceberg mit Nessie: ACID · Time Travel · Branching · Schema Evolution · offen für Spark, Flink, Trino
- Storage & Index: S3-kompatibel (MinIO, Ceph, NetApp StorageGRID, Dell ECS) · PostgreSQL mit pgvector als Vektorindex
Sehen, statt nachzulesen
In einer halben Stunde zeigen wir die Plattform an Ihren Fragen – Ingestion, Rechte, Suche, Agent. Ohne Folien.
Live-Demo buchen