Comment donner un accès sécurisé à une base de données aux agents IA
Donner à un agent IA l'accès à votre base de données de production est un risque majeur. Un utilisateur en lecture seule ne suffit pas. Un agent ne peut pas juger de l'intention ou de la sensibilité des données. Si vous accordez un accès en écriture, une injection de prompt peut transformer un agent utile en un agent destructeur.
Vous avez besoin de deux couches de protection pour sécuriser vos données.
Couche 1 : Contrôles de base de données statiques Il s'agit des paramètres de base à l'intérieur de votre moteur de base de données. Utilisez-les en priorité :
- Rôles à privilèges minimaux : Créez un rôle spécifique pour l'agent. N'utilisez jamais de comptes administrateur.
- Réplicas de lecture : Dirigez les agents d'analyse vers un réplica afin qu'ils ne ralentissent pas la production.
- Sécurité au niveau des lignes (Row-level security) : Utilisez des politiques pour limiter les données qu'un agent peut voir.
- Délais d'expiration des requêtes (Statement timeouts) : Empêchez les requêtes incontrôlées de faire planter votre serveur.
- Listes d'autorisation (Allowlists) : Restreignez les connexions à des hôtes spécifiques.
Couche 2 : Le plan de contrôle au moment de l'exécution (Runtime Control Plane) Les contrôles statiques ne vérifient que l'identité. Ils ne peuvent pas empêcher un agent d'exfiltrer des données ou de suivre une instruction malveillante. Vous avez besoin d'un plan de contrôle qui s'interpose entre l'agent et la base de données.
Cette couche doit accomplir quatre tâches :
- Classifier : Étiquetez chaque requête comme une lecture, une écriture ou un changement de schéma.
- Appliquer le refus par défaut (default-deny) : Bloquez tout, sauf si vous l'autorisez explicitement.
- Filtrer les actions risquées : Exigez l'approbation d'un humain pour les suppressions massives ou les changements de schéma.
- Tout enregistrer : Conservez un journal immuable de chaque action et de chaque approbation.
Pourquoi est-ce important : Si vous placez des règles dans le prompt, l'agent peut les ignorer. Un plan de contrôle vit en dehors du contexte de l'agent. Il voit la requête réelle, et non le plan de l'agent. Cela vous protège contre l'injection de prompt.
Utilisez cette checklist pour un accès sécurisé :
- Rôle dédié par agent.
- Utilisez des réplicas de lecture pour l'exploration.
- Implémentez la sécurité au niveau des lignes.
- Définissez des délais d'expiration des requêtes.
- Routez tout le trafic via un plan de contrôle.
- Utilisez une politique de refus par défaut.
- Exigez une approbation humaine pour les tâches à haut risque.
- Conservez un journal d'audit immuable.
Les contrôles statiques font leur travail. Le plan de contrôle fait le reste. Vous avez besoin des deux.
Communauté d'apprentissage optionnelle: https://t.me/GyaanSetuAi
