Деплой и настройка ноды с мультиарендной опцией¶
Нода Вебмониторэкс с мультиарендной опцией — нода, которая защищает инфраструктуры нескольких независимых организаций или несколько изолированных сред одновременно.
Способы установки ноды с мультиарендной опцией¶
В зависимости от вашей инфраструктуры и задачи, можно установить ноду одним из следующих способов:
-
Установить одну ноду для фильтрации трафика всех клиентов или изолированных сред. Трафик будет обрабатываться следующим образом:
-
Одна нода обрабатывает трафик нескольких тенантов (Tenant 1, Tenant 2).
Термин "партнерский клиент"
В предыдущей версии документации для обозначения "тенанта" использовался термин "партнерский клиент". В дальнейшем будет использоваться термин "тенант".
-
Нода определяет тенанта, которому поступает трафик, по UUID тенанта (
wallarm_partner_client_uuid
). - Для доменов
https://tenant1.com
иhttps://tenant2.com
настроена A‑запись DNS с IP‑адресом партнера или клиента с изолированными средами:225.130.128.241
. Данная настройка приведена в качестве примера, на стороне партнера и тенанта может использоваться другая настройка. - На стороне партнера настроено проксирование легитимных запросов на адреса тенантов Tenant 1 и Tenant 2:
http://upstream1:8080
иhttp://upstream2:8080
соответственно. Данная настройка приведена в качестве примера, на стороне партнера и тенанта может использоваться другая настройка.
-
-
Установить несколько нод, чтобы каждая фильтровала трафик отдельного тенанта.
Трафик будет обрабатывается аналогичным образом, как приведено на схеме выше, но на нескольких серверах партнера или тенанта.
Особенности ноды с мультиарендной опцией¶
-
Устанавливается на те же платформы и по тем же инструкциям, что и обычная нода.
-
Может быть установлена на уровне технического тенанта или на уровне тенанта. Если необходимо предоставить тенанту доступ к Консоли управления, нода должна быть установлена на уровне соответствующего тенанта.
-
Настраивается по инструкциям для обычной ноды.
-
Директива
wallarm_partner_client_uuid
используется для идентификации тенантов. -
Директива
wallarm_application
используется для идентификации приложений тенанта. Приложений может быть несколько.
Требования к установке¶
-
Выполнение установки от пользователя с ролью Глобальный администратор, добавленного в аккаунт технического тенанта
Рекомендации к установке ноды с мультиарендной опцией¶
-
Если тенант должен иметь доступ к Консоли управления, создайте ноду в аккаунте тенанта
-
Выполняйте настройку ноды в конфигурационном файле, который описывает обработку трафика тенанта
Процедура установки ноды с мультиарендной опцией¶
-
Перейдите в Консоль управления Вебмониторэкс → Ноды.
-
Нажмите кнопку Создать ноду.
-
Выберите опцию Мультиарендная нода.
-
Введите имя ноды и нажмите кнопку Создать.
-
Скопируйте сгенерированный токен.
-
В зависимости от формы установки ноды, выполните шаги из соответствующей инструкции.
-
Разделите трафик между тенантами, используя их уникальные идентификаторы.
Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы
wallarm_partner_client_uuid
. Смотрите пример ниже.Используйте аннотацию Ingress
nginx.ingress.kubernetes.io/wallarm-partner-client-uuid
, чтобы задать UUID тенанта для каждого ресурса Ingress. Один ресурс связывается с одним тенантом:kubectl annotate --overwrite ingress YOUR_INGRESS_NAME nginx.ingress.kubernetes.io/wallarm-partner-client-uuid=VALUE
- Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы
wallarm_partner_client_uuid
. Смотрите пример ниже. - Запустите контейнер с примонтированным конфигурационным файлом.
- Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы
wallarm_partner_client_uuid
. Смотрите пример ниже. - Примонтируйте конфигурационный файл NGINX к Sidecar-контейнеру Вебмониторэкс.
Пример конфигурационного файла, если одна нода обрабатывает трафик двух клиентов:
server { listen 80; server_name tenant1.com; wallarm_mode block; wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111; location / { proxy_pass http://upstream1:8080; } } server { listen 80; server_name tenant2.com; wallarm_mode monitoring; wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222; location / { proxy_pass http://upstream2:8080; } }
- На стороне тенантов настроены A‑записи DNS с IP‑адресом партнера
- На стороне партнера настроено проксирование запросов к доменам тенантов на адреса, которые передали тенанты (
http://upstream1:8080
для тенанта с UUID11111111-1111-1111-1111-111111111111
иhttp://upstream2:8080
для тенанта с UUID22222222-2222-2222-2222-222222222222
) - Все входящие запросы поступают на IP‑адрес партнера для фильтрации, легитимные запросы отправляются на
http://upstream1:8080
для тенанта с UUID11111111-1111-1111-1111-111111111111
иhttp://upstream2:8080
для тенанта с UUID22222222-2222-2222-2222-222222222222
.
- Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы
-
Если необходимо, задайте ID приложений тенантов с помощью директивы
wallarm_application
.Пример:
server { listen 80; server_name tenant1.com; wallarm_mode block; wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111; location / { proxy_pass http://upstream1:8080; } location /login { wallarm_application 21; ... } location /users { wallarm_application 22; ... } }
Два приложения принадлежат тенанту
11111111-1111-1111-1111-111111111111
:tenant1.com/login
– приложение21
tenant1.com/users
– приложение22
Настройка партнерской ноды¶
Чтобы кастомизировать настройки ноды, используйте доступные директивы.
Частые настройки:
-
Использование балансировщика или прокси‑сервера перед нодой Вебмониторэкс
-
Ограничение времени обработки единичного запроса в директиве
wallarm_process_time_limit
-
Ограничение времени ожидания ответа сервера в директиве NGINX
proxy_read_timeout
-
Ограничение максимального размера запроса в директиве NGINX
client_max_body_size