---
title: Безопасность ключа Claude API: хранение и ротация
description: "Безопасность ключа Claude API: правила хранения, общий лимит расходов, правильный порядок ротации и первые десять минут после утечки."
url: https://apitoken.sale/ru/docs/learn/claude-api-key-security
language: ru
---

# Защитите свой ключ Claude API

Безопасность ключа Claude API — это в основном скучная дисциплина: держите ключ вне системы контроля версий, ограничьте, сколько он может потратить, и отрепетируйте отзыв до того, как он понадобится. Разбираем конкретные настройки apiToken.sale — лимит расходов за всё время, дату истечения, именованные ключи под каждый инструмент — плюс схему хранения и план действий при утечке, который можно просто скопировать.

## Что на самом деле может украденный ключ

Ваш ключ apiToken.sale (выглядит как sk-pool-•••) — это bearer-креденшел: любой, кто его предъявит, может запускать запросы к Claude, GPT, Gemini и Kimi за счёт вашего предоплаченного баланса. Второго фактора при запросе нет — владение ключом и есть доступ. Поэтому задача не в том, чтобы сделать утечки невозможными, а в том, чтобы сделать их дешёвыми, заметными и обратимыми.

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

## Три настройки, которые нужно задать до первого запроса

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

| Настройка | Что она делает | Когда использовать |
| --- | --- | --- |
| Лимит расходов за всё время | Жёстко останавливает ключ, как только суммарные траты достигают заданной суммы, независимо от того, кто им пользуется | Каждый ключ, всегда — задайте сумму, которую проект вообще может стоить |
| Дневной period spend cap | Останавливает ключ, когда списания за текущий UTC-день достигают cap | Автономные агенты и CI, которые должны снова заработать завтра |
| Месячный period spend cap | Останавливает ключ, когда списания за текущий UTC-месяц достигают cap | Месячный бюджет на один клиентский ключ |
| Model allowlist | Отклоняет любую модель каталога, которой нет в списке | Ключ только для Haiku или Luna, который не должен вызывать Opus или Sol |
| Дата истечения | Автоматически отключает ключ в выбранную вами дату | Подрядчики, триалы, демо — любой временный доступ |
| Говорящее имя ключа | Через месяцы подскажет, какому инструменту и окружению служит ключ | Каждый ключ — скажете себе спасибо при отзыве в два часа ночи |

Выпускайте отдельный ключ на каждый инструмент и окружение вместо одного общего. Отзыв утёкшего ключа Cursor не должен ронять продакшн-бэкенд, а дашборд, полный ключей с именами prod-backend, cursor-laptop и ci-staging, с первого взгляда показывает радиус поражения.

[Не знаете, какой лимит задать? Сначала прикиньте стоимость нагрузки в калькуляторе стоимости Claude API.](/tools/claude-api-cost-calculator)

## Правила хранения, которые выдерживают встречу с реальностью

Одно правило покрывает почти всё: ключ живёт в переменной окружения или менеджере секретов, никогда — в исходном коде. На практике это .env-файл, добавленный в .gitignore до первого коммита, или менеджер вроде 1Password CLI, Doppler или AWS Secrets Manager, подставляющий переменную при запуске.

```
# .env — commit .env.example without values, never this file
ANTHROPIC_BASE_URL=https://router.apitoken.sale
ANTHROPIC_API_KEY=sk-pool-•••

# .gitignore — add this before the first commit, not after
.env
```

- История git — удаление файла следующим коммитом ключ не убирает; считайте его скомпрометированным и ротируйте.
- Клиентский JavaScript — всё, что попадает в бандл браузерного приложения, публично по определению; вызывайте API со своего бэкенда.
- Логи CI — вывод переменных окружения в шаге пайплайна печатает ключ в логи сборки; маскируйте секреты и никогда их не выводите.
- История shell — сырая команда curl -H "x-api-key: sk-pool-…" сохраняет ключ в файле истории; сначала экспортируйте его в переменную.
- Чаты и тикеты — вставленный в Slack, Telegram или баг-трекер ключ остаётся там навсегда и находится поиском.

> Скриншоты и демонстрации экрана тоже считаются. Если ключ попал в запись звонка или на расшаренный скриншот — ротируйте его: десять минут стоят дешевле альтернативы.

## Подключение к инструментам без хардкода

Все основные клиенты читают учётные данные из окружения, так что в коде ничего хранить не нужно:

```
# Anthropic SDK and Claude Code
export ANTHROPIC_BASE_URL=https://router.apitoken.sale
export ANTHROPIC_API_KEY=sk-pool-•••

# OpenAI-compatible clients (GPT models, and Claude via the same lane)
export OPENAI_BASE_URL=https://router.apitoken.sale/v1
export OPENAI_API_KEY=sk-pool-•••
```

SDK Anthropic и OpenAI подхватывают эти переменные автоматически — если вы передаёте ключ строковым литералом в конструктор, это тот самый запашок, который надо устранить. На серверах подставляйте переменную из хранилища секретов вашей платформы (настройки env у хостинга, Docker secrets, EnvironmentFile в systemd), а не запекайте её в образ или конфиг.

## Ротация в четыре шага

Ротация обходится дёшево, если вы один раз её отрепетировали. Такой порядок держит все клиенты авторизованными на всём пути:

1. Создайте заменяющий ключ в дашборде. Задайте тот же лимит расходов за всё время, что и у старого, дату истечения, если доступ временный, и имя с датой, например prod-backend-2026-08.
2. Обновите клиент: поменяйте значение переменной окружения или секрета, затем перезапустите или передеплойте, чтобы процесс действительно перечитал её.
3. Следите за использованием в дашборде, пока запросы не пойдут по новому ключу, а старый не затихнет.
4. Отзовите старый ключ. Только теперь — отозвать его первым шагом значит своими руками устроить избежимый простой с 401.

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

## Первые десять минут после утечки

1. Немедленно отзовите раскрытый ключ в дашборде. Это решает всё: новые запросы прекращаются мгновенно, а лимит расходов за всё время ограничивает то, что успело произойти до этого.
2. Откройте статистику использования и поищите траты или модели, которых вы не узнаёте, — так вы поймёте, когда ключом начали пользоваться.
3. Выпустите замену и обновите клиенты в порядке ротации, описанном выше.
4. Устраните источник: вычистите ключ из истории git, отредактируйте логи CI и ротируйте все остальные секреты, которые жили в том же файле или сообщении.

> Если ключ хоть ненадолго попал в публичный репозиторий на GitHub, считайте, что его уже собрали, — автоматические сканеры подбирают новые коммиты за считаные минуты. «Я быстро удалил» — не защита; защита — отзыв ключа.

## Частые вопросы

### Что будет, если мой ключ Claude API украдут?

Тот, кто им завладел, сможет тратить ваш предоплаченный баланс на модели Claude, GPT, Gemini и Kimi, пока вы не отзовёте ключ или он не упрётся в лимит расходов за всё время. Сначала отзовите ключ в дашборде, разбирательство — потом.

### Лимит расходов — за день, за месяц или за всё время?

Все три. Общий лимит расходов ограничивает сумму за всё время жизни ключа. Необязательные period spend cap сбрасываются с UTC-днём или UTC-месяцем. Можно задать model allowlist. Предоплаченный баланс по-прежнему ограничивает весь аккаунт, а дата истечения по-прежнему завершает временный доступ.

### Стоит ли использовать один API-ключ для всех инструментов?

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

### Как ротировать ключ Claude API, не сломав приложение?

Сначала создайте заменяющий ключ, обновите клиент и убедитесь по дашборду, что трафик пошёл по новому ключу, и только потом отзовите старый. Отзыв до обновления клиентов просто превращает ротацию в простой.

### Я закоммитил свой API-ключ на GitHub. Достаточно ли удалить файл?

Нет — ключ остаётся в истории git, а публичные репозитории сканируются за считаные минуты. Отзовите и ротируйте ключ, затем вычистите историю; одно удаление не защищает вообще ничего.

---
Get a key: https://apitoken.sale/register
More guides: https://apitoken.sale/ru/docs/learn
