Zum Inhalt springen
MCP-Server eingebautWie das funktioniert
Zurück zum Plattform-Überblick

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.

Ablauf einer Abfrage
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 Ausschnitt

Rechte, 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.

EinstufungBeispielVerhalten
lesendtrino_run_readonly_queryläuft
veränderndimport_csv, create_dashboardRückfrage
löschendtrino_drop_table, delete_dashboardRückfrage
gemischttrino_execute_statementje 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.

Eine Plattform, ein Rechtemodell: Jeder Zugriff – ob Mensch, Agent oder BI-Werkzeug – läuft durch dieselbe Identität und denselben Nachweis.
  • 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