Как безопасно хранить API-ключи для AI-сервисов
API-ключ открывает доступ к балансу и моделям, поэтому обращаться с ним нужно как с паролем от платёжного инструмента. Главный принцип: браузер пользователя никогда не должен получать постоянный ключ провайдера.
Где должен находиться ключ
Храните ключ в секретах среды выполнения на сервере. Клиентское приложение обращается к вашему backend, а backend добавляет Authorization перед запросом к AI API. Файлы .env не публикуют и не включают в образ фронтенда.
- не вставлять ключ в VITE_ и NEXT_PUBLIC_ переменные
- не передавать ключ в URL
- не хранить секрет в localStorage
- не коммитить .env в Git
Минимальные права и разделение
Создавайте отдельный ключ для каждого окружения и интеграции. Так утечку можно локализовать без остановки всех приложений. Ограничивайте бюджет и скорость запросов на стороне кабинета, если эти функции доступны.
Логи, ротация и инциденты
Маскируйте Authorization до записи HTTP-запроса в журнал. Если ключ оказался в Git, одного удаления строки недостаточно: считайте секрет скомпрометированным, отзовите его и выпустите новый.
- регулярно проверять репозитории сканером секретов
- фиксировать владельца и назначение ключа
- ротировать ключ без простоя через короткое перекрытие
- настроить уведомления об аномальном расходе