Come fornire un accesso sicuro al database agli agenti AI

Fornire a un agente AI l'accesso al proprio database di produzione è un rischio enorme. Un utente in sola lettura non è sufficiente. Un agente non può giudicare l'intento o la sensibilità dei dati. Se concedi l'accesso in scrittura, un prompt injection può trasformare un agente utile in uno distruttivo.

Hai bisogno di due livelli di protezione per mantenere i tuoi dati al sicuro.

Livello 1: Controlli del database statici

Questi sono i controlli di base all'interno del motore del database. Usali per primi:

  • Ruoli con privilegi minimi: Crea un ruolo specifico per l'agente. Non usare mai account admin.
  • Replica di sola lettura: Invia gli agenti di analisi a una replica in modo che non rallentino la produzione.
  • Sicurezza a livello di riga (Row-level security): Usa delle policy per limitare quali dati un agente può vedere.
  • Timeout delle istruzioni: Impedisci che query fuori controllo mandino in crash il server.
  • Allowlist: Limita le connessioni a host specifici.

Livello 2: Il piano di controllo runtime

I controlli statici verificano solo l'identità. Non possono impedire a un agente di esfiltrare dati o di seguire un'istruzione malevola. Hai bisogno di un piano di controllo (control plane) posizionato tra l'agente e il database.

Questo livello deve fare quattro cose:

  • Classificare: Etichetta ogni query come lettura, scrittura o modifica dello schema.
  • Imporre il default-deny: Blocca tutto, a meno che tu non lo consenta esplicitamente.
  • Controllare le azioni rischiose: Richiedi l'approvazione umana per eliminazioni massive o modifiche allo schema.
  • Registrare tutto: Mantieni un log immutabile di ogni azione e di ogni approvazione.

Perché è importante:

Se inserisci le regole nel prompt, l'agente può ignorarle. Un piano di controllo risiede al di fuori del contesto dell'agente. Esso vede la query effettiva, non il piano dell'agente. Questo ti protegge dal prompt injection.

Usa questa checklist per un accesso sicuro:

  • Ruolo dedicato per ogni agente.
  • Usa le replica di sola lettura per l'esplorazione.
  • Implementa la sicurezza a livello di riga.
  • Imposta i timeout delle istruzioni.
  • Instrada tutto il traffico attraverso un piano di controllo.
  • Usa una policy di default-deny.
  • Richiedi l'approvazione umana per i compiti ad alto rischio.
  • Mantieni un log di audit immutabile.

I controlli statici fanno il loro lavoro. Il piano di controllo fa il resto. Hai bisogno di entrambi.

Fonte: https://dev.to/maxime_dalessandro_28171d/how-to-give-an-ai-agent-safe-access-to-your-production-database-1ami

Community di apprendimento opzionale: https://t.me/GyaanSetuAi