Безопасность ключей
Как хранить ключи и ограничить ущерб от утечки.
Ключ API — это доступ к аккаунту, как пароль. С ним можно заводить и удалять каналы, запускать зрителей, писать в чат от имени аккаунтов чат-панели и, если у ключа есть право billing, тратить деньги со счёта.
Хранение
- Храните ключ только на сервере: в хранилище секретов или в переменной окружения. Не записывайте его в код, который попадает в браузер, мобильное приложение или открытый репозиторий: там его прочтёт любой.
- Не отправляйте запросы из браузера. API не поддерживает CORS: ключ в коде веб-страницы доступен каждому посетителю.
- Не передавайте ключ в строке запроса. Такой запрос отклоняется, а ключ следует считать раскрытым.
- Отправляйте запросы только по HTTPS. Запрос по HTTP отклоняется, но ключ к этому моменту уже передан открытым текстом: считайте его раскрытым.
- Не пишите ключ в журналы. Если журнал запросов сохраняет заголовки, исключите из него
Authorization.
Ключ начинается с sky_. По этому префиксу системы поиска утечек, например GitHub secret scanning и gitleaks, находят ключ в коде.
Ключ показывается один раз, при выпуске. Мы храним только его отпечаток, и восстановить ключ не может никто, в том числе поддержка. Потерянный ключ отзовите и выпустите новый.
Ограничения ключа
У каждого ключа есть ограничения, которые снижают ущерб от утечки. Задавайте их при выпуске:
| Ограничение | Что даёт |
|---|---|
| Права | Ключ меняет только то, что ему разрешено. Чтение доступно любому ключу. См. Права ключей |
| Срок | 30, 90, 180, 365 дней или бессрочно. Когда до конца срока остаётся не больше 7 суток, приходит уведомление |
| Разрешённые адреса | До 20 адресов или подсетей. Запросы с других адресов отклоняются |
| Суточный потолок трат | Обязателен для ключа с правом billing. Больше этой суммы ключ не потратит за сутки |
Расширение ограничений — новые права, адреса, больший потолок или срок — подтверждается кодом из письма. Сужение выполняется сразу.
Уведомления
О выпуске ключа, расширении его прав и отзыве приходит уведомление. Если вы получили уведомление о действии, которого не совершали, отзовите ключ, смените пароль аккаунта и напишите в поддержку.
Отзыв
Отозвать ключ можно в разделе «API» панели. Отзыв действует сразу и необратим: запросы с отозванным ключом отклоняются с ошибкой api_key_revoked. Ключ может отозвать и администратор сервиса; об этом тоже приходит уведомление.
Сотрудник поддержки, работающий в вашей панели по вашему запросу, не может выпускать, менять и отзывать ключи.