G|AI Works G|AI Works

Use Case

Benutzerbezogene Datenzugriffssteuerung für eine interne LLM-API

Ein Professional-Services-Unternehmen baute eine berechtigungsbewusste LLM-API, die Dokumentzugriffskontrollen auf Nutzerebene durchsetzt und sicherstellt, dass Nutzer nur autorisierte Daten abfragen können.

professional-services Security Engineering

Projekt starten

Auf einen Blick

Ergebnisse

  • Keine Datengrenzverletzungen in einem 90-tägigen Produktionsfenster
  • Compliance-Review beim ersten Einreichen ohne Nacharbeitsanforderungen bestanden
  • Jedes Retrieval-Ereignis innerhalb von 2 Minuten aus dem Audit-Log rekonstruierbar

Stack

  • pgvector mit Zugriffsklassifizierungsspalten pro Zeile
  • Pre-Query-Zugriffskontrollfilter auf Anwendungsebene
  • SSO/RBAC-Rollen auf Dokumentklassifizierungsstufen gemappt
  • Append-Only Postgres-Audit-Log mit täglichem Integritäts-Hash

Typischer Zeitrahmen

3–4 Wochen

Kick-off bis Übergabe

Risiken & Guardrails

  • Komplexität des Berechtigungsmodells wächst mit zunehmenden Klassifizierungsstufen
  • Performance-Overhead des Pre-Filters bei hohem Retrieval-Volumen — erfordert Indexierungsstrategie
  • Zugriffsklassifizierungen müssen zum Ingest-Zeitpunkt gepflegt werden — veraltete Tags erzeugen Lücken

Herausforderung

Ein Professional-Services-Unternehmen entwickelte einen internen Wissensassistenten, mit dem Mitarbeitende Projektdokumente, Kundendaten und interne Richtlinien abfragen konnten. Die ursprüngliche Architektur rief Dokumente aus einem gemeinsamen Vektorspeicher ohne benutzerspezifische Berechtigungsfilterung ab. Ein Junior-Analyst hätte theoretisch Dokumente abrufen können, die für Senior-Partner klassifiziert waren oder einem anderen Kunden-Engagement gehörten.

Die IT-Sicherheitsrichtlinie des Unternehmens erforderte striktes Need-to-know-Prinzip. Das Team benötigte eine Governance-Schicht, bevor das Tool zur internen Nutzung freigegeben werden konnte.

Vorgehen

Zugriffsgesteuerter Abruf: Die Retrieval-Schicht wurde so modifiziert, dass die Berechtigungsmenge des authentifizierten Nutzers in die Abfrage einfließt. Dokumente werden bei der Einspeisung mit Zugriffsklassifizierungen versehen. Der Abrufschritt wendet einen Pre-Filter an, der nicht autorisierte Dokumente ausschließt, bevor ein LLM-Aufruf erfolgt.

Audit-Log für Zugriffsentscheidungen: Jede Abrufanforderung wird mit Nutzeridentität, abgerufenen Dokument-IDs, geprüften Zugriffsklassifizierungen und einem Zeitstempel protokolliert. Ablehnungen werden ebenfalls mit Begründungscodes protokolliert — nicht still verworfen.

Prompt-Grenzendurchsetzung: Der an das LLM übergebene Kontext enthält ausschließlich Dokumente, die den Zugriffsfilter passiert haben. Der System-Prompt legt explizit fest, dass das Modell keine Inhalte außerhalb des bereitgestellten Kontexts referenzieren, ableiten oder spekulieren darf.

Wöchentliches Zugriffsreview: Leichtgewichtiges Dashboard erstellt, das Zugriffsmuster, wiederholte Ablehnungen (potenzielle Missbrauchssignale) und häufig über Klassifizierungsgrenzen hinweg abgerufene Dokumente ausweist.

Typische Ergebnisse

In diesem Engagement beobachtete Outcomes — keine Garantien für jedes Deployment:

  • Keine Datengrenzverletzungen in einem 90-tägigen Produktionsfenster (Zugriffslogs wöchentlich vom Information-Security-Team geprüft)
  • Compliance-Review beim ersten Einreichen ohne Nacharbeitsanforderungen bestanden
  • Jedes Retrieval-Ereignis innerhalb von 2 Minuten aus dem Audit-Log rekonstruierbar, gemäß interner Aufbewahrungsrichtlinie

Tech-Stack

  • Vektorspeicher: pgvector mit Zugriffsklassifizierungsspalten pro Zeile
  • Retrieval-Filter: Pre-Query-Zugriffskontrolle auf Anwendungsebene (nicht an das LLM delegiert)
  • Auth: Bestehendes SSO/RBAC mit Mapping auf Dokumentklassifizierungsstufen
  • Audit-Log: Append-Only Postgres-Tabelle mit täglichem Integritäts-Hash

Bereit, das Projekt zu starten?

Lass uns über dein Vorhaben sprechen.

Sag uns kurz, was du baust. Wir antworten mit einem klaren nächsten Schritt: Audit, Prototyp-Plan oder Delivery-Vorschlag.

Projekt starten →