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

Обновление Ingress‑контроллера NGINX с сервисами Валарм WAF

Инструкция описывает способ обновления развернутого Ingress‑контроллера Валарм до новой версии с WAF‑нодой 3.0.

  • Для обновления необходимо склонировать новую версию Helm‑чарта и применить обновления к установленной версии.

  • Настройки, примененные к установленному Ingress‑контроллеру, и аннотации Ingress сохраняются после обновления.

Обновление разных типов WAF‑ноды и критические изменения

  • Версия 3.2 несовместима с версиями 2.18 и ниже и включает в себя критические изменения. Перед обновлением мы рекомендуем ознакомиться с набором изменений и учесть изменение конфигурации при планировании обновления.
  • Мы рекомендуем обновить как клиентские, так и партнерские WAF‑ноды версии 3.0 и ниже до версии 3.2. В релизе 3.2 доступна настройка серых списков IP‑адресов и другие новые возможности продукта. Более ранние версии скоро перестанут поддерживаться.

Обновление

  1. Если вы обновляете WAF‑ноду версии 2.18 и ниже до версии 3.2, сообщите технической поддержке Валарм об обновлении и оставьте запрос на включение новой логики списков IP-адресов для вашего аккаунта. Когда новая логика будет включена, убедитесь, что в Консоли управления Валарм доступна секция Списки IP-адресов.

  2. Убедитесь, что ожидаемое поведение следующих настроек соответствует изменениям в логике работы режимов off и monitoring:

    Если ожидаемое поведение не соответствует изменениям в логике работы режимов off и monitoring, адаптируйте настройку режимов фильтрации под изменения по инструкции.

  3. Склонируйте новую версию Helm‑чарта из репозитория Валарм:

    git clone https://github.com/wallarm/ingress-chart --branch 3.2.0-1 --single-branch
    
  4. Обновите предыдущий Helm‑чарт:

    helm upgrade --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN> <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
    
    helm upgrade --set controller.wallarm.enabled=true,controller.wallarm.token=<YOUR_CLOUD_NODE_TOKEN>,controller.wallarm.apiHost=api.wallarm.ru <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
    
    • <YOUR_CLOUD_NODE_TOKEN> — токен облачной WAF‑ноды, созданной при установке Ingress‑контроллера Валарм
    • <INGRESS_CONTROLLER_NAME> — название развернутого Ingress‑контроллера Валарм
    • <KUBERNETES_NAMESPACE> — namespace вашего Ingress
  5. Перенесите настройки белых и черных списков с предыдущей версии WAF-ноды на новую, используя инструкцию.

Тестирование

  1. Убедитесь, что чарт обновлен:

    helm ls
    

    Версия чарта должна соответствовать wallarm-ingress-1.8.x.

  2. Получите список pod'ов, передав в <INGRESS_CONTROLLER_NAME> название Ingress‑контроллера Валарм:

    kubectl get pods -l release=<INGRESS_CONTROLLER_NAME>
    

    Все pod'ы должны быть в состоянии: STATUS: Running и READY: N/N. Например:

    NAME                                                              READY     STATUS    RESTARTS   AGE
    ingress-controller-nginx-ingress-controller-675c68d46d-cfck8      3/3       Running   0          5m
    ingress-controller-nginx-ingress-controller-wallarm-tarantljj8g   8/8       Running   0          5m
    ingress-controller-nginx-ingress-default-backend-584ffc6c7xj5xx   1/1       Running   0          5m
    
  3. Отправьте тестовый запрос с атаками SQLI и XSS на адрес Ingress‑контроллера Валарм:

    curl http://<INGRESS_CONTROLLER_IP>/?id='or+1=1--a-<script>prompt(1)</script>'
    

    Если WAF‑нода находится в статусе block, в ответ на запрос вернется код 403 Forbidden и атаки отобразятся в Консоли управления Валарм → секция События.

Настройка

Глобальные настройки Ingress‑контроллера Валарм и аннотации Ingress, примененные к предыдущей версии, сохранятся для новой версии. Список всех настроек и аннотаций доступен по ссылке.

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