Pular para conteúdo

Atualizando o controlador NGINX Ingress com módulos Wallarm integrados

Estas instruções descrevem os passos para atualizar o controlador Ingress baseado em Wallarm NGINX que foi implantado, da versão 4.x para a nova versão com o nó Wallarm 4.8.

Para atualizar o nó no fim da vida útil (3.6 ou inferior), por favor, use as instruções diferentes.

Requisitos

  • Versão da plataforma Kubernetes 1.24-1.27

  • Gerenciador de pacotes Helm

  • Compatibilidade dos seus serviços com o Controlador Ingress NGINX da comunidade versão 1.9.5

  • Acesso à conta com a função de Administrador e autenticação de dois fatores desativada no Console Wallarm para a Nuvem US ou Nuvem EU

  • Acesso a https://us1.api.wallarm.com para trabalhar com a Nuvem Wallarm US ou a https://api.wallarm.com para trabalhar com a Nuvem Wallarm EU

  • Acesso a https://charts.wallarm.com para adicionar os gráficos Helm da Wallarm. Certifique-se de que o acesso não está bloqueado por um firewall

  • Acesso aos repositórios Wallarm no Docker Hub https://hub.docker.com/r/wallarm. Certifique-se de que o acesso não está bloqueado por um firewall

  • Access to the IP addresses below for downloading updates to attack detection rules, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers

    34.96.64.17
    34.110.183.149
    35.235.66.155
    34.102.90.100
    34.94.156.115
    35.235.115.105
    
    34.160.38.183
    34.144.227.90
    34.90.110.226
    

Passo 1: Atualize o repositório do chart Helm Wallarm

helm repo update wallarm

Passo 2: Verifique todas as mudanças vindo no K8s manifest

Para evitar mudanças inesperadas no comportamento do controlador Ingress, verifique todas as mudanças vindo no K8s manifest usando o Plugin Helm Diff. Este plugin mostra as diferenças entre os K8s manifestos da versão do controlador Ingress implantada e a nova.

Para instalar e rodar o plugin:

  1. Instale o plugin:

    helm plugin install https://github.com/databus23/helm-diff
    
  2. Rode o plugin:

    helm diff upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 4.8.2 -f <PATH_TO_VALUES>
    
    • <RELEASE_NAME>: o nome da release do Helm com o gráfico do controlador Ingress
    • <NAMESPACE>: o espaço de nomes no qual o controlador Ingress foi implantado
    • <PATH_TO_VALUES>: o caminho para o arquivo values.yaml que define as configurações do controlador Ingress 4.8 - você pode usar o que foi criado para executar a versão anterior do controlador Ingress
  3. Certifique-se de que nenhuma mudança pode afetar a estabilidade dos serviços em execução e examine cuidadosamente os erros do stdout.

    Se stdout estiver vazio, certifique-se de que o arquivo values.yaml é válido.

Passo 3: Atualize o controlador Ingress

Atualize o controlador NGINX Ingress implantado:

helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-ingress --version 4.8.2 -f <PATH_TO_VALUES>
  • <RELEASE_NAME>: o nome da release do Helm com o gráfico do controlador Ingress

  • <NAMESPACE>: o espaço de nomes no qual o controlador Ingress foi implantado

  • <PATH_TO_VALUES>: o caminho para o arquivo values.yaml que define as configurações do controlador Ingress 4.8 - você pode usar o que foi criado para executar a versão anterior do controlador Ingress

Passo 4: Teste o controlador Ingress atualizado

  1. Certifique-se de que a versão do gráfico do Helm foi atualizada:

    helm list -n <NAMESPACE>
    

    Onde <NAMESPACE> é o espaço de nomes no qual o gráfico do Helm com o controlador Ingress foi implantado.

    A versão do gráfico deve corresponder ao wallarm-ingress-4.8.2.

  2. Obtenha a lista de pods:

    kubectl get pods -n <NAMESPACE> -l app.kubernetes.io/name=wallarm-ingress
    

    Cada status do pod deve ser STATUS: Running ou READY: N/N. Por exemplo:

    NAME                                                              READY     STATUS    RESTARTS   AGE
    ingress-controller-nginx-ingress-controller-675c68d46d-cfck8      3/3       Running   0          5m
    ingress-controller-nginx-ingress-controller-wallarm-tarantljj8g   4/4       Running   0          5m
    
  3. Envie a requisição com o teste de ataque Path Traversal para o endereço do controlador Ingress Wallarm:

    curl http://<INGRESS_CONTROLLER_IP>/etc/passwd
    

    Verifique se a solução da versão mais recente processa a solicitação maliciosa da mesma forma que na versão anterior.

Passo 5: Atualize a página de bloqueio da Wallarm

Se a página &/usr/share/nginx/html/wallarm_blocked.html configurada via anotações Ingress está sendo retornada para solicitações bloqueadas, ajuste sua configuração para as mudanças lançadas.

Nas novas versões do nó, a página de bloqueio da Wallarm tem a IU atualizada sem logo e sem e-mail de suporte especificado por padrão.