Как ограничить доступ к API через списки IP
Функциональность доступна не на всех проектах. Уточните возможность подключения у менеджера вашего проекта.
Ограничение доступа по IP к API — это второй фактор защиты API Mindbox в дополнение к секретному ключу. Даже если ключ окажется в чужих руках, запросы с неизвестных IP-адресов будут отклонены, а данные клиентов защищены.
Доступ к настройке
Для редактирования списка нужны пермиссии:
- «Просмотр интеграций»
- «Редактирование интеграций»
- «Управление списком разрешённых IP для API»
По умолчанию все эти пермиссии есть у групп безопасности «Владельцы» и «Инженер по безопасности». При необходимости их можно выдать другим сотрудникам.
В каких точках интеграции работает фильтр
- Веб-сайт
- iOS / Android приложение
- Другое
Почему функции нет в других точках интеграции
- Интеграция для вебхуков — отправляет только исходящие запросы из Mindbox во внешние сервисы (например, CRM). Подробнее о вебхуках в статье;
- Продуктовые фиды — не принимает входящие запросы, Mindbox сам получает фид по URL;
- Рекламные кабинеты — список IP зафиксирован адресами Albato;
Шаги настройки
-
Откройте раздел Интеграции и перейдите в точку интеграции:

-
В блоке «Настройки доступа по IP» введите адреса вашей инфраструктуры — каждый адрес с новой строки. Допустимый формат описан ниже.
-
При необходимости поставьте галочку «Проверять IP-адреса только в запросах с секретным ключом» - см. как работает опция.
-
Нажмите «Сохранить» в блоке, а затем «Сохранить» на странице интеграции.

Фильтр начнет отклонять запросы с неразрешенных IP через 5 минут после сохранения точки интеграции.
Точки интеграции с настроенным ограничением IP-адресов отображаются в списке с иконкой щита:

Формат списка IP-адресов
Поддерживается:
- Одиночные IPv4-адреса:
130.193.65.96; - Подсети в формате CIDR:
130.193.65.96/30; - Комментарии после
#в той же строке:130.193.65.96 # прод-балансировщик Москва; - До 100 строк в одной точке интеграции;
- Длина строки — не более 120 символов.
Не поддерживается:
- Диапазоны через дефис:
130.193.65.96 — 130.193.65.97; - Несколько записей в одной строке:
130.193.65.96/30, 130.193.65.92 # прод-балансировщик Москва; - Приватные (серые) адреса:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16— фильтр работает только с публичными IP; - Маска
/0(разрешает доступ с любого IP).
Опция «Проверять IP только в запросах с секретным ключом»
Галочка определяет, какие запросы попадают под фильтр:
|
Состояние |
Что фильтруется |
Когда выбрать |
|
Снята |
Все входящие запросы в точку интеграции, включая запросы без секретного ключа и события из JS-трекера |
Трафик через точку интеграции исходит только из вашей инфраструктуры. Не рекомендуется использовать для интеграций с типом Веб-сайт или iOS / Android приложение. Вызовы из них невозможно полностью проксировать. |
|
Поставлена (по умолчанию) |
Только запросы с основным секретным ключом. Запросы от конечных пользователей (например, события с JS-трекера) проходят без проверки IP-адреса |
Для большинства интеграций с типом Веб-сайт или iOS / Android приложение, где запросы приходят с IP покупателя, а не сервера (например, просмотры продуктов, изменение списков клиента и др.) |
Запросы с тестовым секретным ключом никогда не попадают под фильтр — это сделано, чтобы менеджеры проектов и поддержки могли отлаживать промоакции и интеграции.
Что происходит при блокировке запроса
Mindbox проверяет фактический IP-адрес сервера, с которого был отправлен запрос. Этот же IP отображается в заголовке X-Forwarded-For.
Отклоненный запрос возвращает статус 403 с ответом:
Incorrect IP address 1.2.3.4 for endpoint ’<system name>’
Где 1.2.3.4 — фактический IP отправителя, а <system name> — системное имя точки интеграции.
При большом количестве заблокированных запросов на проекте открываются проблемы.
История изменений
Все действия со списком IP (кто и когда вносил изменения) логируются в Журнал событий. Для их просмотра перейдите по ссылке «История изменений» или отфильтруйте записи журнала по типу события «Редактирование интеграции».
