Перейти к содержанию

Деплой и настройка ноды с мультиарендной опцией

Нода Вебмониторэкс с мультиарендной опцией — нода, которая защищает инфраструктуры нескольких независимых организаций или несколько изолированных сред одновременно.

Способы установки ноды с мультиарендной опцией

В зависимости от вашей инфраструктуры и задачи, можно установить ноду одним из следующих способов:

  • Установить одну ноду для фильтрации трафика всех клиентов или изолированных сред. Трафик будет обрабатываться следующим образом:

    Трафик на партнерской схеме

    • Одна нода обрабатывает трафик нескольких тенантов (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 используется для идентификации приложений тенанта. Приложений может быть несколько.

Требования к установке

Рекомендации к установке ноды с мультиарендной опцией

  • Если тенант должен иметь доступ к Консоли управления, создайте ноду в аккаунте тенанта

  • Выполняйте настройку ноды в конфигурационном файле, который описывает обработку трафика тенанта

Процедура установки ноды с мультиарендной опцией

  1. Перейдите в Консоль управления Вебмониторэкс → Ноды.

  2. Нажмите кнопку Создать ноду.

  3. Выберите опцию Мультиарендная нода.

    Multi-tenant node creation

  4. Введите имя ноды и нажмите кнопку Создать.

  5. Скопируйте сгенерированный токен.

  6. В зависимости от формы установки ноды, выполните шаги из соответствующей инструкции.

  7. Разделите трафик между тенантами, используя их уникальные идентификаторы.

    Откройте конфигурационный файл 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
    
    1. Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы wallarm_partner_client_uuid. Смотрите пример ниже.
    2. Запустите контейнер с примонтированным конфигурационным файлом.
    1. Откройте конфигурационный файл NGINX и разделите трафик между тенантами с помощью директивы wallarm_partner_client_uuid. Смотрите пример ниже.
    2. Примонтируйте конфигурационный файл 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 для тенанта с UUID 11111111-1111-1111-1111-111111111111 и http://upstream2:8080 для тенанта с UUID 22222222-2222-2222-2222-222222222222)
    • Все входящие запросы поступают на IP‑адрес партнера для фильтрации, легитимные запросы отправляются на http://upstream1:8080 для тенанта с UUID 11111111-1111-1111-1111-111111111111 и http://upstream2:8080 для тенанта с UUID 22222222-2222-2222-2222-222222222222.
  8. Если необходимо, задайте 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

Настройка партнерской ноды

Чтобы кастомизировать настройки ноды, используйте доступные директивы.

Частые настройки: