Руководство и понимание

Управление ключами LLM API для команд: изоляция, ротация, лимиты расходов и реагирование на утечки

Практическая операционная модель для управления ключами LLM API между командами: изоляция ключей, доступ только через прокси, атрибуция использования, контроль расходов, ротация и реагирование на утечки.

Один общий ключ API LLM удобен до первой утечки, необъяснимого счета или сбоя производства. Практическая цель управления ключами API – не только сохранение секретности учетных данных. Он предназначен для ограничения радиуса взрыва, использования атрибутов, безопасной ротации, обнаружения ненормальных расходов и отзыва доступа без нарушения работы несвязанных приложений.

В этом руководстве командам представлена операционная модель для ключей API LLM между поставщиками, шлюзами, внутренними приложениями, агентствами и продуктами, ориентированными на клиентов. Он отделяет проверенные факты безопасности от рекомендуемых вариантов реализации и позволяет избежать предположения, что каждый поставщик предоставляет одни и те же элементы управления.

Операционная модель: каждому ключу нужна граница

Полезная стратегия использования ключей начинается с одного вопроса: что должно потерпеть неудачу, если этим ключом злоупотребят или отзовут? Если ответ — «вся компания», ключ слишком широк.

Факт: Руководство OpenAI по безопасности ключей API рекомендует каждому члену команды использовать уникальный ключ API, заявляет, что совместное использование ключей противоречит Условиям использования, и рекомендует назначать разрешения отдельным ключам, если это поддерживается. Руководство OpenAI также не рекомендует развертывать ключи API в клиентских средах, таких как браузеры или мобильные приложения, поскольку открытые ключи могут быть использованы для выполнения запросов от имени владельца.

Рекомендация: создавайте ключи с учетом операционных границ, а не удобства. Общие границы включают:

<ул>
  • Среда: производство, постановка, разработка, песочница.
  • Применение: серверная часть чат-бота, процессор документов, помощник по программированию, рабочий процесс аналитики.
  • Владелец: команда, сервисный аккаунт, разработчик, клиент агентства, арендатор.
  • Уровень риска: общедоступный рабочий процесс, внутренняя автоматизация, пакетное задание, экспериментальная интеграция.
  • Поставщик или маршрут: вышестоящий поставщик A, поставщик B, утвержденная группа моделей или маршрут шлюза.
  • Хорошим вариантом по умолчанию для растущей команды является использование одного рабочего ключа для каждого приложения или службы, одного непроизводственного ключа для каждой среды и отдельных ключей для автоматизации с высоким уровнем риска или использования на уровне клиента. Агентствам и реселлерам следует отдавать предпочтение виртуальным ключам на уровне клиента, а не делиться учетными данными вышестоящего поставщика.

    Никогда не помещайте ключи провайдера в распределенные клиенты

    Браузеры, мобильные приложения, расширения для настольных компьютеров, общедоступные плагины и клиентские скрипты представляют собой нежелательное место для необработанных учетных данных поставщика. Даже если вы запутаете ключ, распространяемое программное обеспечение можно будет проверить, скопировать или перехватить.

    Факт: OpenAI явно предупреждает не развертывать ключи API в клиентских средах. Исследования мобильных приложений также выявили постоянную утечку учетных данных LLM API в приложениях iOS, что подтверждает то же практическое предупреждение: учетные данные, встроенные в распределенные клиенты, имеют тенденцию ускользать.

    Рекомендация: используйте шаблон серверной части или шлюза:

    <ол>
  • Клиент проходит аутентификацию в вашем приложении, используя сеанс пользователя, JWT, токен клиента или кратковременные учетные данные.
  • Ваша серверная часть проверяет пользователя, арендатора, план и запрошенную операцию.
  • Ваша серверная часть или шлюз AI API обращается к вышестоящему поставщику LLM, используя защищенные учетные данные на стороне сервера.
  • Ответ возвращается клиенту после проверки политики, регистрации и учета затрат.
  • Такая конструкция позволяет обеспечить соблюдение правил продукта до того, как будут произведены расходы. Например, пользователь бесплатного плана может быть ограничен моделями меньшего размера, платный арендатор может получать более высокие дневные квоты, а внутренний рабочий процесс администратора может использовать отдельный маршрут с более строгим контролем.

    Составьте список ключевых слов, прежде чем вам понадобится реакция на инцидент

    Во время утечки команды часто обнаруживают, что никто не знает, какой службе принадлежит открытый ключ. Это сбой инвентаризации.

    Факт: В рейтинге OWASP API Security Top 10 2023 года неправильное управление запасами считается основным риском безопасности API. В инфраструктуре LLM инвентаризация ключей является частью инвентаризации API: вам необходимо знать, какие учетные данные существуют, к чему они имеют доступ и кому они принадлежат.

    Рекомендация: каждый ключ должен иметь метаданные. Как минимум, отслеживайте:

    <ул>
  • Имя ключа и внутренний идентификатор ключа.
  • Команда владельца и контакт для экстренных случаев.
  • Среда: производство, постановка, разработка, песочница.
  • Цель: приложение, рабочий процесс, арендатор, интеграция или использование разработчиком.
  • Разрешенные поставщики, модели, конечные точки или маршруты, если они поддерживаются.
  • Дата создания, временная метка последнего использования и запланированная дата проверки.
  • Предел расходов или квота.
  • Статус ротации и связанная конфигурация развертывания.
  • Используйте соглашение об именах, которое останется читаемым в оповещениях. Например:

    prod-supportbot-teamcx-gpt4class-2026q3stg-docprocessor-платформа-lowcost-2026q3
    арендатор-acme-prod-standard-2026q3
    dev-jlee-sandbox-2026q3

    Точный формат имеет меньшее значение, чем последовательность. Цель состоит в том, чтобы в оповещении говорилось: «Стандарт арендатора-акме-продукта превысил дневной порог», и ответственный владелец знал, что делать.

    Применяйте минимальные привилегии там, где это позволяет платформа

    Не каждый провайдер или шлюз предоставляет одинаковые элементы управления разрешениями, но принцип един: ключ должен иметь возможность делать только то, что необходимо его рабочей нагрузке.

    Рекомендация: ограничьте ключи одним или несколькими из следующих элементов управления, если это поддерживается:

    <ул>
  • Проект. Привязывайте ключи к проекту, а не ко всей организации.
  • Модель: разрешены только утвержденные модели; по умолчанию блокировать дорогие или экспериментальные модели.
  • Конечная точка: разрешает завершение чата, но запрещает несвязанные административные конечные точки.
  • Маршрут поставщика: разрешите маршрут шлюза вместо прямого доступа к каждому вышестоящему поставщику.
  • Скорость. Ограничение запросов в минуту или одновременных запросов.
  • Бюджет. Установите ограничения на расходы для каждого ключа, команды или клиента.
  • Например, для промежуточного ключа обычно не требуется доступ к самой дорогой производственной модели. Специалисту по классификации документов, вероятно, не нужен доступ к созданию изображений. Ключ клиента, ориентированный на клиента, не должен потреблять бюджет другого клиента.

    Разработайте элементы управления расходами на нескольких уровнях

    Безопасность API LLM и контроль затрат частично совпадают. Утечка ключа часто обнаруживается как аномалия выставления счетов до того, как она будет обнаружена как событие безопасности.

    Факт: Руководство по безопасности учетной записи OpenAI рекомендует разумные ограничения на расходы и отмечает, что отдельные ключи API могут облегчить просмотр использования по функциям, командам, продуктам или проектам. Отчеты об использовании OpenAI также поддерживают подробный анализ с помощью таких полей, как идентификатор проекта, идентификатор пользователя, идентификатор ключа API, модель, пакет и уровень обслуживания.

    Рекомендация: используйте многоуровневые ограничения, а не одно глобальное ограничение:

    <ул>
  • Ограничение на количество ключей предотвращает расходование всего бюджета на один учетные данные.
  • Ограничение на каждую команду: обеспечивает видимость и подотчетность использования ресурсов отделом.
  • Ограничение на количество клиентов изолирует использование клиентами в сценариях SaaS и агентств.
  • Порог ежедневной аномалии: активирует оповещения, когда использование отличается от обычного.
  • Глобальная аварийная остановка: позволяет быстро приостановить работу при активном нарушении.
  • Жесткие ограничения полезны, но они могут препятствовать законным пакетным заданиям. Более безопасная схема производства – это последовательность мер контроля:

    <ол>
  • Оповещение при достижении 50 процентов ожидаемых ежедневных расходов.
  • Эскалация на 80 процентов.
  • Ограничить некритичный трафик на 100 процентов.
  • Перед использованием глобального отключения заблокируйте только нарушающий ключ, арендатора или маршрут.
  • Компромисс: строгие бюджеты снижают риск выставления счетов, но могут создать риск доступности. Ограничения уровней в зависимости от рабочей нагрузки: интерактивный рабочий трафик, платный трафик, ориентированный на клиентов, фоновые задания, эксперименты и изолированные программные среды разработчиков не должны работать одинаково.

    Отслеживание использования по ключевому и логическому субъекту

    Ключ идентифицирует учетные данные. Он может не идентифицировать фактического пользователя, арендатора, функцию или рабочий процесс, вызвавший запрос. Для получения полезной аналитики использования ИИ регистрируйте как технические, так и бизнес-аспекты.

    Рекомендация: собирайте следующие поля для каждого запроса, если это разрешено политикой конфиденциальности и политикой конфиденциальности:

    <ул>
  • Идентификатор запроса и временная метка.
  • Идентификатор ключа API или идентификатор виртуального ключа.
  • Идентификатор приложения, команды, клиента, пользователя или рабочего процесса.
  • Поставщик, модель, маршрут и уровень обслуживания.
  • Количество токенов подсказки и завершения или эквивалентные единицы использования.
  • Ориентировочная стоимость.
  • Задержка, код состояния, количество повторов и класс ошибки.
  • Не превращайте наблюдение за расходами в ненужный сбор данных. Не сохраняйте полные запросы по умолчанию, если они могут содержать личные данные, секреты клиентов или регулируемый контент. Во многих случаях хешированных идентификаторов пользователей, идентификаторов арендаторов, количества токенов и названий моделей достаточно для возврата платежей и обнаружения аномалий.

    Ротация без простоев: безопасный рабочий процесс

    Факт: Руководство NIST по управлению ключами рассматривает управление ключами как дисциплину жизненного цикла, включающую создание, хранение, активацию, ротацию, приостановку, отзыв и уничтожение. Для ключей LLM API ротация — это не одноразовая работа по обеспечению безопасности; это оперативный рабочий процесс.

    Рекомендация: используйте этот процесс ротации без простоев:

    <ол>
  • Создайте заменяющий ключ. Сопоставьте необходимые разрешения, бюджет, маршрут и метаданные. Пока не отзывайте старый ключ.
  • Сохраните его в секретном менеджере. Избегайте локальных файлов, сообщений чата, заявок и вставленных переменных среды.
  • Развертывайте конфигурацию постепенно. Обновляйте по одной службе, региону, рабочей группе или сегменту клиента за раз.
  • Проверьте движение трафика. Убедитесь, что запросы поступают под новым ключом, а частота ошибок и задержка остаются нормальными.
  • Заморозить запись в старый ключ. Не дать новым развертываниям ссылаться на него.
  • Отменить старый ключ. После перемещения трафика отключите его, а не оставляйте как забытый запасной вариант.
  • Отставшие в аудите. Поиск журналов, манифестов развертывания, хранилищ секретов, переменных CI и ошибок времени выполнения для старого идентификатора ключа.
  • Для приложений, которые по-прежнему используют статические переменные среды, ротация будет нестабильной. Переходите к динамической загрузке секретов, централизованной настройке или виртуальным ключам, управляемым шлюзом. Как минимум задокументируйте, какое развертывание должно быть изменено перед отзывом.

    Руководство по реагированию на утечки

    При утечке ключа скорость имеет значение. Ответ должен быть написан до инцидента, а не импровизирован в панике, связанной с выставлением счетов.

    Немедленное сдерживание

    <ол>
  • Отменить или приостановить действие открытого ключа.
  • Если отзыв приведет к сбою в работе, сначала выдайте замену и немедленно переключите критический трафик.
  • Заблокируйте маршрут, арендатора или поставщика, если злоупотребления все еще активны.
  • Сохраняйте журналы, необходимые для выявления злоупотреблений.
  • Расследование

    <ол>
  • Определите, где появился ключ: репозиторий, пакет внешнего интерфейса, мобильное приложение, файл журнала, запрос в службу поддержки, инструмент поставщика или чат.
  • Найдите последнее известное законное использование.
  • Сравните использование до и после предполагаемого заражения.
  • Просмотрите используемые модели, запросите объем, стоимость, географию, если таковая имеется, а также необычные коды статуса.
  • Проверьте, не могут ли также быть раскрыты зависимые секреты или смежные системы.
  • Восстановление и профилактика

    <ол>
  • Поменяйте зависимые учетные данные, если в одной и той же среде произошла утечка более одного секрета.
  • При необходимости уведомите команду владельцев и затронутых заинтересованных сторон клиента.
  • Добавьте секретное сканирование в репозитории и конвейеры CI.
  • Предотвратите повторение, переместив вызовы на стороне клиента за серверную часть или шлюз.
  • Задокументируйте график инцидента, основную причину, влияние на затраты и улучшения контроля.
  • Прогноз: по мере того, как команды подключают к LLM все больше агентов, плагинов, инструментов автоматизации и рабочих процессов, ориентированных на конкретного клиента, утечки ключей будут все больше выглядеть в первую очередь как инциденты с затратами, а уже потом как инциденты с безопасностью. Команды с атрибуцией по ключу и контролем бюджета решат проблемы быстрее, чем команды, использующие одни общие учетные данные.

    Ключи, управляемые шлюзом, для команд с участием нескольких поставщиков

    Если ваша организация использует нескольких поставщиков LLM, ключи прямых поставщиков могут привести к разрозненному управлению: разные информационные панели, разные представления выставления счетов, разные модели разрешений и непоследовательные процессы ротации.

    Уровень ключей, управляемый шлюзом, может упростить эту задачу, выдавая ключи для приложений, сохраняя при этом учетные данные вышестоящего поставщика скрытыми. Приложения вызывают конечную точку API, совместимую с OpenAI, а шлюз занимается маршрутизацией, аналитикой использования, атрибуцией выставления счетов и соблюдением политик.

    Рекомендация: рассмотрите возможность использования уровня шлюза или прокси-сервера, если вам необходимо:

    <ул>
  • Единое место для управления ключами группы от нескольких поставщиков.
  • Единая система выставления счетов AI API и отчеты о расходах по каждому ключу.
  • Виртуальные ключи уровня клиента для агентств, реселлеров или арендаторов SaaS.
  • Централизованные списки разрешенных моделей, политики маршрутизации и экстренная приостановка.
  • Атрибуция использования по арендаторам, функциям, рабочим процессам или клиентам-партнерам.
  • Компромисс: шлюз улучшает управление и скрывает учетные данные восходящего потока, но становится частью пути запроса. Контролируйте его, как производственную инфраструктуру: задержка, доступность, частота ошибок, организация очередей, поведение при повторных попытках и сбои, связанные с конкретным поставщиком, — все это имеет значение.

    Контрольный список реализации

    <ул>
  • Замените общие ключи всей организации на ключи, относящиеся к приложению, среде, клиенту или рабочему процессу.
  • Удалите необработанные ключи поставщика из браузеров, мобильных приложений, расширений для настольных компьютеров и общедоступных скриптов.
  • Направление клиентских запросов через серверную часть или шлюз AI API.
  • Укажите владельца, цель, среду, разрешенные модели, бюджет и метаданные проверки к каждому ключу.
  • Примените минимальные привилегии: элементы управления проектом, конечной точкой, моделью, маршрутом, ставкой и бюджетом, если это возможно.
  • Установите лимиты расходов на ключ, команду, арендатора и глобальные лимиты расходов.
  • Зарегистрируйте идентификатор ключа, логического субъекта, модель, использование токена, расчетную стоимость, задержку и код состояния.
  • Создайте рабочий процесс ротации без простоев и протестируйте его перед чрезвычайной ситуацией.
  • Напишите модуль реагирования на утечки, включающий меры по сдерживанию, расследованию и предотвращению.
  • Проверьте неактивные ключи и отзовите все, что не имеет владельца или не было недавнего законного использования.
  • Практическое заключение

    Начните с ключа с самым высоким риском: того, который используется в рабочей среде, используется несколькими людьми, встроен в слишком много мест или отвечает за самые большие расходы. Назначьте ему владельца, разделите его по границам, добавьте бюджет, переместите его за серверную часть или шлюз, если клиенты его видят, и задокументируйте, как его менять.

    Тогда повторите. Надежное управление ключами LLM API — это не просто решение по хранению секретов. Это жизненный цикл: инвентаризация, изоляция, минимальные привилегии, атрибуция использования, контроль затрат, ротация и реагирование на утечки. Выгода проста: когда что-то идет не так, риску должно подвергаться только одно приложение, клиент или рабочий процесс, а не весь бюджет ИИ.

    Связанное чтение

    FAQ

    Часто задаваемые вопросы

    Сколько ключей API LLM должна создать команда?
    Создавайте ключи вокруг операционных границ: приложения, среды, владельца, арендатора и уровня риска. Избегайте использования одного общего ключа для всей организации. Больше ключей улучшает атрибуцию и контроль радиуса взрыва, но требует автоматизации инвентаризации и жизненного цикла.
    Безопасно ли использовать ключ LLM API в мобильном приложении или браузере?
    Нет. Необработанные ключи поставщика не следует размещать в распределенных клиентах, таких как браузеры, мобильные приложения, расширения для настольных компьютеров или общедоступные сценарии. Используйте серверную часть или шлюз, который аутентифицирует пользователя и вызывает поставщика с учетными данными на стороне сервера.
    Что необходимо регистрировать для контроля затрат на AI API?
    Запишите идентификатор запроса, идентификатор ключа, идентификатор клиента или пользователя, где это необходимо, модель, поставщика или маршрут, использование токена или эквивалентные единицы, расчетную стоимость, задержку, код состояния и класс ошибки. Избегайте хранения конфиденциального содержимого подсказок, если в этом нет явной необходимости и надлежащего контроля.
    Каков самый безопасный способ смены ключа API LLM?
    Создайте запасной ключ, сохраните его в секретном менеджере, разверните его постепенно, проверьте перемещение трафика, отзовите старый ключ и выполните аудит на наличие отстающих. Не отзывайте первым, если активное злоупотребление не требует немедленного сдерживания.
    Зачем использовать уровень ключей, управляемый шлюзом?
    Уровень, управляемый шлюзом, скрывает учетные данные вышестоящего поставщика и централизует управление ключами, аналитику использования, атрибуцию выставления счетов, политики модели и экстренную приостановку. Компромисс заключается в том, что шлюз становится производственной инфраструктурой и его необходимо контролировать.