Atualizando o nó multi-inquilino EOL¶
Estas instruções descrevem as etapas para atualizar o nó multi-inquilino de fim de vida (versão 3.6 e inferior) até a versão 4.8.
Requisitos¶
-
Execução de comandos adicionais pelo usuário com a função Administrador global adicionada sob a conta de inquilino técnico
-
Acesso a
https://us1.api.wallarm.com
se trabalhando com Wallarm Cloud dos EUA ou ahttps://api.wallarm.com
se trabalhando com Wallarm Cloud da UE. Certifique-se de que o acesso não está bloqueado por um firewall
Passo 1: Entre em contato com a equipe de suporte da Wallarm¶
Solicite a assistência da equipe de suporte da Wallarm para obter a versão mais recente do recurso de construção de conjunto de regras personalizado durante a atualização do nó multi-inquilino.
Atualização bloqueada
O uso de uma versão incorreta do recurso de construção de conjunto de regras personalizado pode bloquear o processo de atualização.
A equipe de suporte também ajudará você a responder a todas as perguntas relacionadas à atualização do nó multi-inquilino e à reconfiguração necessária.
Passo 2: Siga o procedimento padrão de atualização¶
Os procedimentos padrão são aqueles para:
-
Atualizando a imagem NGINX- ou Envoy-baseada em Docker da Wallarm
-
Atualizando o controlador de entrada NGINX com módulos Wallarm integrados
Passo 3: Reconfigure a multilocação¶
Reescreva a configuração de como o tráfego está associado a seus inquilinos e suas aplicações. Considere o exemplo abaixo. No exemplo:
-
O inquilino representa o cliente do parceiro. O parceiro tem dois clientes.
-
O tráfego direcionado para
tenant1.com
etenant1-1.com
deve ser associado ao cliente 1. -
O tráfego direcionado para
tenant2.com
deve ser associado ao cliente 2. -
O cliente 1 também possui três aplicações:
tenant1.com/login
tenant1.com/users
tenant1-1.com
O tráfego direcionado a esses 3 caminhos deve ser associado à aplicação correspondente; o restante deve ser considerado como tráfego genérico do cliente 1.
Estude sua configuração de versão anterior¶
Na versão 3.6, isso poderia ser configurado da seguinte maneira:
server {
server_name tenant1.com;
wallarm_application 20;
...
location /login {
wallarm_application 21;
...
}
location /users {
wallarm_application 22;
...
}
server {
server_name tenant1-1.com;
wallarm_application 23;
...
}
server {
server_name tenant2.com;
wallarm_application 24;
...
}
...
}
Observações sobre a configuração acima:
-
O tráfego direcionado para
tenant1.com
etenant1-1.com
está associado ao cliente 1 através dos valores20
e23
, vinculados a este cliente através do pedido de API. -
Solicitações de API semelhantes deveriam ter sido enviadas para vincular outras aplicações aos inquilinos.
-
Os inquilinos e as aplicações são entidades separadas, portanto, é lógico configurá-los com as diferentes diretivas. Além disso, seria conveniente evitar solicitações adicionais de API. Seria lógico definir relações entre os inquilinos e as aplicações através da própria configuração. Tudo isso está ausente na configuração atual, mas estará disponível na nova abordagem 4.x descrita abaixo.
Estude a abordagem 4.x¶
Na versão 4.x, UUID é a forma de definir o inquilino na configuração do nó.
Para reescrever a configuração, faça o seguinte:
-
Obtenha os UUIDs de seus inquilinos.
-
Inclua inquilinos e defina suas aplicações no arquivo de configuração NGINX.
Obtenha UUIDs de seus inquilinos¶
Para obter a lista de inquilinos, envie solicitações autenticadas para a API da Wallarm. A abordagem de autenticação é a mesma que a usada para a criação do inquilino.
-
Obtenha o(s)
clientid
(s) para posteriormente encontrar UUIDs relacionados a eles:-
Envie a solicitação GET para a rota
/v2/partner_client
:Exemplo de solicitação enviada do seu próprio cliente
Onde
PARTNER_ID
é aquele obtido no Passo 2 do procedimento de criação de inquilino.Exemplo de resposta:
-
Copie o(s)
clientid
(s) da resposta.
-
-
Para obter o UUID de cada inquilino, envie a solicitação POST para a rota
v1/objects/client
:Exemplo de solicitação enviada do seu próprio cliente
Exemplo de resposta:
-
Da resposta, copie o(s)
uuid
(s).
Inclua inquilinos e defina suas aplicações no arquivo de configuração NGINX¶
No arquivo de configuração do NGINX:
-
Especifique os UUIDs de inquilino recebidos acima nas diretivas
wallarm_partner_client_uuid
. -
Defina os IDs da aplicação protegida nas diretivas
wallarm_application
.Se a configuração do NGINX usada para o nó versão 3.6 ou inferior envolvia configuração de aplicação, apenas especifique os UUIDs de inquilino e mantenha a configuração de aplicação inalterada.
Exemplo:
server {
server_name tenant1.com;
wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
...
location /login {
wallarm_application 21;
...
}
location /users {
wallarm_application 22;
...
}
server {
server_name tenant1-1.com;
wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
wallarm_application 23;
...
}
server {
server_name tenant2.com;
wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222;
...
}
...
}
Na configuração acima:
-
Inquilinos e aplicações são configurados com diferentes diretivas.
-
As relações entre os inquilinos e as aplicações são definidas através das diretivas
wallarm_application
nos blocos correspondentes do arquivo de configuração NGINX.
Passo 4: Teste a operação do nó multi-inquilino Wallarm¶
-
Envie a solicitação com o ataque de teste Path Traversal para um endereço de recurso protegido:
-
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.