API-ключ
Что такое API-ключ?
API-ключСтатическая секретная строка, выдаваемая сервисом для идентификации и аутентификации вызывающей стороны; обычно отправляется в заголовке или параметре каждого запроса к API.
API-ключи — это длинные случайно сгенерированные строки, идентифицирующие проект, сервис-аккаунт или разработчика перед backend-API. Их легко выпускать и использовать, но они дают слабые гарантии: они идентифицируют вызывающую сторону, а не пользователя, по умолчанию не имеют срока действия и предоставляют все привязанные к ним права. Поскольку это статические bearer-секреты, любой, кто получит строку, может выдавать себя за легитимную вызывающую сторону, пока ключ не будет отозван.
Главный сценарий компрометации — утечка через системы контроля версий. GitHub сообщил, что в 2024 году на его платформе было раскрыто более 39 миллионов секретов, а исследование GitGuardian State of Secrets Sprawl обнаружило ключи AWS IAM примерно в 8 % просканированных приватных репозиториев. Примером 2025 года стал публичный репозиторий «Private-CISA», где исследователь GitGuardian Guillaume Valadon обнаружил раскрытые учётные данные AWS GovCloud, пароли в открытом виде и SAML-сертификаты, связанные с государственными системами США. Ключи также утекают через мобильные приложения (декомпилированные APK), фронтенд-сборки JavaScript, логи CI и скриншоты.
Меры защиты: храните ключи в менеджере секретов, а не в коде, включайте сканирование секретов и push-защиту на стороне провайдера, ограничивайте каждый ключ минимальным набором эндпоинтов, ограничивайте по IP или HTTP-referer, задавайте срок действия и регулярно проводите ротацию, а при утечке немедленно отзывайте. Для авторизации конечных пользователей или критичных операций предпочтительны OAuth 2.0, mTLS или запросы с HMAC-подписью, которые привязывают учётные данные к пользователю, audience и короткому сроку жизни.
flowchart LR
A[Разработчик выпускает API-ключ] --> B[Ключ встроен в приложение/конфиг]
B --> C{Хранится безопасно?}
C -->|Менеджер секретов + сканирование| D[Вызывающая сторона -> запрос к API<br/>заголовок Authorization]
C -->|Закоммичен в репозиторий / APK / логи| E[Сканеры секретов и атакующие<br/>извлекают ключ]
E --> F[Имперсонация и злоупотребление<br/>пока не отозван]
D --> G[Scope + allowlist по IP + ротация<br/>ограничивают радиус поражения]● Примеры
- 01
Authorization: ApiKey sk_live_abc123...
- 02
API Stripe, Google Maps и Twilio, доступ к которым осуществляется по API-ключам на каждый проект.
● Частые вопросы
Что такое API-ключ?
Статическая секретная строка, выдаваемая сервисом для идентификации и аутентификации вызывающей стороны; обычно отправляется в заголовке или параметре каждого запроса к API. Относится к категории Идентификация и доступ в кибербезопасности.
Что означает API-ключ?
Статическая секретная строка, выдаваемая сервисом для идентификации и аутентификации вызывающей стороны; обычно отправляется в заголовке или параметре каждого запроса к API.
Как защититься от API-ключ?
Защита от API-ключ обычно сочетает технические меры и операционные практики, как описано в определении выше.