Veilig werken met data en AI: garanties die je kunt controleren
De privacy officer van Zorggroep Meerwijk stelt één vraag voordat er een AI-model in de buurt van de cliëntadministratie komt: wat ziet dat model precies? Een belofte in een verkooppresentatie is geen antwoord. Een instructie in een prompt ook niet.
Plainwater AI beantwoordt die vraag met handhaving in de poort, niet met goede bedoelingen. Elke garantie op deze pagina is een geautomatiseerde test die bij elke wijziging aan het platform opnieuw draait.
Bijgewerkt .
Wat krijgt een agent nooit in handen?
Een agent krijgt nooit een sleutel van een modelleverancier en nooit een wachtwoord van een klantdatabase. Hij start met een eenmalige opstartcode en meldt zich daarmee bij de poort van het platform.
Mila, de data-engineer van Meerwijk, koppelt de rapportagedatabase aan het platform. Het wachtwoord gaat versleuteld de opslag in, onder een sleutel die alleen voor die ene bron geldt. Wat het scherm daarna laat zien is een vingerafdruk en het moment van opslaan, nooit het geheim zelf.
- Geïsoleerde containers. Elke agent draait in een eigen container. Uitgaand verkeer mag alleen naar adressen op een allowlist.
- Geen sleutels in de omgeving. De omgeving van het agentproces wordt opgebouwd uit een vaste lijst; een providersleutel staat er niet in.
- De poort doet het werk. Data ophalen, een model aanroepen en schrijven lopen allemaal via het platform, dat per verzoek controleert.
Wat ziet het AI-model van je data?
Het model ziet wat de klant per bron toestaat, en standaard is dat alleen metadata en tellingen. Rijen en businesswaarden gaan in die stand niet naar buiten, en daar staan tests met markerwaarden op.
Ruben, de functioneel beheerder, kiest per bron een van drie standen. De strengste van klantregel en bronregel wint altijd, zodat een bron nooit ruimer kan zijn dan de klant.
Daarnaast gaan tabel- en kolomnamen als pseudoniem naar het model. De tabel met cliëntgegevens heet voor de AI bijvoorbeeld t_0056, en het platform vertaalt het antwoord terug voor Ruben.
| Stand | Wat het model krijgt | Wanneer je hem kiest |
|---|---|---|
| Alleen metrics | Metadata, tellingen, statistieken; tellingen onder tien als "<10" | Standaard, voor elke bron met gevoelige data |
| Versleutelde waarden | Elke cel een stabiel token: joinen en tellen kan, de waarde zien niet | Analyses waarbij de AI verbanden moet leggen |
| Open | Letterlijke waarden | Alleen op bronnen die de klant daar expliciet voor aanwijst |
Hoe wordt elk modelverzoek gecontroleerd?
Elk verzoek aan een model krijgt precies één beleidsbesluit, en een geweigerd verzoek bereikt de modelleverancier niet. Het besluit kijkt naar het toegestane model, het budget en de regels van de klant.
Een klant met echte klantdata draait alleen met actieve pseudonimisering. Staat die niet aan, dan start de agent niet, en komt er tijdens een opdracht een bron bij, dan controleert het platform elke toolaanroep opnieuw.
Regels staan dus niet in een prompt die een model kan negeren. Ze staan in de poort, waar het model er niet bij kan.
Kun je achteraf terugzien wat er gebeurd is?
Ja: alle prompts en antwoorden worden versleuteld bewaard met AES-256-GCM, en wie daar recht op heeft leest ze terug. Elke inzage wordt zelf ook vastgelegd.
De auditketen is een hash-keten waaraan alleen kan worden toegevoegd. Een uurlijks anker bindt de ketens aan elkaar, zodat een weggehaald stuk zichtbaar breekt.
- Richtlijnen per klant. Meerwijk legt vast welke regels voor opdrachten gelden, en elke opdracht onthoudt welke versie gold bij de start.
- Automatische audit. Het platform toetst opdrachten achteraf aan die regels.
- Mens nodig. Wat niet automatisch te controleren valt, wordt gemarkeerd voor een mens en nooit als geslaagd geteld.
Wie mag wat, en wie kijkt mee?
Rechten komen uit de database van het platform, nooit uit het verzoek zelf, en niemand kan zijn eigen rechten verhogen. Ook een beheerder niet.
Toegang tot een andere klant geeft een 404, zodat het platform niet eens verklapt dat die klant bestaat. HTML die een agent maakt draait op een apart domein, nooit in de app zelf.
Een securitymonitor zoekt naar patronen: aftasten, nachtwerk zonder voorgeschiedenis, een golf verwijderingen of een budget dat snel opbrandt. Zo'n patroon wordt een alert in de app. Verbruik en credits zijn append-only en per klant begrensd door een budget.
Waar het ophoudt
Het platform bewaakt wat het zelf doorgeeft, en daar houdt de garantie op. Kiest een klant de stand open voor een bron, dan gaan letterlijke waarden van die bron naar het gekozen model.
Werk je met je eigen AI-tool via MCP, dan draait het model buiten het platform. De regels gelden dan op het toolvlak, maar wat jouw tool met een antwoord doet valt onder jouw abonnement. Daarom staan lokale sessies per klant standaard uit.
Pseudonimisering vangt namen die het platform kent. Vrije tekst die een mens zelf in een gesprek typt, valt onder de regels van het gekozen model.
Veelgestelde vragen
Stuurt Plainwater AI rijen uit mijn database naar een AI-model?
Niet in de standaardstand. Dan gaan alleen metadata, tellingen en statistieken naar het model. Rijen of waarden gaan pas mee als de klant per bron een ruimere stand kiest.
Wat is het verschil tussen een regel in de prompt en een regel in de poort?
Een regel in de prompt is een verzoek aan het model, dat het kan negeren. Een regel in de poort wordt gehandhaafd voordat het verzoek het model bereikt.
Kan ik terugzien wat een agent naar het model heeft gestuurd?
Ja. Prompts en antwoorden worden versleuteld bewaard en zijn terug te lezen door wie daar recht op heeft. Elke inzage wordt gelogd.
Wat gebeurt er als iemand probeert bij een andere klant te komen?
Hij krijgt een 404. De weigering wordt geregistreerd, en een patroon van zulke pogingen wordt een alert.
Zijn deze garanties ook getest?
Ja. De garanties op deze pagina zijn geautomatiseerde tests die bij elke wijziging aan het platform draaien, onder meer met markerwaarden die nooit in een antwoord mogen verschijnen.