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
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.
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.
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
- Auskunft, Löschung, Aufbewahrung und Klassifizierung als FunktionenIn Entwicklung
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 eigenen Prozess 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 prozessisoliert
- TLS zwischen allen DienstenIn Entwicklung
- Secrets über Vault oder External SecretsIn Entwicklung
Sehen, statt nachzulesen
In einer halben Stunde zeigen wir die Plattform an Ihren Fragen – Ingestion, Rechte, Suche, Agent. Ohne Folien.
Live-Demo buchen