Pular para conteúdo

Executando a Imagem Docker Baseada em Envoy

Essas instruções descrevem as etapas para executar a imagem Docker Wallarm baseada em Envoy 1.18.4. A imagem contém todos os sistemas necessários para a operação correta do nó Wallarm:

  • Serviços de proxy Envoy com o módulo Wallarm embutido

  • Módulos do Tarantool para pós-análise

  • Outros serviços e scripts

O módulo Wallarm é projetado como um filtro HTTP Envoy para proxying de solicitações.

Parâmetros de configuração suportados

Observe que a maioria das diretivas para a configuração do nó de filtragem baseado em NGINX não são suportadas para a configuração do nó de filtragem baseado em Envoy. Consequentemente, a configuração de limite de taxa não está disponível neste método de implantação.

Veja a lista de parâmetros disponíveis para a configuração do nó de filtragem baseada em Envoy →

Casos de uso

Entre todas as opções de implantação do Wallarm suportadas, a imagem Docker baseada em Envoy é recomendada para a implantação do Wallarm nestes casos de uso:

  • Se a sua organização utiliza infraestrutura baseada em Docker, a imagem Docker do Wallarm é a escolha ideal. Ela se integra sem esforços à sua configuração existente, seja você empregando uma arquitetura de microserviços rodando no AWS ECS, Alibaba ECS, ou outros serviços similares. Esta solução também se aplica àqueles que usam máquinas virtuais buscando um gerenciamento mais simplificado por meio de containers Docker.

  • Se você necessita de um controle refinado sobre cada container, a imagem Docker se destaca. Ela oferece um maior nível de isolamento de recursos do que o habitualmente possível com implantações baseadas em VM tradicionais.

Requisitos

  • Docker instalado no seu sistema de host

  • Acesso a https://hub.docker.com/r/wallarm/envoy para baixar a imagem Docker. Certifique-se de que o acesso não esteja bloqueado por um firewall

  • Acesso à conta com a função de Administrador no Console Wallarm na Nuvem dos EUA ou na Nuvem da UE

  • Acesso a https://us1.api.wallarm.com se estiver trabalhando com a Nuvem Wallarm dos EUA ou com https://api.wallarm.com se estiver trabalhando com a Nuvem Wallarm da UE. Certifique-se de que o acesso não esteja 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
    

Opções para executar o contêiner

Os parâmetros de configuração do nó de filtragem podem ser passados ​​para o comando docker run das seguintes maneiras:

  • Nas variáveis ​​de ambiente. Esta opção permite a configuração de apenas os parâmetros básicos do nó de filtragem, a maioria dos parâmetros não pode ser alterada através de variáveis ​​de ambiente.

  • No arquivo de configuração montado. Esta opção permite a configuração de todos os parâmetros do nó de filtragem.

execute o contêiner passando as variáveis ​​de ambiente

Para executar o contêiner:

  1. Obtenha o token Wallarm do tipo apropriado:

    1. Abra o Console Wallarm → ConfiguraçõesTokens de API no US Cloud ou EU Cloud.
    2. Encontre ou crie um token de API com a função Deploy.
    3. Copie este token.
    1. Abra o Console Wallarm → Nós no US Cloud ou EU Cloud.
    2. Faça uma das seguintes ações:
      • Crie o nó do tipo Nó Wallarm e copie o token gerado.
      • Use o grupo de nó existente - copie o token usando o menu do nó → Copiar token.
  2. Execute o contêiner com o nó:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e ENVOY_BACKEND='example.com' -e WALLARM_API_HOST='us1.api.wallarm.com' -p 80:80 wallarm/envoy:4.8.0-1
    
    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e ENVOY_BACKEND='example.com' -p 80:80 wallarm/envoy:4.8.0-1
    

Você pode passar as seguintes configurações básicas do nó de filtragem para o contêiner por meio da opção -e:

Variável de ambiente Descrição Necessário
WALLARM_API_TOKEN Token de nó ou API do Wallarm. Sim
ENVOY_BACKEND Domínio ou endereço IP do recurso a ser protegido com a solução Wallarm. Sim
WALLARM_API_HOST Servidor API Wallarm:
  • us1.api.wallarm.com para a Nuvem dos EUA
  • api.wallarm.com para a Nuvem da UE
Por padrão: api.wallarm.com.
Não
WALLARM_MODE Modo de nó:
  • block para bloquear solicitações maliciosas
  • safe_blocking para bloquear apenas aquelas solicitações maliciosas originadas de endereços IP cinza listados
  • monitoring para analisar, mas não bloquear solicitações
  • off para desativar a análise e o processamento de tráfego
Por padrão: monitoring.
Descrição detalhada dos modos de filtragem →
Não
WALLARM_LABELS

Disponível a partir do nó 4.6. Funciona apenas se WALLARM_API_TOKEN for definido como token de API com a função Deploy. Define o rótulo group para agrupamento de instâncias de nó, por exemplo:

WALLARM_LABELS="group=<GROUP>"

... colocará a instância de nó no grupo de instâncias<GROUP> (existente ou, se não existir, será criado).

Sim (para tokens de API)
TARANTOOL_MEMORY_GB Quantidade de memória alocada ao Tarantool. O valor pode ser um número inteiro ou um número decimal (um ponto . é um separador decimal). Por padrão: 0.2 gigabytes. Não

O comando faz o seguinte:

  • Cria o arquivo envoy.yaml com configuração mínima de Envoy no diretório do contêiner /etc/envoy.

  • Cria arquivos com credenciais do nó de filtragem para acessar a Wallarm Cloud no diretório do contêiner /etc/wallarm:

    • node.yaml com UUID do nó de filtragem e chave secreta
    • private.key com chave privada Wallarm
  • Protege o recurso http://ENVOY_BACKEND:80.

Execute o contêiner montando o envoy.yaml

Você pode montar o arquivo preparado envoy.yaml no contêiner Docker por meio da opção -v. O arquivo deve conter as seguintes configurações:

Para executar o contêiner:

  1. Obtenha o token Wallarm do tipo apropriado:

    1. Abra o Console Wallarm → ConfiguraçõesTokens de API no US Cloud ou EU Cloud.
    2. Encontre ou crie um token de API com a função Deploy.
    3. Copie este token.
    1. Abra o Console Wallarm → Nós no US Cloud ou EU Cloud.
    2. Faça uma das seguintes ações:
      • Crie o nó do tipo Nó Wallarm e copie o token gerado.
      • Use o grupo de nó existente - copie o token usando o menu do nó → Copiar token.
  2. Execute o contêiner com o nó:

    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -e WALLARM_API_HOST='us1.api.wallarm.com' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.8.0-1
    
    docker run -d -e WALLARM_API_TOKEN='XXXXXXX' -v /configs/envoy.yaml:/etc/envoy/envoy.yaml -p 80:80 wallarm/envoy:4.8.0-1
    
    • A opção -e passa as seguintes variáveis ​​de ambiente obrigatórias para o contêiner:
    Variável de ambiente Descrição Necessário
    WALLARM_API_TOKEN Token de nó do Wallarm.

    Usando um token para várias instalações

    Você pode usar um token em várias instalações, independentemente do plataforma selecionada. Ele permite o agrupamento lógico de instâncias de nós na interface de usuário do Console Wallarm. Exemplo: você implanta vários nós Wallarm em um ambiente de desenvolvimento, cada nó está em sua própria máquina de propriedad de um certo desenvolvedor.

    Sim
    WALLARM_API_HOST Servidor API Wallarm:
    • us1.api.wallarm.com para a Nuvem dos EUA
    • api.wallarm.com para a Nuvem da UE
    Por padrão: api.wallarm.com.
    Não
    • A opção -v monta o diretório com o arquivo de configuração envoy.yaml no diretório do contêiner /etc/envoy.

O comando faz o seguinte:

  • Monta o arquivo envoy.yaml no diretório do contêiner /etc/envoy.

  • Cria arquivos com credenciais do nó de filtragem para acessar a Wallarm Cloud no diretório do contêiner /etc/wallarm:

    • node.yaml com UUID do nó de filtragem e chave secreta
    • private.key com chave privada Wallarm
  • Protege o recurso especificado no arquivo de configuração montado.

Configuração da rotação de logs (opcional)

A rotação do arquivo de log está pré-configurada e ativada por padrão. Você pode ajustar as configurações de rotação, se necessário. Essas configurações estão localizadas no diretório /etc/logrotate.d do contêiner.

Testando a operação do nó Wallarm

  1. Envie a solicitação com o ataque de teste Path Traversal para um endereço de recurso protegido:

    curl http://localhost/etc/passwd
    
  2. Abra o Console Wallarm → seção Eventos na Nuvem dos EUA ou Nuvem da UE e certifique-se de que o ataque está exibido na lista.
    Ataques na interface