Limites de Firewall
Confira os limites de um firewall, das regras e instâncias de função dele e das configurações de WAF, Network Shield e Bot Manager que ele carrega, por plano.
Um firewall guarda regras e instâncias de função. Cada produto habilitado nele acrescenta objetos próprios: rule sets e exceções para Web Application Firewall (WAF), network lists para Network Shield e uma instância de função para Bot Manager. Esta página informa o limite que a Azion aplica a cada um desses objetos, a resposta que uma chamada recebe ao ultrapassá-lo e o uso que cada plano de serviço inclui.
Os dois tipos de valor são coisas diferentes. Um limite padrão é verificado em toda chamada, e a chamada falha quando ele é ultrapassado. Uma quantidade incluída é um valor de cobrança, e ultrapassá-la muda o valor cobrado da conta, e não o que a chamada retorna.
Regras e instâncias de função
Um firewall executa as regras no Rules Engine e executa uma função por meio de uma instância de função que uma regra invoca. Os limites desta seção se aplicam às regras e às instâncias de função de todo firewall, quaisquer que sejam os produtos habilitados nele.
Limites padrão
Cada linha indica o que é limitado, o limite e o que recebe uma chamada que o ultrapassa.
| Escopo | Limite | Ao ultrapassar o limite |
|---|---|---|
description da regra | Até 1.000 caracteres | Azion Console mostra Description should not exceed 1000 characters. |
| Grupos de critérios por regra | 1 a 5 | Azion Console desativa Add Criteria ao chegar a 5 grupos. |
| Critérios por grupo | 1 a 10 | Azion Console desativa And e Or ao chegar a 10 critérios em um grupo. |
| Average Rate Limit em um comportamento Set Rate Limit | No mínimo 1 | Azion Console rejeita um valor menor. |
| Maximum Burst Size em um comportamento Set Rate Limit | No mínimo 1, somente com o tipo Req/s | Azion Console rejeita um valor menor e não envia o campo com o tipo Req/min. |
name da instância de função | Até 100 caracteres | 400 e ["Ensure this field has no more than 100 characters."] |
| Payload de argumentos, o objeto JSON que uma instância de função carrega | 100.000 bytes | 400 e ["Value size (in bytes) is too big. Maximum size allowed is 100000 bytes."] |
| Requisições à Azion API | 200 por minuto, no escopo global-default | Uma resposta carrega x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset e x-ratelimit-scope, que informam o saldo restante na janela e o momento em que ela é reiniciada. |
Mais três limites se aplicam: o name de uma regra aceita de 1 a 250 caracteres, um log de Debug Rules carrega 1,5 kB, e um firewall cobre até 200 domínios.
O limite do payload de argumentos é decimal: 100 KB significa 100.000 bytes, e não 100 KiB. Um payload de 100.000 bytes é aceito, e um payload de 102.400 bytes, que são 100 KiB, é rejeitado. Por isso, dimensione o objeto de argumentos pelo valor decimal. A Azion pode aumentar, mediante solicitação e de acordo com o seu plano, o limite do payload de argumentos e os outros limites padrão de uma função em um firewall. Para solicitar um aumento, entre em contato com o time de suporte técnico.
O tamanho é a única propriedade do objeto de argumentos que a API verifica. Toda chave que uma instância envia é armazenada e retornada como foi enviada, qualquer que seja o nome. Por exemplo, um argumento com erro de digitação passa na chamada, e a função nunca o lê.
O número de instâncias de função que um firewall carrega não tem limite. A quantidade que um firewall alcança é uma escolha operacional, e não um valor que a plataforma verifica.
Uma função executada em um firewall compartilha os limites de memória, de variáveis de ambiente, de sub-requisições e de tempo de CPU de toda função. Esses limites e o tamanho do código da função pertencem à função, e não ao firewall. Para os valores, consulte Limites de Functions.
O rate limit é o valor que os cabeçalhos de resposta anunciam. Uma resposta da Azion API carrega x-ratelimit-limit: 200, x-ratelimit-scope: global-default e um timestamp em x-ratelimit-reset cerca de 60 segundos depois da chamada. x-ratelimit-remaining fica uma ou duas unidades abaixo do limite e não diminui durante uma rajada de chamadas em um minuto.
Uma chamada que a API aceita não entra em vigor de imediato. Uma regra nova em um firewall que já recebe tráfego chega a ele de 6 min 29 s a 9 min 18 s depois da chamada. Um workload vinculado recentemente a um firewall pode levar vários minutos para aplicar a primeira regra, e nenhuma duração é garantida. Enquanto uma alteração se propaga, requisições sucessivas podem receber alternadamente a resposta anterior e a nova, portanto envie a requisição de novo até que ela responda como esperado. Para saber como uma alteração chega ao tráfego, consulte Como Firewall funciona.
Uso incluído por plano
A Azion oferece três planos de serviço: Hobby, Pro e Enterprise. Firewall é cobrado por duas métricas, Requests e Rules, e cada plano inclui uma quantidade de cada uma antes que uma tarifa se aplique.
| Métrica | Hobby | Pro | Enterprise |
|---|---|---|---|
| Requisições do Firewall | 10M por mês | 20M por mês | Custom |
| Regras por firewall | 10 | 20 | Custom |
Firewall mede toda requisição que passa por um firewall, inclusive as requisições que uma regra de Network Shield avalia. O Enterprise carrega uma quantidade personalizada de requisições do Firewall e de regras por firewall. Para solicitar uma quantidade personalizada, entre em contato com o time de suporte técnico.
Para a tarifa que se aplica além de uma quantidade incluída, consulte Preços.
WAF
WAF limita o nome que um rule set recebe, as condições que uma exceção carrega, o tamanho do corpo da requisição que ele inspeciona e o que uma requisição de listagem retorna. Os limites padrão dele se aplicam em toda chamada, e as quantidades incluídas são valores de cobrança.
Limites padrão
WAF aplica cada limite desta tabela em todos os planos de serviço. A API responde a uma chamada rejeitada com um code numérico, um title, um detail e um ponteiro source que indica o campo que falhou. A coluna Ao ultrapassar o limite traz o status, o código e o título, e o texto que chega com eles.
| Escopo | Limite | Ao ultrapassar o limite |
|---|---|---|
name do rule set | Até 250 caracteres | 400 10046 Max Length, Ensure this field has no more than 250 characters. |
name da exceção | Até 255 caracteres | 400 10046 Max Length, Ensure this field has no more than 255 characters. |
name e value da condição de uma exceção | 1 a 255 caracteres | Um valor vazio retorna 400 10018 Blank Field, This field may not be blank. |
| Condições por exceção | No mínimo 1; mais de uma é aceita | Um array vazio retorna 400 10049 Min Length List Field, Ensure this field has at least 1 elements. |
Registros por resposta de listagem (page_size) | 100 no máximo, padrão 10 | 400 10097 Invalid Page Size, Page size must be between 0 and 100. |
| Requisições à Azion API | 200 por minuto, no escopo global-default | Uma resposta carrega x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset e x-ratelimit-scope, que informam o saldo restante na janela e o momento em que ela é reiniciada. |
Entradas de thresholds em um rule set | 1 a 8, uma por família de ameaças | Um threat repetido retorna 500 10067 Internal Server Error, A server error occurred. |
rulesets | [1] | 400 10039 Invalid Choice, "<value>" is not a valid choice. |
engine_version | 2021-Q3 | 400 10039 Invalid Choice |
engine_settings.type | score | 400 10039 Invalid Choice |
operator em uma exceção | contains ou regex, padrão contains | 400 10039 Invalid Choice |
mode em um comportamento set_waf | logging ou blocking, e obrigatório | Um valor fora da lista, como learning, retorna 400 10039 Invalid Choice. Um mode ausente retorna 400 10059 Required Field, This field is required. |
| Corpo da requisição que WAF inspeciona | 131.072 bytes, que são 128 KiB | 400 e a página de erro padrão da Azion, e não um 413. |
| Janela de consulta do WAF Tuning | 3 dias | Nenhuma interface oferece um intervalo maior. |
WAF analisa o corpo de um POST quando o Content-Type dele é application/x-www-form-urlencoded, multipart/form-data, application/json, application/vnd.api+json ou application/csp-report. O limite do corpo conta somente o corpo, sem a linha de requisição e os cabeçalhos.
Com Content-Type: application/x-www-form-urlencoded e um corpo sem nenhum padrão de ataque, um corpo de 131.072 bytes retorna 200, e um corpo de 131.073 bytes retorna 400. O evento registrado para a requisição rejeitada indica a regra 2 na zona BODY, como wafMatch 0:2:BODY:-, com wafAttackFamily $OTHERS. A regra 2 verifica o tamanho em vez de somar a um score, então o limite vale em qualquer sensibilidade: um corpo de 170 KB também é rejeitado na sensibilidade padrão, medium. O requestLength desse evento também conta a linha de requisição e os cabeçalhos, por isso mostra um valor maior que o tamanho do corpo: 131148 para um corpo de 131.073 bytes. O mesmo corpo enviado como application/json ou text/plain é rejeitado nos dois tamanhos, porque as regras 15 e 11 correspondem à requisição antes da verificação de tamanho. Para testar esse limite, envie application/x-www-form-urlencoded ou multipart/form-data.
O 500 que um threat repetido retorna é uma falha de validação, e não um defeito no serviço. Envie cada uma das oito famílias de ameaças no máximo uma vez em thresholds.
Para os campos a que esses limites se aplicam, consulte Rule sets e Exceções.
Uso incluído por plano
WAF é cobrado por três métricas, Requests, Rule Sets e Exceptions, e cada plano inclui uma quantidade de cada uma antes que uma cobrança se aplique.
As quantidades desta tabela são valores de cobrança, e não limites que a plataforma aplica a uma chamada. Uma requisição de criação além da quantidade incluída de rule sets ou de exceções é aceita, portanto a contagem que uma conta alcança é um custo a acompanhar, e não uma rejeição a tratar.
| Métrica | Hobby | Pro | Enterprise |
|---|---|---|---|
| Requests | 100.000 por mês | 200.000 por mês | Custom |
| Rule Sets | 1 | 2 | Custom |
| Exceptions por rule set | 10 | 20 | Custom |
O Enterprise carrega uma quantidade personalizada nas três métricas. Para aumentar uma quantidade incluída em qualquer plano, entre em contato com o time de suporte técnico.
Para a tarifa que se aplica além de uma quantidade incluída, consulte Preços.
Network Shield
Network Shield permite que uma regra de firewall compare o endereço do cliente de uma requisição com uma network list, por meio do critério ${network}. Azion API limita o tamanho de uma network list, os itens e o nome dela, os registros por resposta de listagem e a taxa de chamadas.
Network Shield não tem métrica de cobrança própria. Uma regra que usa o critério ${network} é uma regra de firewall, portanto conta para as regras por firewall que cada plano inclui, e Firewall mede as requisições que ela avalia. Para as quantidades, consulte Uso incluído por plano. Para as tarifas, consulte Preços. Para saber quais planos oferecem Network Shield, consulte Preços da Azion.
Limites padrão
Azion API aplica cada limite desta tabela por padrão. Uma chamada que ultrapassa um limite de network list é rejeitada com o status 400 e um array errors. Cada entrada carrega um code, um title, um detail e um ponteiro source que indica o campo que falhou.
| Escopo | Limite | Ao ultrapassar o limite |
|---|---|---|
| Itens por network list | Até 20.000 itens | 400 10065 List Field Max Length, Ensure this field has no more than 20000 elements. |
| Itens por network list, mínimo | No mínimo 1 item | 400 10049 Min Length List Field, Ensure this field has at least 1 elements. |
| Caracteres por item, anotações incluídas | Até 250 caracteres | 400 10046 Max Length, Ensure this field has no more than 250 characters. |
Caracteres no name da lista | Até 250 caracteres | 400 10046 Max Length, Ensure this field has no more than 250 characters. |
Registros por resposta de listagem (page_size) | 100 no máximo, padrão 10 | 400 10097 Invalid Page Size, Page size must be between 0 and 100. |
| Requisições à Azion API | 200 por minuto, no escopo global-default | Uma resposta carrega x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset e x-ratelimit-scope, que informam o saldo restante na janela e o momento em que ela é reiniciada. |
O teto de itens é exato e se aplica igualmente aos itens de uma lista IP/CIDR e de uma lista ASN. Uma chamada de criação com 20.000 itens retorna 201, e a mesma chamada com 20.001 itens retorna este corpo:
Os 250 caracteres de um item incluem as anotações dele: a data de expiração --LT e o comentário # que um item ip_cidr pode carregar. Por exemplo, um item ip_cidr de exatamente 250 caracteres, um endereço seguido de um comentário #, é armazenado sem alteração. Para os formatos de item e as anotações de cada tipo de lista, consulte Network Lists.
Quando uma chamada não define page_size, o endpoint de listagem retorna 10 registros por página. Um page_size de 0 é rejeitado com a mesma mensagem 10097, embora a mensagem indique 0 como permitido.
O teto de 20.000 itens é um limite padrão, e a Azion pode aumentá-lo mediante solicitação, de acordo com o plano. Para solicitar um aumento, entre em contato com o time de suporte técnico.
Uma alteração nos itens de uma lista não entra em vigor de imediato. Ela chega ao tráfego de 46 s a cerca de 100 s depois da chamada e, até se estabilizar, as requisições recebem alternadamente a resposta anterior e a nova.
Bot Manager
Bot Manager é executado em um firewall como uma instância de função, que uma regra com o comportamento Run Function invoca. Os limites de instância de função de todo firewall se aplicam a ele, e mais dois limites se aplicam às superfícies em volta dele: o log de report e os datasets do GraphQL.
Limites padrão
Uma chamada que ultrapassa o limite do name da instância de função ou do payload de argumentos retorna 400 com a mensagem da coluna Ao ultrapassar o limite. Os dois limites de superfície restringem o que o campo de log e uma consulta retornam, e nenhuma chamada falha por causa deles.
| Escopo | Limite | Ao ultrapassar o limite |
|---|---|---|
name da instância de função | Até 100 caracteres | 400 e ["Ensure this field has no more than 100 characters."] |
| Payload de argumentos | 100.000 bytes | 400 e ["Value size (in bytes) is too big. Maximum size allowed is 100000 bytes."] |
Campo request_headers do log de report | 10.000 caracteres | Cada nome e cada valor de cabeçalho descontam do total, e o campo não recebe mais nenhum cabeçalho depois que o total é alcançado. |
limit do GraphQL nos datasets do Bot Manager | 10000 no máximo | Uma consulta retorna no máximo 10.000 resultados. |
O limite do payload de argumentos é decimal, portanto um payload de 102.400 bytes, que são 100 KiB, é rejeitado. Para os argumentos que o payload guarda e o padrão de cada um, consulte Argumentos. Para o log de report, consulte Logs. Para a consulta GraphQL, consulte Consulte dados do Bot Manager com GraphQL.
Uso incluído por plano
Bot Manager é cobrado por duas métricas, Requests e Profiles. As quantidades desta tabela são valores de cobrança, e não limites aplicados em uma chamada. Ultrapassar uma delas não faz nenhuma requisição falhar, portanto nenhuma mensagem de erro pertence a esta tabela.
| Métrica | Hobby | Pro | Enterprise |
|---|---|---|---|
| Bot Manager Lite | Incluído | Incluído | Custom |
| Bot Manager | Não listado | Não listado | Custom |
| Requests | Cobradas a cada 10.000 | Cobradas a cada 10.000 | Custom |
| Profiles | 1 | 1 | Custom |
Nenhum volume incluído de requisições é publicado para Bot Manager em qualquer plano. A tabela traz o incremento em que as requisições são cobradas, que é 10.000. Cada plano carrega um perfil, e um perfil além do primeiro é cobrado.
Bot Manager Lite está incluído nos três planos. A edição completa é listada somente no Enterprise, onde cada quantidade é personalizada. Para a tarifa que se aplica a requisições e a perfis, consulte Preços.