Hardening-gids voor de vectordatabase
Security best practices voor het hardenen van vectordatabases — met aandacht voor Pinecone, Weaviate, Chroma, Qdrant en Milvus, inclusief configuratieadvies, toegangscontrole en monitoring.
Vectordatabases vormen de ruggengraat van RAG-systemen, semantisch zoeken en aanbevelingsengines. Ze slaan embeddingvectoren samen met metadata op en bieden mogelijkheden voor similarity search. Een gecompromitteerde vectordatabase kan leiden tot RAG-poisoning, data-exfiltratie, privacyschendingen en verstoring van de dienst. Deze gids geeft hardening-aanbevelingen voor de meest gebruikte vectordatabases.
Universele hardeningprincipes
Voordat we ingaan op platformspecifiek advies, gelden deze principes voor alle vectordatabase-deployments.
Authenticatie en autorisatie
Elke vectordatabase-deployment moet authenticatie afdwingen. Zet een vectordatabase nooit live met standaardcredentials of zonder ingeschakelde authenticatie. Gebruik sterke, unieke credentials voor elke dienst die met de database verbindt. Implementeer role-based access control (RBAC) om lees- en schrijfrechten te scheiden. Service-accounts horen de minimale rechten te hebben die hun functie vereist.
Aparte toegangspatronen vereisen aparte credentials. De dienst die embeddings schrijft (de indexeringspipeline) heeft schrijftoegang nodig, maar misschien geen leestoegang. De dienst die embeddings opvraagt (de retrievalpipeline) heeft leestoegang nodig, maar zou geen schrijftoegang mogen hebben. De beheersinterface heeft beheertoegang nodig, maar zou niet bereikbaar mogen zijn vanuit applicatiecode.
Encryptie
Versleutel data at rest en in transit. Verifieer bij managed services dat encryptie is ingeschakeld en dat er customer-managed keys worden gebruikt waar compliance dat vereist. Configureer bij zelfgehoste databases TLS voor alle clientverbindingen en versleutel de opslagvolumes.
Embeddingvectoren zijn weliswaar niet direct leesbaar voor mensen, maar bevatten semantische informatie over de brondata. Zoals besproken in het gedeelte over embeddingprivacy kunnen embeddings mogelijk geïnverteerd worden om brontekst te herstellen. Behandel embeddingopslag met dezelfde encryptie-eisen als de brondata.
Netwerkbeveiliging
Beperk de netwerktoegang tot de vectordatabase tot uitsluitend de diensten die hem nodig hebben. Gebruik private networking (VPC's, private endpoints) in plaats van publieke endpoints. Implementeer netwerkbeleid of security groups die specifieke bron-IP's of diensten whitelisten. Blokkeer al het inkomende verkeer vanaf het publieke internet, tenzij de database bewust publiek toegankelijk is.
Monitoring en logging
Schakel uitgebreide logging in voor alle databasebewerkingen. Log alle queries met hun parameters, alle schrijfbewerkingen met de bronidentiteit, alle beheerbewerkingen en alle authenticatiepogingen, inclusief mislukte. Monitor op afwijkende patronen die op aanvalsactiviteit kunnen wijzen.
Platformspecifieke hardening
Pinecone
Pinecone is een volledig managed vectordatabase. De security-hardening richt zich op API-keybeheer, netwerkconfiguratie en organisatorische controls.
API-keybeheer: Pinecone gebruikt API-keys voor authenticatie. Roteer keys regelmatig en gebruik aparte keys voor verschillende omgevingen (development, staging, productie) en verschillende diensten (indexering, querying, beheer). Bewaar keys in een secrets manager, niet in code of configuratiebestanden.
Netwerkbeveiliging: Pinecone ondersteunt private endpoints via AWS PrivateLink. Configureer voor productie-deployments die gevoelige data verwerken private endpoints om al het verkeer binnen je VPC te houden. Wanneer private endpoints niet haalbaar zijn, beperk je de toegang met API-keyscoping en netwerkcontroles aan jouw kant.
Namespace-isolatie: Gebruik Pinecone-namespaces om data te isoleren voor verschillende tenants, applicaties of beveiligingscontexten. Namespaces delen weliswaar een index en vormen geen sterke beveiligingsgrens, maar bieden logische scheiding en kun je combineren met toegangscontrole op applicatieniveau.
Metadatafiltering: Gebruik metadatafilters om toegangscontrole af te dwingen op querytijd. Sla toegangscontrole-attributen (tenant-ID, classificatieniveau, eigenaar) op als metadata bij elke vector en filter queries zo dat ze alleen vectoren teruggeven die de aanvragende gebruiker mag zien.
Back-up en herstel: Configureer regelmatige back-ups van je Pinecone-collecties. Verifieer dat back-ups succesvol hersteld kunnen worden. Bewaar back-ups met dezelfde encryptie en toegangscontrole als de primaire data.
Weaviate
Weaviate kan worden uitgerold als managed service (Weaviate Cloud Services) of zelfgehost. Zelfgehoste deployments bieden meer controle over de beveiliging, maar vergen meer hardeningwerk.
Authenticatie: Weaviate ondersteunt API-keyauthenticatie en OIDC-gebaseerde authenticatie. Gebruik voor productie-deployments OIDC-integratie met de identity provider van je organisatie. Dat maakt SSO, MFA en centraal credentialbeheer mogelijk.
Autorisatie: Het autorisatiesysteem van Weaviate ondersteunt role-based access control. Definieer rollen die aansluiten op de toegangspatronen van je applicatie: een read-only rol voor querydiensten, een read-write rol voor indexeringsdiensten en een adminrol voor schemabeheer. Wijs rollen toe aan specifieke API-keys of OIDC-groepen.
Netwerkhardening: Rol zelfgehoste Weaviate uit binnen een VPC en beperk de toegang via security groups. Schakel de standaard HTTP-poort uit en gebruik alleen HTTPS met geldige TLS-certificaten. Als je Weaviate in een Kubernetes-cluster draait, gebruik dan NetworkPolicies om pod-naar-podcommunicatie te beperken.
Modulebeveiliging: Weaviate gebruikt modules voor vectorisatie, generatieve mogelijkheden en integraties. Schakel alleen de modules in die je nodig hebt. Elke ingeschakelde module vergroot het aanvalsoppervlak. Verifieer dat modules uit vertrouwde bronnen komen en controleer hun configuratie op beveiligingsrelevante instellingen.
Multi-tenancy: Weaviate ondersteunt native multi-tenancy. Gebruik tenantisolatie voor applicaties die meerdere klanten bedienen. De data van elke tenant wordt op opslagniveau geïsoleerd, wat sterkere scheiding biedt dan filtering op basis van metadata.
Back-upbeveiliging: Configureer Weaviate-back-ups naar een veilige opslagbackend (S3 met encryptie, GCS met customer-managed keys). Verifieer dat de toegangscontrole op de back-upopslag net zo streng is als die op de database.
Chroma
Chroma is populair voor development en prototyping en wordt steeds vaker in productie ingezet. De beveiligingshouding hangt sterk af van de deploymentconfiguratie.
Servermodus: Draai Chroma in productie altijd in servermodus (client-serverarchitectuur). De embedded modus (in-process) biedt geen beveiligingsmaatregelen op netwerkniveau. De servermodus ondersteunt authenticatie, TLS en netwerktoegangsbeperkingen.
Authenticatie: Chroma ondersteunt token-gebaseerde authenticatie. Schakel authenticatie in voor alle deployments in servermodus. Gebruik sterke, unieke tokens en roteer ze regelmatig. Zet Chroma nooit live zonder authenticatie, zelfs niet in interne netwerken.
TLS-configuratie: Configureer TLS voor alle Chroma-serververbindingen. Gebruik in productie certificaten van een vertrouwde CA in plaats van self-signed certificaten. Verifieer dat clients het servercertificaat valideren.
Beveiliging van persistentie: Chroma persisteert data naar het lokale bestandssysteem. Zorg ervoor dat de persistentiedirectory restrictieve bestandsrechten heeft. Versleutel het opslagvolume. Implementeer file integrity monitoring op de persistentiedirectory.
Docker-deployment: Als je Chroma in Docker draait, stel de containerpoort dan niet onnodig bloot aan het hostnetwerk. Gebruik Docker-networking om de toegang tot de Chroma-container te beperken. Draai de container als een non-root gebruiker. Mount het persistentievolume met minimale rechten.
Qdrant
Qdrant is een high-performance vectordatabase die je zelf kunt hosten of als managed service kunt gebruiken.
API-keyauthenticatie: Schakel API-keyauthenticatie in voor alle deployments. Gebruik aparte keys voor lees- en schrijfbewerkingen. Bewaar keys in een secrets manager.
TLS: Configureer TLS voor de gRPC- en REST API-endpoints. Qdrant ondersteunt TLS via instellingen in het configuratiebestand. Verifieer dat TLS wordt afgedwongen en dat onversleutelde verbindingen worden geweigerd.
Beveiliging van collecties: Qdrant ondersteunt van zichzelf geen toegangscontrole per collectie. Implementeer toegangscontrole op applicatieniveau die de autorisatie van de aanvragende dienst valideert voordat queries naar Qdrant worden doorgestuurd. Gebruik voor multi-tenant applicaties aparte Qdrant-instanties of vertrouw op payload-gebaseerde filtering met afdwinging op applicatieniveau.
Beveiliging van snapshots: Qdrant-snapshots bevatten alle data in een collectie. Zorg ervoor dat snapshotopslag versleuteld en toegangsgecontroleerd is. Beperk wie snapshots mag maken en inzien.
Milvus
Milvus is een gedistribueerde vectordatabase ontworpen voor grootschalige deployments. De gedistribueerde architectuur brengt extra beveiligingsoverwegingen met zich mee.
Authenticatie: Schakel authenticatie met gebruikersnaam en wachtwoord in. Integreer met LDAP of OAuth voor centraal identiteitsbeheer. Gebruik sterke wachtwoorden en dwing wachtwoordrotatie af.
TLS: Configureer TLS voor alle communicatiepaden: client naar proxy, proxy naar datanodes en interne clustercommunicatie. In een gedistribueerde deployment voorkomt interne TLS netwerkaanvallen tussen Milvus-componenten.
RBAC: Milvus ondersteunt role-based access control met granulariteit op collectieniveau. Definieer rollen die lees-, schrijf- en beheertoegang scheiden. Wijs rollen toe aan specifieke gebruikers of service-accounts.
etcd-beveiliging: Milvus gebruikt etcd voor metadataopslag. Beveilig etcd met authenticatie, TLS en toegangscontrole. Een gecompromitteerde etcd-instantie kan worden gebruikt om de metadata en het gedrag van Milvus te manipuleren.
MinIO/S3-beveiliging: Milvus gebruikt object storage (MinIO of S3) voor datapersistentie. Pas standaard hardening voor object storage toe: encryptie, toegangscontrole, versionering en audit logging.
Operationele beveiliging
Capaciteitsplanning
Denial-of-service-aanvallen op vectordatabases kunnen resourcelimieten misbruiken. Stel passende limieten in voor het maximale aantal vectoren per collectie, de maximale querybatchgrootte, gelijktijdige querylimieten en opslagquota. Monitor het resourcegebruik en sla alarm voordat de limieten worden bereikt.
Updatebeheer
Houd de software van je vectordatabase up-to-date. Security-patches voor vectordatabases verhelpen kwetsbaarheden in queryverwerking, authenticatie, netwerkafhandeling en dataopslag. Richt een patchmanagementproces in dat updates test in een staging-omgeving voordat ze in productie worden uitgerold.
Disaster recovery
Onderhoud geteste disaster-recoveryprocedures. Regelmatige back-upverificatie zorgt ervoor dat back-ups bruikbaar zijn. Hersteltesten verifiëren dat het volledige herstelproces werkt. Runbook-documentatie biedt stapsgewijze herstelinstructies. En RTO/RPO-doelen definiëren de acceptabele hersteltijd en het acceptabele dataverlies.
Security-assessment
Voer regelmatig security-assessments uit op vectordatabase-deployments. Test authenticatiebypass, autorisatie-escalatie, netwerkblootstelling, injectie-aanvallen en data-exfiltratie. Gebruik de aanvalstechnieken die elders in dit gedeelte zijn gedocumenteerd als je assessmentkader.
Hardening-checklist
- Authenticatie ingeschakeld met sterke credentials
- RBAC geconfigureerd met least-privilege rollen
- TLS ingeschakeld voor alle verbindingen
- Encryptie at rest voor dataopslag
- Netwerktoegang beperkt tot geautoriseerde diensten
- Logging ingeschakeld voor alle bewerkingen
- Monitoring geconfigureerd op afwijkende patronen
- Back-ups geconfigureerd en getest
- Standaardcredentials gewijzigd of verwijderd
- Onnodige functies en modules uitgeschakeld
- Software bijgewerkt naar de nieuwste stabiele versie
- Disaster-recoveryprocedures gedocumenteerd en getest
Vectordatabases zijn kritieke infrastructuur voor AI-applicaties. Pas op vectordatabases dezelfde beveiligingsstrengheid toe als op elke productiedatabase met gevoelige data — want in de meeste deployments is dat precies wat ze bevatten.