Безопасная интеграция
Безопасность API‑ключей
API‑ключ нужно хранить как пароль к платному сервису. Он должен жить на сервере или в secret manager, иметь минимальные права, квоту, срок действия и план немедленного отзыва.
Где хранить API‑ключ?
В продакшене ключ хранится в переменной окружения, secret manager или другом хранилище с контролем доступа. Он не должен попадать в browser JavaScript, мобильный бинарный файл, Git, issue, screenshot, аналитику или обычный чат. Официальная OpenAI API reference также рекомендует не передавать ключ другим и не встраивать его в клиентский код.
Для локальной разработки можно использовать файл окружения, который исключён из Git. Секрет всё равно должен быть тестовым, с малой квотой и ограниченным сроком.
Почему нужны отдельные ключи?
Один ключ на всю команду мешает понять, кто потратил бюджет, и заставляет отключать все системы при одной утечке. Минимальное разделение — по средам: local, test и production. Лучше добавить отдельный ключ на проект, команду или интеграцию.
- Тестовый ключ имеет низкую дневную квоту.
- Продакшен‑ключ не используется вручную на ноутбуке.
- Ключ уволенного сотрудника отзывается без влияния на других.
- Каждый ключ имеет понятного владельца и дату пересмотра.
Как квоты снижают ущерб?
Квота не остановит сам факт утечки, но ограничит возможные расходы и нагрузку. Для пилота установите лимит по дням и разрешите только одну модель. Для продакшена добавьте предупреждения при 50%, 80% и 100% бюджета. Отдельно контролируйте всплеск запросов, токенов и ошибок.
Логи должны помогать в диагностике, но не становиться новой утечкой. Не пишите туда полный ключ и чувствительное тело запроса. Для поддержки обычно достаточно request ID, времени, маршрута, HTTP‑кода и последних четырёх символов идентификатора.
Что делать при утечке?
- Немедленно отзовите ключ. Не ждите подтверждённого злоупотребления.
- Выпустите новый ключ с минимальными правами и квотой.
- Обновите секрет во всех средах и перезапустите зависимые процессы.
- Проверьте журналы с момента вероятной утечки до отзыва.
- Удалите секрет из источника утечки и добавьте защиту от повторения.
Короткий чек‑лист перед запуском
- Ключ не находится в client‑side коде или Git.
- Есть отдельные ключи для test и production.
- Заданы модель, квота, срок и владелец каждого ключа.
- Логи не содержат полные секреты и чувствительные данные.
- Команда знает, кто может отозвать ключ и как это сделать.
Политика Mocoore по доступу и журнам описана на странице «Безопасность».
Источники
Принципы хранения и передачи bearer‑ключей сверены с OpenAI API reference. Маршруты и заголовки Claude API нужно сверять с Claude Platform API overview. Правила конкретного шлюза и клиента всегда проверяются отдельно.