Перейти к основному содержанию
Промпт, несущий ключ AKIA..., вставленный .env, агент, который повторяет собственный токен sk-... — любое из этого может отправить живые учётные данные в OpenAI, Anthropic или Google в открытом виде, где они попадают в их логи и ваши. Secrets Blocker останавливает это на шлюзе: пресет guardrail в один клик, который сканирует запрос на формы учётных данных и отклоняет вызов с HTTP 400 прежде, чем хоть один байт покинет ваш шлюз. Это сфокусированная посадочная страница для сценария утечки секретов. Полный движок guardrail — каждый тип правила, поле и маршрут — см. в справочнике Guardrails.

1. Предотвратите сценарии утечки api-ключей в llm одним пресетом

Весь смысл сантехники prevent api key leak llm — поймать учётные данные до вышестоящего вызова, а не после того, как они уже в логе запросов провайдера. Пресет Secrets Blocker делает ровно это. Это небольшой guardrail из правил block на стадии input, каждое — regex для известной формы учётных данных:
AKIA, за которым следуют 16 заглавно-буквенно-цифровых символов — каноническая форма AWS access-key-id.
Префикс sk-, за которым следует длинное тело токена — форма, используемая OpenAI и несколькими похожими ключами провайдеров.
Префикс ghp_, за которым следует тело из 36 символов.
Когда любое правило совпадает, запрос блокируется — шлюз никогда его не пересылает. Политика живёт в шлюзе, а не в вашем приложении, так что ваше приложение продолжает вызывать /v1/chat/completions ровно как раньше, без изменения SDK и без передеплоя.
Стадия input, до тарификации. Secrets Blocker проверяет то, что вы отправляете. Совпадение отклоняет вызов до того, как модель будет вызвана, так что учётные данные никогда не доходят до провайдера, а заблокированный запрос не стоит квоты. Чтобы также ловить секрет, который модель выдаёт обратно клиенту, сочетайте его с пресетом output-block — см. §5.

2. Примените пресет в консоли

Каждый шаг здесь — действие консоли на хостед-шлюзе под вашей собственной сессией. Создание и редактирование guardrails требует Developer+ в рабочем пространстве. Только финальный вызов /v1/* использует relay-ключ sk-orca-....
1

Откройте шаблон

В консоли откройте Guardrails, нажмите split-кнопку New guardrail и выберите Secrets & API-Key Blocker из категории шаблонов Secrets. Это засевает правила block на стадии input.
2

Назовите и сохраните

Дайте ему имя (≤ 64 символов), например secrets-blocker, и сохраните. Пресет — это семя, а не замок — после добавляйте или редактируйте правила свободно (см. §4).
3

Протестируйте

Откройте вкладку Test, вставьте образец учётных данных на стадии input и прогоните политику локально — без вышестоящего вызова, без квоты (см. §3).
4

Привяжите ключ

Отредактируйте API-ключ и выберите secrets-blocker из выпадающего списка Guardrail (устанавливает guardrail_id на ключе) или пометьте его default’ом рабочего пространства. См. Привязка к ключу и Default аккаунта.

3. Протестируйте перед привязкой

Докажите, что правило срабатывает, прежде чем на него укажет любой ключ. Откройте вкладку Test внутри редактора, вставьте фиктивные учётные данные, выберите стадию input и запустите:
Here is my key: AKIAIOSFODNN7EXAMPLE
Песочница оценивает текущую политику локально — ничего не отправляется вышестоящей системе, ничего не тарифицируется — и возвращает вердикт block, называющий сработавшее правило. Для A/B-сетки против корпуса образцов утёкших секретов и безобидных eval-харнесс живёт одной вкладкой дальше.

4. Расширьте покрытие

Secrets Blocker покрывает три формы с самым высоким трафиком. Категория Secrets поставляет родственные пресеты, которые вы можете применять рядом с ним, и вы можете создать собственное правило regex для любого токена, который выпускает ваш стек:

Private Keys & Cloud Tokens

Сопутствующий пресет Secrets, который блокирует приватные ключи PEM, токены Slack и Stripe, ключи Google API и JWT в запросе.

Crypto Wallet Block

Блокирует адреса кошельков в стиле BTC и ETH в запросе, когда они никогда не должны дойти до провайдера.
Чтобы сопоставить формат внутреннего токена, добавьте правило regex — паттерны RE2, линейное время, без обратных ссылок — на стадии input с действием block. Плохие паттерны отклоняются при сохранении, так что guardrail, который вы можете сохранить, всегда компилируется.
Хотите вместо блокировки отредактировать утёкший секрет и пропустить запрос очищенным? Используйте правило pii с действием mask — набор встроенных детекторов включает aws_access_key, api_key_openai и jwt, каждый рендерится в типизированный тег вроде [AWS_ACCESS_KEY]. См. Действия для block против mask.

5. Ловите секреты и в ответе

Secrets Blocker проверяет запрос. Отдельный пресет Secrets, Code Secret in Output, проверяет ответ модели на приватные ключи и токены в стиле AWS/OpenAI и блокирует вызов, если один утекает обратно. Output block применяется в обоих случаях: на нестриминговом ответе ответ проверяется до того, как вернётся, а на стриминговом ответе сканер режет поток прежде, чем заблокированный контент дойдёт до клиента. Блокировка на стадии output возвращает предварительно списанную квоту. См. Правила стадии output и Покрытие стриминга.

6. Как выглядит блокировка

Заблокированный запрос возвращает HTTP 400 с кодом ошибки guardrail_blocked и сообщением, называющим guardrail и сработавшее правило:
{
  "error": {
    "code": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-blocker\": regex(...)"
  }
}
Запрос не стоит квоты — блокировка на стадии input срабатывает до тарификации — и помечается skip-retry, поскольку повторный прогон того же промпта по другому каналу просто снова заблокировался бы. См. ошибку guardrail_blocked.

7. Посмотрите, что сработало

Каждое сработавшее правило записывает совпадение — тип правила, действие, стадию и строку-деталь — всплывающее в ленте Matches рабочего пространства. Сама совпавшая подстрока (учётные данные) записывается только, когда включён Log raw content, который по умолчанию выключен.
Для контроля секретов оставить Log raw content выключенным обычно и есть смысл: захват совпавшей подстроки переписал бы утёкшие учётные данные прямо в вашу собственную телеметрию. Держите его выключенным, если у вас нет узкой потребности в сортировке, и ротируйте любые учётные данные, которые были пойманы — заблокированный запрос означает, что секрет был раскрыт в промпте, а не что он безопасен. См. Ленту Matches и Логирование и приватность.

8. Куда двигаться дальше

Regex-детекторы

Создайте собственные паттерны учётных данных правилами regex RE2.

Действия

Выбирайте block, mask, flag, annotate или spotlight на правило — и block, mask, flag или annotate на сущность.

PII Shield

Маскируйте emails, SSN и карты в типизированные теги до того, как модель их увидит.

Настройка ложных срабатываний

Помечайте ложные срабатывания и ужесточайте детекторы из ленты Matches.
Secrets Blocker держит учётные данные вне содержимого, которое вы отправляете. Чтобы остановить агента от утечки секрета через вызов инструмента — эксфильтрации на контролируемый злоумышленником хост — используйте Firewall и прочтите угрозу эксфильтрации данных и угрозу утечки секретов. Для полного движка guardrail см. справочник Guardrails.