Standard

Polityki dostępu do wiedzy: ABAC/RBAC dla RAG i GraphRAG

To, co jest dowodem w odpowiedzi, jest jednocześnie udostępnieniem informacji. Dlatego polityka dostępu musi być częścią retrieval i cytowań — bez wyjątków, poza wyjątkami formalnie rejestrowanymi.

Czas czytania: ~10 min Aktualizacja: 2026-01-10

Dlaczego polityki dostępu są częścią RAG

W systemach opartych o retrieval „wyciek” nie musi być bezpośredni. Wystarczy, że model dostanie fragment, którego użytkownik nie powinien zobaczyć, a potem zsyntetyzuje odpowiedź. Dlatego polityki dostępu muszą działać przed rerankiem i przed generacją.

RBAC vs ABAC (praktyczna różnica)

  • RBAC: role użytkownika decydują o dostępie do całych kolekcji (prościej, szybciej).
  • ABAC: reguły oparte o atrybuty (dział, kraj, typ klienta, poziom umowy) – dokładniejsze.
  • Hybryda: RBAC na kolekcji, ABAC na dokumencie/chunku.

GraphRAG: polityki na węzłach i krawędziach

W GraphRAG wrażliwe mogą być nie tylko dokumenty, ale i relacje. Praktyka: oznaczaj ACL na węzłach (encje) oraz na krawędziach (relacje), a następnie filtruj subgraf przed „walkiem” lub zapytaniem.

Uwaga operacyjna: cache jest częstym źródłem wycieków. Cache musi być „policy-aware” (klucz zawiera zestaw uprawnień albo ich skrót) oraz mieć jawne TTL.

Checklista wdrożeniowa

  • Filtr ACL przed retrieval i przed rerankiem (nie po).
  • Doc@ver i metadane w odpowiedzi (dowodowość i audyt).
  • Testy: scenariusze „deny” w golden set (użytkownik bez uprawnień).
  • Rejestr wyjątków: każde obejście polityki musi mieć ownera i termin wygaśnięcia.
Minimum bezpieczeństwa
  • Deny‑by‑default na każdym PEP.
  • Jedna polityka dla retrieval i cytowań.
  • Audit trail: trace_id + powody odrzuceń.
  • Wyjątki tylko czasowe i jawne.
Polityka dostępu jako część evidence set i cytowań.
Polityka dostępu jako część evidence set i cytowań.
Reguła naczelna: jeśli użytkownik nie ma prawa widzieć dokumentu (lub krawędzi), system nie ma prawa użyć go jako dowodu — nawet „po cichu”.

1. Model danych i obiekty polityki

  • Document (doc@ver): właściciel, klasyfikacja, tenant, etykiety.
  • Chunk: dziedziczy uprawnienia dokumentu + może mieć dodatkową redakcję.
  • Edge (GraphRAG): relacja + provenance + etykiety (w tym bezpieczeństwa).
  • Requester: rola, uprawnienia, atrybuty ABAC (np. dział, kraj, projekt).

2. Zasady egzekwowania

  • Deny‑by‑default — brak atrybutu = brak dostępu.
  • Jedna polityka dla retrieval i dla cytowań (spójność dowodowa).
  • Redakcja jest warstwą oddzielną: można ją zastosować po dopuszczeniu dowodu.

3. Punkty egzekwowania (PEP)

WarstwaPEPCo kontroluje
IngestionIndex/Graph builderEtykiety, ACL, redakcja metadanych.
RetrievalRetrieverFiltry: tenant, klasyfikacja, rola, ABAC.
GraphTraversalOdrzucanie krawędzi bez uprawnień/provenance.
AnswerCitation binderTeza → dowód dopuszczony polityką.

4. Audyt

Minimalny zapis audytowy powinien zawierać: trace_id, wersję polityk, listę dopuszczonych i odrzuconych dowodów oraz powód odrzucenia.

5. Wyjątki

Wyjątki dopuszczamy tylko w trybie czasowym i jawnym (Rejestr wyjątków). Jeśli wyjątek zmienia dostęp do danych, jego ryzyko jest z definicji co najmniej medium.

6. Checklista wdrożeniowa

  • Polityka ma tryb deny‑by‑default.
  • Retrieval i cytowania używają tej samej logiki uprawnień.
  • Trace zawiera powody odrzuceń (ACL/DLP).
  • Wyjątki są rejestrowane i mają datę wygaśnięcia.
Najczęstsze wpadki
  1. Retrieval filtruje, ale cytowania już nie (niespójność).
  2. Graf „dolewa” relacje bez uprawnień.
  3. Brak logów odrzuceń → brak audytu i debugowania.