Primeiros passos com Bot Manager
Crie uma instância de Bot Manager Lite em um firewall, execute-a por uma regra do Rules Engine e leia a pontuação que a função deu a uma requisição de bot.
Este guia instrui você a pontuar a sua primeira requisição com o Bot Manager Lite, a edição que você instala por conta própria pelo Marketplace.
- Crie uma instância de função no seu firewall, carregando os argumentos com que a função é executada.
- Execute essa instância por uma regra do Rules Engine, em toda requisição que o firewall recebe.
- Envie uma requisição com formato de bot e leia a pontuação que a função deu a ela.
O Bot Manager Lite pontua cada requisição contra um conjunto publicado de regras estáticas, que carregam assinaturas de credential stuffing, varredura de vulnerabilidades e scraping de site. O Bot Manager, a edição completa, é habilitado sob demanda pelo time de Service Delivery da Azion, e acrescenta uma pontuação dinâmica e o Reputation Intelligence sobre essas regras. As duas edições são configuradas do mesmo jeito, então os estágios abaixo não mudam com a edição.
Cinco objetos colocam uma requisição sob inspeção, e cada um liga ao seguinte:
- A função instalada é o código do Bot Manager Lite, instalado uma vez pelo Marketplace na conta.
- O firewall carrega o módulo Functions, que é o que executa uma função instalada.
- A instância de função nesse firewall guarda os argumentos com que a função é executada.
- A regra do Rules Engine no mesmo firewall carrega um comportamento
run_function, que nomeia essa instância. - O workload que serve a sua aplicação é vinculado a esse firewall pelo seu deployment.
Uma função instalada não pontua nada sozinha. Os cinco objetos precisam existir.
Selecione a interface que você vai usar. Os pré-requisitos e cada estágio abaixo seguem essa escolha.
Pré-requisitos
- Uma conta Azion.
- Bot Manager Lite instalado pelo Marketplace. A instalação é feita no Azion Console, qualquer que seja a interface dos estágios abaixo: acesse Azion Console > Marketplace, selecione a integração Bot Manager Lite pelo campo de busca e selecione Install. A função aparece então em Functions, em Edge Libraries, onde uma coluna Vendor a marca como instalação pelo Marketplace. Para mais informações, consulte Instale o Bot Manager Lite.
- Um firewall com o módulo Functions ligado. O módulo está em Main Settings do firewall, na seção Modules, e um firewall criado com o Azion CLI já o tem ligado. Para mais informações, consulte Defina as configurações principais de um firewall.
- Um workload servindo a sua aplicação e vinculado a esse firewall. O vínculo fica no deployment do workload.
- Ligar um produto ou um módulo pode gerar custos de uso. Para as métricas pelas quais o Bot Manager é cobrado, consulte Preços.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Crie uma instância de Bot Manager Lite no seu firewall
Uma instância de função carrega toda a sua configuração em um objeto JSON. Quatro argumentos bastam para uma primeira execução:
threshold e action são o par que decide o resultado: a função aplica action a uma requisição cuja pontuação alcança threshold, e 30 com deny são os valores que o Bot Manager Lite entrega. internal_logs em 2 escreve uma linha de report para toda requisição, incluindo uma que pontua 0. log_tag identifica esta instância nessas linhas, então substitua storefront-bots por uma tag sua. Para cada argumento que uma instância aceita, consulte Argumentos.
Para criar a instância no Azion Console:
Acesse Azion Console > Firewalls e selecione esse firewall.
Em um firewall que ainda não carrega instância, a mesma ação aparece como + Function Instance.
Na seção General, informe um Name. Por exemplo: bot-manager-lite.
Na seção Function, selecione a função Bot Manager Lite. O seletor lista apenas as funções da conta que são executadas em um firewall.
Na seção Arguments, informe o objeto. O Bot Manager Lite não carrega esquema de argumentos, então a seção guarda um editor JSON e não constrói formulário a partir dele.
A instância aparece em Functions Instances, que lista o seu Name, Function, Last Editor e Last Modified. O formulário não carrega um controle Active e a lista não carrega uma coluna Status: Azion Console cria toda instância ativa.
Execute a instância por uma regra do Rules Engine
Uma regra do Rules Engine for Firewall decide quais requisições alcançam a instância. O seu comportamento run_function nomeia uma instância, e a regra abaixo executa a sua em toda requisição que o firewall recebe.
Para criar a regra no Azion Console:
Em Azion Console, vá até Firewalls, selecione o seu firewall e depois selecione a aba Rules Engine.
Informe um nome para a regra. Por exemplo: Run Bot Manager on every request. A descrição é opcional.
Na seção Criteria, selecione a variável Request Uri, o operador starts with e / como argumento.
Na seção Behaviors, selecione Run Function. Um segundo controle aparece, com o placeholder Select an function: ele lista as instâncias de função deste firewall, então selecione a que você nomeou.
O firewall executa a instância em toda requisição que recebe. Uma regra carrega no máximo um comportamento Run Function.
Verifique que uma requisição é pontuada
A verificação é a mesma qualquer que seja a interface que construiu a instância. O seu workload responde em um domínio no formato <id>.map.azionedge.net, escrito abaixo como <your-workload-domain>.
Uma instância nova e uma regra nova levam tempo para alcançar a infraestrutura distribuída da Azion. Uma mudança em uma instância chega ao caminho das requisições em cerca de dois minutos. Espere antes de ler qualquer coisa em uma resposta.
Verifique lendo o log de report, não tentando ser recusado. No threshold de 30 que este guia define, uma requisição com formato de bot é pontuada e ainda assim servida, então o log é onde o resultado está.
Envie uma requisição sem user agent, que é o que um cliente programado envia:
Depois leia a linha que a função escreveu. O log de report é servido pelo dataset functionConsoleEvents. Envie a consulta abaixo para https://api.azion.com/v4/events/graphql com um cabeçalho Authorization: Token [TOKEN VALUE], e um tsRange que cubra o momento da requisição:
A consulta responde 200 e devolve um registro por linha que a função escreveu. functionId é o id da função instalada, e configurationId é o id do workload em que a requisição chegou, não o id do firewall. line carrega a linha de report inteira, que abre com o prefixo e continua como um objeto JSON:
O segundo colchete do prefixo carrega a log_tag que você definiu, que é como você separa uma instância de outra. Quatro valores no objeto respondem à pergunta que este guia fez. score é 28. matched_rules é [1, 10, 18, 19, 20], as regras que produziram essa pontuação, entre elas a regra 1 pelo user agent vazio. action se lê allow, e classified se lê legitimate. Para cada campo que uma linha carrega, consulte Logs.
Nada foi recusado, e esse é o resultado a esperar: 28 está abaixo do threshold de 30, então a pontuação nunca alcançou o valor a partir do qual deny é executado. A requisição foi inspecionada, pontuada e servida, que é o que você se propôs a provar.
O que um threshold mais baixo muda é a ação, não a pontuação. Uma requisição cuja pontuação alcança o threshold recebe action, e deny responde HTTP 403 com a página de erro padrão da Azion. A classificação se move junto com o threshold: classified é um veredito relativo ao threshold em vigor, então a mesma pontuação de 28, das mesmas regras correspondidas, se lê legitimate sob um threshold de 30 e bad bot sob um threshold que 28 alcança. Aprenda quanto o seu próprio tráfego pontua antes de reduzi-lo.