Разрешенный список IP-адресов¶
ПроAPI Защита обеспечивает безопасный доступ к вашему бэкенду, разрешая запросы исключительно с предопределенных IP-адресов. Этот документ предоставляет пошаговое руководство по реализации списка разрешенных IP-адресов, применимое для REST API как в режимах [PROXY
] (../docker-container.md), так и [API
] (../api-mode.md) или для [GraphQL API] (../docker-container.md).
Эта функция гарантирует, что только запросы с IP-адресов, включенных в список разрешенных, проверяются на соответствие спецификации OpenAPI 3.0. Запросы с IP-адресов, не включенных в список разрешенных, полностью отклоняются, возвращая код ошибки 403, независимо от их соответствия спецификации OpenAPI.
Для включения в список IP-адресов:
-
Подготовьте файл со списком IP-адресов, которые вы хотите включить в разрешенный список. Формат файла гибкий (например,
.txt
или.db
), с каждым IP-адресом в отдельной строке. Например:1.1.1.1 2001:0db8:11a3:09d7:1f34:8a2e:07a0:7655 10.1.2.0/24
Запросы из 1.1.1.1, 2001: 0db8:11a3: 09d7:1f34:8a2e: 07a0:7655 и 10.1.2.1-10.1.2.254 IP-адресов будут разрешены.
Проверка списка разрешений и поддерживаемые форматы данных
ПроAPI Защита проверяет содержимое файла allowlist во время обработки списка.
Он поддерживает как IPv4, так и IPv6 адреса, а также подсети.
-
Смонтируйте файл allowlist в контейнер Docker ПроAPI Защита, используя
-v
параметр Docker. -
Запустите контейнер ПроAPI Защита с помощью переменной окружения
APIFW_ALLOW_IP_FILE
, указывающей путь к подключенному файлу списка разрешений внутри контейнера. -
(Необязательно) Передайте контейнеру переменную среды
APIFW_ALLOW_IP_HEADER_NAME
с именем заголовка запроса, который при необходимости содержит исходный IP-адрес. По умолчанию используетсяconnection.remoteAddress
(значение переменной пустое).
Пример команды docker run
:
docker run --rm -it --network api-firewall-network --network-alias api-firewall \
-v <HOST_PATH_TO_SPEC>:<CONTAINER_PATH_TO_SPEC> -e APIFW_API_SPECS=<PATH_TO_MOUNTED_SPEC> \
-v ./ip-allowlist.txt:/opt/ip-allowlist.txt \
-e APIFW_URL=<API_FIREWALL_URL> -e APIFW_SERVER_URL=<PROTECTED_APP_URL> \
-e APIFW_REQUEST_VALIDATION=<REQUEST_VALIDATION_MODE> -e APIFW_RESPONSE_VALIDATION=<RESPONSE_VALIDATION_MODE> \
-e APIFW_ALLOW_IP_FILE=/opt/ip-allowlist.txt -e APIFW_ALLOW_IP_HEADER_NAME="X-Real-IP" \
-p 8088:8088 wallarm/api-firewall:v0.7.3
Переменная среды | Описание |
---|---|
APIFW_ALLOW_IP_FILE | Указывает путь контейнера к подключенному файлу с разрешенными IP-адресами (например, /opt/ip-allowlist.txt ). |
APIFW_ALLOW_IP_HEADER_NAME | Определяет имя заголовка запроса, которое содержит исходный IP-адрес. Значение по умолчанию - "" , которое указывает на использование connection.remoteAddress . |