Toegangscontrole hoort vóór retrieval te gebeuren

Een gebruiker mag alleen passages kunnen ophalen uit bronnen waarvoor die gebruiker, rol of tenant daadwerkelijk gemachtigd is. Onbevoegde context hoort nooit in de modelprompt terecht te komen.

Toegangscontrole moet vóór retrieval plaatsvinden. Het is onvoldoende om achteraf te vragen of het model een vertrouwelijke passage niet wil tonen; onbevoegde context hoort überhaupt niet in de prompt terecht te komen. Filters op tenant, team, rol, documentniveau of andere autorisatiekenmerken moeten daarom deel uitmaken van de zoekquery of retrievallaag.

Ook de ingest-pipeline moet vertrouwelijke data begrenzen

Bepaal expliciet welke documenten en velden geïndexeerd mogen worden, hoe updates en verwijderingen doorwerken en welke afgeleide data bewaard blijft.

De ingest-pipeline verdient dezelfde securitydiscipline als de vraagkant. Documenten kunnen persoonsgegevens, secrets of verouderde vertrouwelijke informatie bevatten. Bepaal welke bronnen geïndexeerd mogen worden, welke velden uitgesloten moeten worden, hoe lang afgeleide chunks en embeddings bewaard blijven en hoe verwijderingen doorwerken.

Logging moet traceerbaar zijn zonder nieuwe datalekken

Bewaar voldoende informatie om retrieval en fouten te onderzoeken, maar voorkom dat volledige vertrouwelijke passages of prompts onnodig in algemene logs terechtkomen.

Logging moet voldoende zijn om incidenten te onderzoeken zonder nieuwe datalekken te creëren. Bewaar bijvoorbeeld bron-ID’s en retrievalbeslissingen, maar wees voorzichtig met volledige prompts of documentinhoud in algemene logs. Security bij RAG is dus geen promptregel, maar een combinatie van identity, autorisatie, dataminimalisatie en operationele controle.

Hoe vertaal je dit naar de praktijk?

Multi-tenant systemen vragen extra aandacht. Een gedeelde vectorindex kan technisch efficiënt zijn, maar elke query moet harde tenant- en rechtenfilters afdwingen vóór kandidaten aan het model worden doorgegeven. In gevoeligere situaties kan fysieke scheiding per klant of gegevensklasse beter passen. Neem ook de externe AI-provider op in het dreigingsmodel: welke data wordt verstuurd, hoe lang wordt die bewaard, waar vindt verwerking plaats en welke contractuele voorwaarden gelden? Minimaliseer context tot wat nodig is voor de vraag. Minder data naar het model sturen verlaagt niet alleen kosten en ruis, maar beperkt ook de impact van een verkeerde configuratie. Autorisatie moet door software worden afgedwongen en opnieuw worden gecontroleerd wanneer een RAG-assistent onderdeel is van een agent die daarna acties kan uitvoeren. Een prompt als “toon geen vertrouwelijke data” is nooit een vervanging voor echte toegangscontrole.

Test security bovendien met negatieve scenario’s: gebruikers die expliciet naar andere teams vragen, documenten waarvan rechten net gewijzigd zijn en prompts die proberen systeeminstructies te omzeilen. De verwachte uitkomst is niet alleen een veilige tekstrespons; de retrievallaag zelf moet aantonen dat onbevoegde passages nooit geselecteerd of naar het model doorgestuurd werden.