Instale a integração Method and Route Validator
Instale Method and Route Validator a partir de Azion Marketplace e execute-a em um firewall para bloquear requisições pela URI e pelo método HTTP.
Preview
Você instala a integração Method and Route Validator a partir de Azion Marketplace e a executa em um firewall, pelo Azion Console. A função protege sua aplicação bloqueando requisições com base na URI e no método que elas usam. Você lista as rotas que sua aplicação espera e os métodos que cada rota aceita, e a função verifica cada requisição contra esses padrões.
Cinco objetos precisam existir antes que uma requisição seja validada: a função instalada, um firewall com o módulo Functions, uma instância de função com as rotas, uma regra do Rules Engine com o behavior Run Function e um deployment de workload vinculado ao firewall. Cada seção abaixo cria um deles.
Pré-requisitos
- Uma conta Azion. Para entrar, consulte Como acessar o Azion Console.
- Uma aplicação servida por um workload, cujo deployment você vincula ao firewall na última seção.
- Azion CLI instalada e autorizada, para a última seção.
- Ativar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte Preços.
Instale a integração
A função é instalada uma vez por conta. Para instalá-la:
Acesse Azion Console > Marketplace.
Digite Method and Route Validator no campo Search on Marketplace e selecione o card da integração. Navegar pelos cards e pelas categorias leva à mesma página.
O card exibe Successfully installed! e Latest version installed!, e a função aparece na lista Function do drawer Create Instance.
Crie o firewall
O firewall é onde a função é instanciada e onde fica a regra que a executa. Para criar um:
Acesse Azion Console > Firewalls e crie um firewall.
Na seção General, insira um Name. Por exemplo: route-validator-firewall.
Na seção Modules, ative o switch Functions. O switch dá ao firewall acesso a funções.
O firewall exibe a aba Functions Instances enquanto o módulo Functions estiver ativo. Para usar um firewall existente, ative o módulo Functions dele e salve-o. Para cada configuração deste formulário, consulte Defina as configurações principais de um firewall.
Crie a instância de função
A instância guarda as rotas, os métodos delas e a ação para uma requisição inválida. Para criá-la:
Em Firewalls, selecione seu firewall e, em seguida, a aba Functions Instances.
Um firewall sem instâncias exibe a mesma ação como Function Instance. O drawer Create Instance é aberto.
Em Name, insira um nome. Por exemplo: method-route-validator.
Em Function, selecione a função Method and Route Validator. A lista contém apenas as funções que executam em um firewall.
Em Arguments, o editor vem preenchido com os argumentos padrão da integração em JSON. Insira suas rotas e valores, como a próxima seção descreve.
A instância aparece na aba Functions Instances.
Argumentos
Passe os argumentos como neste exemplo:
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
restricted_mode | Boolean | Não | Define se a função executa em modo restrito. Valor padrão: false. |
action | String | Sim | A ação que a função executa quando identifica uma requisição como inválida. |
routes | Array | Sim | Todas as URIs que a aplicação protegida espera tratar. |
routes.match_type | String | Sim | O tipo de correspondência que a função executa no caminho. |
routes.path | String | Sim | O argumento que a função usa para validar a URI da requisição. |
routes.methods | Array | Sim | Os métodos que uma requisição ao caminho pode usar, como um array de strings. |
redirect_to | String | Apenas quando action é redirect | A URL que recebe a requisição quando a ação redirect executa. Pode ser uma URL de requisição completa ou um caminho relativo. |
custom_response_body | String | Apenas quando action é custom_response | O corpo de resposta personalizado que a função envia quando a ação custom_response executa. |
custom_response_status | Number | Não | O código de status da resposta que a função envia quando a ação custom_response executa. Valor padrão: 400. |
custom_response_content_type | String | Não | O tipo de conteúdo da resposta que a função envia quando a ação custom_response executa. Valor padrão: plain/text. |
O argumento action aceita estes valores:
| Ação | Descrição |
|---|---|
deny | Encerra a requisição com uma resposta HTTP 403 Forbidden. |
drop | Encerra a requisição sem uma resposta ao cliente. |
redirect | Redireciona a requisição para outro local. |
custom_response | Encerra a requisição com uma resposta estática. |
O argumento match_type aceita estes valores:
| Tipo de correspondência | Descrição |
|---|---|
equals | O caminho precisa ser igual ao argumento path. |
contains | O caminho precisa conter o argumento path. |
regex | O caminho precisa corresponder à expressão regular do argumento path. |
Validação da requisição
Cada vez que a função executa, ela segue estes passos:
- Valida os argumentos passados para a função. Quando os argumentos são inválidos, a função escreve uma mensagem de log e continua a requisição.
- Verifica se a requisição corresponde aos padrões das rotas.
- Quando a requisição corresponde, a função executa a ação de bloqueio que você definiu. Quando a requisição não corresponde, a função continua a requisição ou a bloqueia, conforme sua configuração.
Crie a regra
A instância não valida nada até que uma regra a execute. Uma regra do Rules Engine para Firewall seleciona as requisições que chegam à instância, por meio do behavior Run Function. Para criar a regra:
Em Firewalls, selecione seu firewall e, em seguida, a aba Rules Engine.
Em Name, insira um nome. Por exemplo: Run Method and Route Validator.
Na seção Criteria, selecione os domínios que executam a integração. Por exemplo: if Host matches yourdomain.com.
Na seção Behaviors, selecione Run Function e, em seguida, selecione a instância pelo nome que você deu a ela.
O firewall executa a instância em toda requisição aos domínios do critério.
Vincule o firewall ao workload
O vínculo fica no deployment do workload, então crie um deployment que nomeie a aplicação e o firewall:
O comando exibe o id do novo deployment:
As requisições ao domínio do workload chegam ao firewall, e a regra executa a instância Method and Route Validator em cada uma delas.