Implantação da Imagem Docker Wallarm na Alibaba Cloud¶
Este guia rápido fornece os passos para implantar a Imagem Docker do nó Wallarm baseado em NGINX na plataforma Alibaba Cloud usando o Serviço de Computação Elástica (ECS) da Alibaba Cloud.
Limitações das instruções
Estas instruções não cobrem a configuração de balanceamento de carga e autoescala de nó. Se você está configurando esses componentes por conta própria, recomendamos que leia a documentação apropriada da Alibaba Cloud.
Casos de uso¶
Dentre todas as [opções de implantação do Wallarm][plataforma] suportadas, recomendamos a implantação do Wallarm na Alibaba Cloud ECS usando a imagem Docker nos seguintes casos de uso:
-
Se suas aplicações aproveitam uma arquitetura de microsserviços, e já estão contêinerizadas e operacionais na Alibaba Cloud ECS.
-
Se você necessita de um controle fino sobre cada contêiner, a imagem Docker se sobressai. Ela proporciona um maior nível de isolamento de recursos do que normalmente é possível com as implantações tradicionais baseadas em VM.
Requisitos¶
-
Acesso ao Console Alibaba Cloud
-
Acesso à conta com a função Administrador e autenticação de dois fatores desativada no Wallarm Console para a Nuvem EUA ou Nuvem UE
Opções para a configuração do contêiner Docker do nó Wallarm¶
Os parâmetros de configuração do nó de filtragem devem ser passados para o contêiner Docker implantado de uma das seguintes maneiras:
-
Nas variáveis do ambiente. Esta opção permite a configuração de apenas os parâmetros básicos do nó de filtragem. A maioria das diretivas não pode ser configurada através de variáveis de ambiente.
-
No arquivo de configuração montado. Esta opção permite a configuração completa do nó de filtragem através de qualquer diretiva. Com este método de configuração, as variáveis de ambiente com as configurações de conexão do nó de filtragem e do Wallarm Cloud também são passadas para o contêiner.
Implantando o contêiner Docker do nó Wallarm configurado através de variáveis de ambiente¶
Para implantar o nó de filtragem Wallarm contêinerizado configurado apenas através de variáveis de ambiente, você deve criar a instância da Alibaba Cloud e executar o contêiner Docker nesta instância. Você pode realizar esses passos através do Console Alibaba Cloud ou CLI da Alibaba Cloud. Nestas instruções, é usado o Console Alibaba Cloud.
-
Obtenha o token Wallarm do tipo apropriado:
-
Abra o Console Alibaba Cloud → a lista de serviços → Elastic Compute Service → Instâncias.
-
Crie a instância seguindo as instruções da Alibaba Cloud e as diretrizes abaixo:
- A instância pode se basear na imagem de qualquer sistema operacional.
- Como a instância deve estar disponível para recursos externos, o endereço IP público ou o domínio deve ser configurado nas configurações da instância.
- As configurações da instância devem refletir o método usado para se conectar à instância.
-
Conecte-se à instância por um dos métodos descritos na documentação da Alibaba Cloud.
-
Instale os pacotes Docker na instância seguindo as instruções para um sistema operacional apropriado.
-
Defina a variável de ambiente da instância com o token Wallarm copiado para ser usado para conectar a instância à Nuvem Wallarm:
-
Execute o contêiner Docker do nó Wallarm usando o comando
docker run
com variáveis de ambiente passadas e arquivo de configuração montado:-p
: porta que o nó de filtragem escuta. O valor deve ser o mesmo que a porta da instância.-
-e
: variáveis de ambiente com a configuração do nó de filtragem (variáveis disponíveis estão listadas na tabela abaixo). Observe que não é recomendado passar o valor deWALLARM_API_TOKEN
explicitamente.Variável de ambiente Descrição Obrigatório WALLARM_API_TOKEN
Token de nó ou API do Wallarm. Sim NGINX_BACKEND
Domínio ou endereço IP do recurso a ser protegido com a solução Wallarm. Sim WALLARM_API_HOST
Servidor de API Wallarm: us1.api.wallarm.com
para a Nuvem dos EUAapi.wallarm.com
para a Nuvem da UE
api.wallarm.com
.Não WALLARM_MODE
Modo de nó: block
para bloquear solicitações maliciosassafe_blocking
para bloquear apenas aquelas solicitações maliciosas originadas de endereços IP em lista cinzamonitoring
para analisar, mas não bloquear solicitaçõesoff
para desativar a análise e processamento de tráfego
monitoring
.
Descrição detalhada dos modos de filtragem →Não WALLARM_APPLICATION
Identificador único do aplicativo protegido a ser usado na Nuvem Wallarm. O valor pode ser um número inteiro positivo, exceto 0
.
O valor padrão (se a variável não for passada para o contêiner) é-1
, o que indica o aplicativo padrão exibido na Console Wallarm → Configurações → Aplicativo.
Mais detalhes sobre a configuração de aplicativos →Não TARANTOOL_MEMORY_GB
Quantidade de memória alocada para o Tarantool. O valor pode ser um número inteiro ou um float (um ponto .
é um separador decimal). Por padrão: 0.2 gigabytes.Não NGINX_PORT
Define uma porta que o NGINX usará dentro do contêiner Docker.
A partir da imagem Docker4.0.2-1
, o serviçowallarm-status
é executado automaticamente na mesma porta que o NGINX.
O valor padrão (se a variável não for passada para o contêiner) é80
.
A sintaxe éNGINX_PORT='443'
.Não DISABLE_IPV6
A variável com qualquer valor que não seja um vazio exclui a linha listen [::]:80 default_server ipv6only=on;
do arquivo de configuração NGINX, o que impedirá o NGINX de processar conexões IPv6.
Se a variável não for especificada explicitamente ou tiver um valor vazio""
, o NGINX processará conexões IPv6 e IPv4.Não WALLARM_LABELS
Disponível a partir do nó 4.6. Funciona apenas se
WALLARM_API_TOKEN
estiver configurado para token de API com o papelDeploy
. Define a etiquetagroup
para a agrupamento de instâncias de nó, por exemplo:WALLARM_LABELS="group=<GRUPO>"
...colocará a instância do nó no grupo de instâncias
<GRUPO>
(existente, ou, se não existir, será criado).Sim (para tokens de API)
Implantando o contêiner Docker do nó Wallarm configurado através do arquivo montado¶
Para implantar o nó de filtragem Wallarm contêinerizado configurado através de variáveis de ambiente e arquivo montado, você deve criar a instância da Alibaba Cloud, localizar o arquivo de configuração do nó de filtragem no sistema de arquivos desta instância e executar o contêiner Docker nesta instância. Você pode realizar esses passos através do Console Alibaba Cloud ou CLI da Alibaba Cloud. Nestas instruções, será usado o Console Alibaba Cloud.
-
Obtenha o token Wallarm do tipo apropriado:
-
Abra o Console Alibaba Cloud → a lista de serviços → Elastic Compute Service → Instâncias.
-
Crie a instância seguindo as instruções da Alibaba Cloud e as diretrizes abaixo:
- A instância pode se basear na imagem de qualquer sistema operacional.
- Como a instância deve estar disponível para recursos externos, o endereço IP público ou domínio deve ser configurado nas configurações da instância.
- As configurações da instância devem refletir o método usado para se conectar à instância.
-
Conecte-se à instância por um dos métodos descritos na documentação da Alibaba Cloud.
-
Instale os pacotes Docker na instância seguindo as instruções para um sistema operacional apropriado.
-
Defina a variável de ambiente da instância com o token Wallarm copiado para ser usado para conectar a instância à Nuvem Wallarm:
-
Na instância, crie o diretório com o arquivo
default
que contém a configuração do nó de filtragem (por exemplo, o diretório pode ser chamado deconfigs
). Um exemplo do arquivo com configurações mínimas:server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; #listen 443 ssl; server_name localhost; #ssl_certificate cert.pem; #ssl_certificate_key cert.key; root /usr/share/nginx/html; index index.html index.htm; wallarm_mode monitoring; # wallarm_application 1; location / { proxy_pass http://example.com; include proxy_params; } }
Conjunto de diretivas de nó de filtragem que podem ser especificadas no arquivo de configuração →
-
Execute o contêiner Docker do nó Wallarm usando o comando
docker run
com variáveis de ambiente passadas e arquivo de configuração montado:<INSTANCE_PATH_TO_CONFIG>
: caminho para o arquivo de configuração criado na etapa anterior. Por exemplo,configs
.-
<DIRECTORY_FOR_MOUNTING>
: diretório do contêiner para montar o arquivo de configuração. Arquivos de configuração podem ser montados nos seguintes diretórios de contêiner usados pelo NGINX:/etc/nginx/conf.d
— configurações comuns/etc/nginx/sites-enabled
— configurações de host virtual/var/www/html
— arquivos estáticos
As diretivas de nó de filtragem devem ser descritas no arquivo
/etc/nginx/sites-enabled/default
. -
-p
: porta que o nó de filtragem escuta. O valor deve ser o mesmo que a porta da instância. -
-e
: variáveis de ambiente com a configuração do nó de filtragem (variáveis disponíveis estão listadas na tabela abaixo). Observe que não é recomendado passar o valor deWALLARM_API_TOKEN
explicitamente.Variável de ambiente Descrição Obrigatório WALLARM_API_TOKEN
Token de nó Wallarm ou API. Sim WALLARM_API_HOST
Servidor API Wallarm: us1.api.wallarm.com
para a Nuvem dos EUAapi.wallarm.com
para a Nuvem da UE
api.wallarm.com
.Não WALLARM_LABELS
Disponível a partir do nó 4.6. Funciona apenas se
WALLARM_API_TOKEN
estiver configurado para token da API com a funçãoDeploy
. Define a etiquetagroup
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)
Testando a operação do nó de filtragem¶
-
Abra o Console Alibaba Cloud → a lista de serviços → Elastic Compute Service → Instâncias e copie o endereço IP público da instância na coluna Endereço IP.
Se o endereço IP estiver vazio, certifique-se de que a instância está no status Running.
-
Envie a solicitação com o teste de ataque Path Traversal ao endereço copiado:
-
Abra o Console Wallarm → Eventos na Nuvem EUA ou Nuvem UE e certifique-se de que o ataque está exibido na lista.
Para visualizar detalhes sobre erros ocorridos durante a implantação do contêiner, por favor, conecte-se à instância por um dos métodos e reveja os logs do contêiner. Se a instância estiver indisponível, certifique-se de que os parâmetros necessários do nó de filtragem com valores corretos foram passados para o contêiner.