API-ключ маркетплейса — это не «пароль от аналитики», а полноценный доступ к данным вашего кабинета, а иногда и к управлению ценами, поставками и рекламой. Выдать его на пять минут просто, а вот разобраться потом, кто и чем пользуется, — уже нет. Разбираем рабочую дисциплину: какие права включать, сколько ключей заводить, когда их менять и как быстро понять, что ключ перестал работать.
Минимальные права — базовое правило
И на Wildberries, и на Ozon при выпуске токена вы выбираете, какие категории данных он открывает. Соблазн понятен: отметить всё, чтобы «точно заработало». Но у ключа с полными правами и цена ошибки полная — если он утечёт или окажется в скомпрометированном сервисе, злоумышленник сможет не только прочитать вашу выручку, но и изменить цены, снять товар с продажи или остановить рекламу.
Правильный порядок обратный: сначала понять, что именно сервису нужно, потом отметить только эти категории. Аналитике прибыли достаточно статистики и финансов. Сервису SEO — контента. Репрайсеру — цен. Если сомневаетесь, включайте меньше: не хватит прав — сервис вернёт понятную ошибку, и вы добавите нужную категорию за минуту.
- Аналитика продаж и прибыли — статистика, финансовые отчёты, товары. Только чтение.
- Управление ценами — отдельная категория цен и скидок, здесь уже нужна запись.
- Работа с карточками — контент; сервис сможет менять описания и характеристики.
- Реклама — доступ к кампаниям и ставкам; ошибка тут стоит бюджета.
Read-only там, где хватает чтения
Разделение на чтение и запись — самая дешёвая защита из существующих. Сервис аналитики по определению ничего не меняет в кабинете: он забирает продажи, остатки, удержания и считает по ним прибыль. Значит, ключ для него должен быть только на чтение — и тогда любой сценарий утечки ограничивается неприятной, но не разрушительной потерей конфиденциальности цифр.
Отдельный ключ на каждый сервис
Один ключ «на всё» кажется удобным ровно до первого инцидента. Когда сервисов три, а токен один, вы не можете отключить один сервис, не сломав два остальных: отзыв ключа мгновенно вырубает все интеграции разом. И понять, чьими запросами упёрлись в лимит API, тоже нельзя — все ходят под одним именем.
Отдельный ключ на интеграцию решает обе задачи. Заводите его с понятным названием — «аналитика», «репрайсер», «фулфилмент» — и ведите короткий список: какой ключ, какому сервису выдан, когда, с какими правами. Список из пяти строк в заметках экономит часы разбирательств через полгода.
Ротация: увольнение сотрудника, подрядчик, подозрение
Ключ переживает человека, который его выпустил. Менеджер, который вёл кабинет, уходит — а токен, скопированный им в личный ноутбук или в переписку с подрядчиком, продолжает работать. Формально доступ к кабинету вы закрыли, фактически данные продолжают уходить.
- Сотрудник или подрядчик, имевший доступ к ключам, перестал с вами работать — перевыпустите все ключи, к которым он имел отношение.
- Ключ засветился в чате, письме, скриншоте или задаче в трекере — считайте его скомпрометированным и меняйте.
- Вы отключили сервис — отзовите его ключ сразу, а не «когда-нибудь потом».
- Раз в полгода-год пройдитесь по списку ключей и удалите те, которыми уже никто не пользуется.
Порядок ротации всегда один: сначала выпускаете новый ключ, прописываете его в сервисе, убеждаетесь, что данные пошли, и только потом отзываете старый. Обратный порядок гарантирует несколько часов простоя сбора данных и дыру в истории.
Признаки протухшего ключа
Ключ редко «ломается» громко. Чаще это выглядит так: цифры на дашборде замерли, но всё остальное на месте — сервис работает, страницы открываются, вчерашние данные видны. Именно поэтому важно знать симптомы.
401 Unauthorized → ключ недействителен: истёк, отозван или перевыпущен 403 Forbidden → ключ живой, но у него нет нужной категории прав данные стоят N дней → сбор остановился; смотрите дату последнего успешного обновления
401 и 403 — это две разные болезни с разным лечением. При 401 ключ нужно выпустить заново и обновить в сервисе. При 403 перевыпуск не поможет: у токена просто не отмечена нужная категория — её надо добавить. Третий симптом самый коварный: сервис молча перестал получать новые данные, а последние загруженные продолжает показывать. Ориентируйтесь не на «страница открылась», а на дату самой свежей строки в данных.
Здоровый доступ проверяется не тем, что сервис открывается, а тем, что в нём есть сегодняшний день.
Чек-лист безопасной выдачи
- Выданы только те категории, без которых сервис не работает.
- Для аналитики — доступ на чтение, без прав на изменение цен и рекламы.
- У каждого сервиса свой именованный ключ, ведётся список выданных токенов.
- Ключ не пересылался в открытом виде и не хранится в общих документах.
- Есть привычка перевыпускать ключи при смене людей и при любом подозрении.
- Кто-то регулярно смотрит, до какой даты доведены данные, — это и есть индикатор живого ключа.