РУКОВОДСТВО · ОБНОВЛЕНО 2026-09-15
Безопасность AI API: ключи, данные, лимиты и tools
AI API объединяет обычные риски web-сервиса с недоверенным модельным выводом, файлами и инструментами, поэтому защита строится слоями.
Храните provider key только на сервере, выдавайте проектные ключи с минимальными правами, ограничивайте бюджет и частоту, валидируйте input/output и каждый tool call. Считайте текст пользователя, документов и ответа модели недоверенным и подготовьте отзыв ключа и расследование.
1. Разделите ключи и полномочия
У каждого окружения и проекта отдельный секрет с минимальным доступом. Клиент получает ваш короткоживущий токен или вызывает backend, но не видит provider key. Ключи хранятся в secret manager, ротируются и отзываются. Поиск случайно опубликованных секретов и запрет их логирования входят в pipeline.
2. Ограничьте расход и злоупотребление
Поставьте rate limit, месячный бюджет, максимальный input/output, размер файла и число tool steps. Квоты применяются сервером к подтверждённой личности и проекту. Аномальный рост токенов, ошибок или новых IP создаёт сигнал. Один глобальный лимит не защищает от пользователя, который забрал весь бюджет команды.
3. Обрабатывайте контент как недоверенный
Prompt injection может находиться в сообщении, web-странице, PDF или результате поиска. Системная инструкция не является полной границей безопасности. Отделяйте данные от команд, фильтруйте источники, минимизируйте доступные tools и не передавайте секреты модели. Output экранируется перед HTML, shell, SQL и шаблонами.
4. Защитите инструменты и файлы
Каждый tool повторно проверяет schema, принадлежность объекта и право действия. Запись идемпотентна, опасные операции требуют product-confirmation. Загрузки проверяют MIME, сигнатуру, размер и вредоносное содержимое; URL защищают от SSRF. Результат модели не выбирает произвольный host, путь или команду.
5. Подготовьте наблюдение и инцидент
Логируйте request id, пользователя, модель, usage, решение router и tool name без ключей и лишних prompts. Определите сроки хранения и доступ. При утечке отзывают ключ, ограничивают egress, находят затронутые проекты и меняют секреты. Регулярно тестируйте неверную авторизацию, обход лимита и вредоносные документы.
Частые вопросы
Можно хранить ключ в мобильном приложении?
Долгоживущий provider key извлекается; используйте свой backend и ограниченные токены.
Спасает ли системный prompt от injection?
Нет, безопасность обеспечивают права, изоляция и проверки инструментов.
Нужно ли логировать prompts?
Только при понятной цели, минимизации, сроке и контроле доступа.
Как ограничить расходы?
Budgets, rate limits, max tokens и отдельные ключи по проектам.
Что делать при утечке?
Немедленно отозвать секрет, ограничить доступ и провести расследование.