Безопасная интеграция

Безопасность 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‑кода и последних четырёх символов идентификатора.

Что делать при утечке?

  1. Немедленно отзовите ключ. Не ждите подтверждённого злоупотребления.
  2. Выпустите новый ключ с минимальными правами и квотой.
  3. Обновите секрет во всех средах и перезапустите зависимые процессы.
  4. Проверьте журналы с момента вероятной утечки до отзыва.
  5. Удалите секрет из источника утечки и добавьте защиту от повторения.
Важно: удаление ключа из последнего Git‑коммита не отменяет утечку. Ключ нужно отозвать.

Короткий чек‑лист перед запуском

  • Ключ не находится в client‑side коде или Git.
  • Есть отдельные ключи для test и production.
  • Заданы модель, квота, срок и владелец каждого ключа.
  • Логи не содержат полные секреты и чувствительные данные.
  • Команда знает, кто может отозвать ключ и как это сделать.

Политика Mocoore по доступу и журнам описана на странице «Безопасность».

Источники

Принципы хранения и передачи bearer‑ключей сверены с OpenAI API reference. Маршруты и заголовки Claude API нужно сверять с Claude Platform API overview. Правила конкретного шлюза и клиента всегда проверяются отдельно.

Проверка интеграции

Обсудить безопасный пилот

Сообщите сценарий, клиент, страну и требования к данным. Не присылайте действующие ключи.