Как обеспечить безопасный доступ ИИ-агентов к базе данных
Предоставление ИИ-агенту доступа к вашей production-базе данных — это огромный риск. Пользователя с правами только на чтение недостаточно. Агент не может оценить намерения или чувствительность данных. Если вы предоставите права на запись, инъекция промпта (prompt injection) может превратить полезного агента в разрушительного.
Чтобы обезопасить свои данные, вам необходимы два уровня защиты.
Уровень 1: Статические средства контроля базы данных Это базовые настройки внутри вашего движка базы данных. Используйте их в первую очередь:
- Роли с минимальными привилегиями: Создайте отдельную роль для агента. Никогда не используйте учетные записи администратора.
- Реплики для чтения: Направляйте аналитических агентов на реплику, чтобы они не замедляли работу основной базы.
- Безопасность на уровне строк (Row-level security): Используйте политики, чтобы ограничить данные, которые может видеть агент.
- Таймауты выполнения запросов (Statement timeouts): Предотвращайте сбои сервера из-за бесконечных запросов.
- Белые списки (Allowlists): Ограничьте подключения только определенными хостами.
Уровень 2: Контрольный уровень во время выполнения (Runtime Control Plane) Статические средства контроля проверяют только идентификацию. Они не могут помешать агенту выгрузить данные или выполнить вредоносную инструкцию. Вам нужен контрольный уровень (control plane), который будет находиться между агентом и базой данных.
Этот уровень должен выполнять четыре задачи:
- Классификация: Помечайте каждый запрос как чтение, запись или изменение схемы.
- Принцип «запрещено по умолчанию» (default-deny): Блокируйте всё, что не разрешено явно.
- Контроль рискованных действий: Требуйте подтверждения человеком для массового удаления или изменения схемы.
- Регистрация всего: Ведите неизменяемый лог каждого действия и каждого подтверждения.
Почему это важно: Если вы пропишете правила в промпте, агент может их проигнорировать. Контрольный уровень находится вне контекста агента. Он видит фактический запрос, а не план агента. Это защищает вас от инъекций промпта.
Используйте этот чек-лист для безопасного доступа:
- Выделенная роль для каждого агента.
- Использование реплик для чтения при исследовании данных.
- Внедрение безопасности на уровне строк.
- Установка таймаутов выполнения запросов.
- Маршрутизация всего трафика через контрольный уровень.
- Использование политики «запрещено по умолчанию».
- Требование подтверждения человеком для задач с высоким риском.
- Ведение неизменяемого журнала аудита.
Статические средства контроля выполняют свою работу. Контрольный уровень делает всё остальное. Вам нужны оба.
Дополнительное сообщество для обучения: https://t.me/GyaanSetuAi
