

**Apresentando uma nova experiência de console para AWS WAF**

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Para obter mais detalhes, consulte [Trabalhando com o console](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS WAF regras
<a name="waf-rules"></a>

Esta seção explica o que é uma AWS WAF regra e como ela funciona.

Uma AWS WAF regra define como inspecionar solicitações web HTTP (S) e a ação a ser tomada em uma solicitação quando ela corresponde aos critérios de inspeção. Você define regras somente no contexto de um grupo de regras ou pacote de proteção (ACL da Web). 

As regras não existem AWS WAF sozinhas. Eles não são AWS recursos e não têm nomes de recursos da Amazon (ARNs). Você pode acessar uma regra pelo nome em um grupo de regras ou no pacote de proteção (ACL da Web) no qual ela está definida. Você pode gerenciar regras e copiá-las para outros pacotes de proteção (web ACLs) usando a visualização JSON do grupo de regras ou pacote de proteção (web ACL) que contém a regra. Você também pode gerenciá-los por meio do criador de regras do AWS WAF console, que está disponível para pacotes de proteção (web ACLs) e grupos de regras.

**Nome da regra**  
Cada regra exige um nome. Evite nomes que comecem com `AWS` e nomes usados para grupos de regras ou regras gerenciadas para você por outros serviços. Consulte [Como reconhecer grupos de regras fornecidos por outros serviços](waf-service-owned-rule-groups.md). 

**nota**  
Se você alterar o nome de uma regra e quiser que o nome da métrica da regra reflita a alteração, você também deverá atualizar o nome da métrica. AWS WAF não atualiza automaticamente o nome da métrica de uma regra quando você altera o nome da regra. Você pode alterar o nome da métrica ao editar a regra no console, usando o editor JSON de regras. Você também pode alterar os dois nomes por meio de APIs e em qualquer listagem JSON usada para definir seu pacote de proteção (Web ACL) ou grupo de regras.

**Instrução de regra**  
Cada regra também exige uma instrução de regra que defina como a regra inspeciona as solicitações da web. A instrução de regra pode conter outras instruções aninhadas em qualquer profundidade, dependendo da regra e do tipo de instrução. Algumas instruções de regras exigem conjuntos de critérios. Por exemplo, você pode especificar até 10.000 endereços IP ou intervalos de endereços IP em uma regra de endereços IP.

Você pode definir regras que inspecionam critérios como os seguintes: 
+ Scripts que provavelmente são mal-intencionados. Os invasores incorporam scripts que podem explorar vulnerabilidades nas aplicações web. Isso é conhecido como cross-site scripting (XSS).
+ Endereços IP ou intervalos de endereços IP dos quais as solicitações se originam.
+ País ou localização geográfica de origem das solicitações.
+ Comprimento da parte específica da solicitação, como a string de consulta.
+ Código SQL que provavelmente é mal-intencionado. Os invasores tentam extrair dados do seu banco de dados ao incorporarem código SQL mal-intencionado a uma solicitação da web. Isso é conhecido como injeção de SQL.
+ Strings que aparecem na solicitação, por exemplo, valores que aparecem no cabeçalho `User-Agent` ou strings de texto que aparecem na string de consulta. Você também pode usar expressões regulares (regex) para especificar essas strings.
+ Rótulos que priorizam regras no pacote de proteção (ACL da Web) foram adicionados à solicitação.

Além de instruções com critérios de inspeção de solicitações da web, como as da lista anterior, AWS WAF oferece suporte a instruções lógicas para `AND``OR`, e `NOT` que você usa para combinar instruções em uma regra. 

Por exemplo, com base em solicitações recentes que você viu de um invasor, você pode criar uma regra com uma instrução `AND` lógica que combina as seguintes instruções aninhadas: 
+ As solicitações vêm de 192.0.2.44.
+ Elas contém o valor `BadBot` no cabeçalho do `User-Agent`.
+ Elas parecem incluir código do tipo SQL na query string.

Nesse caso, a solicitação da web precisa corresponder a todas as instruções para resultar em uma correspondência para o `AND` de nível superior. 

**Topics**
+ [Usando ações de regras em AWS WAF](waf-rule-action.md)
+ [Usando declarações de regras em AWS WAF](waf-rule-statements.md)
+ [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md)
+ [Usando declarações de regras lógicas em AWS WAF](waf-rule-statements-logical.md)
+ [Usando declarações de regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based.md)
+ [Usando declarações de regras de grupos de regras em AWS WAF](waf-rule-statements-rule-group.md)

# Usando ações de regras em AWS WAF
<a name="waf-rule-action"></a>

Esta seção explica como as ações de regra funcionam.

A ação da regra diz AWS WAF o que fazer com uma solicitação da web quando ela corresponde aos critérios definidos na regra. Opcionalmente, você pode adicionar um comportamento personalizado a cada ação da regra. 

**nota**  
As ações de regra podem ser de encerramento ou não. Uma ação de encerramento interrompe a avaliação do pacote de proteção (ACL da Web) da solicitação e permite que ela continue na aplicação protegida ou a bloqueia. 

Veja as opções da ação da regra: 
+ **Allow**— AWS WAF permite que a solicitação seja encaminhada ao AWS recurso protegido para processamento e resposta. Essa é uma ação de encerramento. Nas regras que define, você pode inserir cabeçalhos personalizados na solicitação antes de encaminhá-la para o recurso protegido.
+ **Block**— AWS WAF bloqueia a solicitação. Essa é uma ação de encerramento. Por padrão, seu AWS recurso protegido responde com um código de `403 (Forbidden)` status HTTP. Nas regras que você define, você pode personalizar a resposta. Quando AWS WAF bloqueia uma solicitação, as configurações da Block ação determinam a resposta que o recurso protegido envia de volta ao cliente. 
+ **Count**— AWS WAF conta a solicitação, mas não determina se ela deve ser permitida ou bloqueada. Essa não é uma ação de encerramento, o AWS WAF continua processando as regras restantes no pacote de proteção (ACL da Web). Nas regras que você define, você pode inserir cabeçalhos personalizados na solicitação e adicionar rótulos com os quais outras regras possam corresponder.
+ **CAPTCHAe Challenge** — AWS WAF usa quebra-cabeças de CAPTCHA e desafios silenciosos para verificar se a solicitação não vem de um bot e AWS WAF usa tokens para rastrear as respostas recentes bem-sucedidas dos clientes. 

  Os códigos CAPTCHA e os desafios silenciosos só podem ser executados quando os navegadores estão acessando endpoints HTTPS. Os clientes do navegador devem estar sendo executados em contextos seguros para adquirir tokens. 
**nota**  
São cobradas taxas adicionais quando você usa a ação de regra CAPTCHA ou Challenge em uma de suas regras ou como uma substituição de ação de regra em um grupo de regras. Para obter mais informações, consulte [AWS WAF Preço](https://aws.amazon.com/waf/pricing/).

  Essas ações de regra podem ser terminais ou não, dependendo do estado do token na solicitação: 
  + **Não encerramento para token válido e não expirado — Se o token** for válido e não expirado de acordo com o CAPTCHA configurado ou o tempo de imunidade de desafio, AWS WAF tratará a solicitação de forma semelhante à ação. Count AWS WAF continua inspecionando a solicitação da web com base nas regras restantes no pacote de proteção (Web ACL). Semelhante à configuração de Count, nas regras que define, você pode, opcionalmente, configurar essas ações com cabeçalhos personalizados para inserir na solicitação e adicionar rótulos aos quais outras regras possam corresponder. 
  + ** AWS WAF Encerramento com solicitação bloqueada de token inválido ou expirado** — Se o token for inválido ou a data e hora indicada expirar, encerra a inspeção da solicitação da web e bloqueia a solicitação, semelhante à ação. Block AWS WAF em seguida, responde ao cliente com um código de resposta personalizado. PoisCAPTCHA, se o conteúdo da solicitação indicar que o navegador do cliente pode lidar com isso, AWS WAF envia um quebra-cabeça CAPTCHA em um JavaScript intersticial, projetado para distinguir clientes humanos de bots. Para a Challenge ação, AWS WAF envia um JavaScript intersticial com um desafio silencioso projetado para distinguir navegadores normais de sessões que estão sendo executadas por bots. 

  Para obter informações adicionais, consulte [CAPTCHAe Challenge em AWS WAF](waf-captcha-and-challenge.md).

Para obter informações sobre como personalizar solicitações e respostas, consulte [Solicitações e respostas personalizadas da web em AWS WAF](waf-custom-request-response.md).

Para obter informações sobre como adicionar rótulos às solicitações correspondentes, consulte [Rotulagem de solicitações da Web em AWS WAF](waf-labels.md).

Para obter mais informações sobre como o pacote de proteção (ACL da Web) e as configurações de regra interagem, consulte [Usando pacotes de proteção (web ACLs) com regras e grupos de regras no AWS WAF](web-acl-processing.md). 

# Usando declarações de regras em AWS WAF
<a name="waf-rule-statements"></a>

Esta seção explica como as instruções de regras funcionam.

As declarações de regras são parte de uma regra que informa AWS WAF como inspecionar uma solicitação da web. Quando AWS WAF encontramos os critérios de inspeção em uma solicitação da web, dizemos que a solicitação da web corresponde à declaração. Cada instrução de regra especifica o que procurar e como, de acordo com o tipo de instrução. 

Cada regra em AWS WAF tem uma única declaração de regra de nível superior, que pode conter outras declarações. As instruções de regras podem ser muito simples. Por exemplo, você pode ter uma instrução que forneça um conjunto de países de origem para inspecionar suas solicitações da Web ou você pode ter uma instrução de regra em um pacote de proteção (ACL da Web) que apenas referencie um grupo de regras. As instruções de regras também podem ser muito complexas. Por exemplo, você pode ter uma instrução que combina muitas outras instruções com instruções lógicas AND, OR, and NOT. 

Para a maioria das regras, você pode adicionar AWS WAF rótulos personalizados às solicitações correspondentes. As regras nos grupos de regras de regras AWS gerenciadas adicionam rótulos às solicitações correspondentes. Os rótulos que uma regra adiciona fornecem informações sobre a solicitação às regras que são avaliadas posteriormente no pacote de proteção (Web ACL) e também em AWS WAF registros e métricas. Para obter informações sobre rotulagem, consulte [Rotulagem de solicitações da Web em AWS WAF](waf-labels.md) e [Instrução de regra de correspondência de rótulo](waf-rule-statement-type-label-match.md).

**Como aninhar instruções de regra**  
AWS WAF suporta aninhamento para muitas declarações de regras, mas não para todas. Por exemplo, você não pode aninhar uma instrução de grupo de regras dentro de outra instrução. Você precisa usar o aninhamento em alguns cenários, como instruções de redução de escopo e instruções lógicas. As listas de instruções de regras e os detalhes das regras a seguir descrevem os recursos e requisitos de aninhamento de cada categoria e regra.

O editor visual de regras no console oferece suporte a apenas um nível de aninhamento para instruções de regras. Por exemplo, você pode aninhar muitos tipos de instruções dentro de uma regra lógica AND ou OR, mas não pode aninhar outra regra AND ou OR, porque isso requer um segundo nível de aninhamento. Para implementar vários níveis de aninhamento, forneça a definição da regra em JSON, seja por meio do editor de regras JSON no console ou por meio do. APIs 

**Topics**
+ [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md)
+ [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md)
+ [Referenciando entidades reutilizáveis em AWS WAF](waf-rule-statement-reusable-entities.md)

# Ajustando as configurações da declaração de regra em AWS WAF
<a name="waf-rule-statement-fields"></a>

Esta seção descreve as configurações que você pode especificar para instruções de regra que inspeciona um componente da solicitação da Web. Para obter informações sobre o uso, consulte as instruções de regras individuais em [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md). 

Um subconjunto desses componentes de solicitação da Web também pode ser usado em regras baseadas em intervalos, como chaves personalizadas de agregação de solicitações. Para mais informações, consulte [Agregando regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md).

Para as configurações do componente de solicitação, você especifica o próprio tipo de componente e quaisquer opções adicionais, dependendo do tipo de componente. Por exemplo, ao inspecionar um tipo de componente que contém texto, você pode aplicar transformações de texto nele antes de inspecioná-lo. 

**nota**  
Salvo indicação em contrário, se uma solicitação da Web não tiver o componente de solicitação especificado na declaração da regra, a solicitação será AWS WAF avaliada como não correspondendo aos critérios da regra.

**Contents**
+ [Solicitar componentes em AWS WAF](waf-rule-statement-fields-list.md)
  + [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [Cabeçalho único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [Todos os cabeçalhos](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [Ordem de cabeçalho](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [Cookies](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [Fragmento de URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [Caminho do URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 impressão digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 impressão digital](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [String de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [Parâmetro de consulta única](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [Todos os parâmetros da consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [Corpo](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [Corpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [Usando endereços IP encaminhados em AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [Inspecionando pseudo-cabeçalhos HTTP/2 em AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md)

# Solicitar componentes em AWS WAF
<a name="waf-rule-statement-fields-list"></a>

Esta seção descreve os componentes da solicitação da web que você pode especificar para inspeção. Você especifica o componente de solicitação para instruções de regra de correspondência que procuram padrões dentro da solicitação da web. Esses tipos de instruções incluem correspondência de string, padrão regex, ataque de injeção de SQL e instruções de restrição de tamanho. Para obter informações sobre como usar essas configurações de componentes de solicitação, consulte as instruções de regras individuais em [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md)

Salvo indicação em contrário, se uma solicitação da Web não tiver o componente de solicitação especificado na declaração da regra, a solicitação será AWS WAF avaliada como não correspondendo aos critérios da regra.

**nota**  
Especifique um único componente de solicitação para cada instrução de regra que o exija. Para inspecionar mais de um componente de uma solicitação, crie uma instrução de regra para cada componente. 

A documentação do AWS WAF console e da API fornece orientação para as configurações do componente de solicitação nos seguintes locais: 
+ **Construtor de regras** no console: nas configurações de **Instrução** de um tipo de regra comum, escolha o componente que você deseja inspecionar na caixa de diálogo **Inspecionar** em **Solicitar componentes**.
+ **Conteúdo da instrução da API**: `FieldToMatch`

O restante desta seção descreve as opções da parte da solicitação da web a inspecionar. 

**Topics**
+ [Método HTTP](#waf-rule-statement-request-component-http-method)
+ [Cabeçalho único](#waf-rule-statement-request-component-single-header)
+ [Todos os cabeçalhos](#waf-rule-statement-request-component-headers)
+ [Ordem de cabeçalho](#waf-rule-statement-request-component-header-order)
+ [Cookies](#waf-rule-statement-request-component-cookies)
+ [Fragmento de URI](#waf-rule-statement-request-component-uri-fragment)
+ [Caminho do URI](#waf-rule-statement-request-component-uri-path)
+ [JA3 impressão digital](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 impressão digital](#waf-rule-statement-request-component-ja4-fingerprint)
+ [String de consulta](#waf-rule-statement-request-component-query-string)
+ [Parâmetro de consulta única](#waf-rule-statement-request-component-single-query-param)
+ [Todos os parâmetros da consulta](#waf-rule-statement-request-component-all-query-params)
+ [Corpo](#waf-rule-statement-request-component-body)
+ [Corpo JSON](#waf-rule-statement-request-component-json-body)

## Método HTTP
<a name="waf-rule-statement-request-component-http-method"></a>

Inspectiona o método HTTP para a solicitação. O método HTTP indica o tipo de operação que a solicitação da Web está solicitando que seu recurso protegido realize, como `POST` ou `GET`. 

## Cabeçalho único
<a name="waf-rule-statement-request-component-single-header"></a>

Inspeciona um único cabeçalho nomeado na solicitação. 

Para essa opção, você especifica o nome do cabeçalho, por exemplo, `User-Agent` ou `Referer`. A correspondência de string para o nome não diferencia maiúsculas de minúsculas e é executada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra.

## Todos os cabeçalhos
<a name="waf-rule-statement-request-component-headers"></a>

Inspeciona todos os cabeçalhos da solicitação, incluindo cookies. É possível aplicar um filtro para inspecionar um subconjunto de todos os cabeçalhos. 

Para essa opção, você fornece as seguintes especificações: 
+ **Padrões de correspondência** — O filtro a ser usado para obter um subconjunto de cabeçalhos para inspeção. AWS WAF procura esses padrões nas teclas dos cabeçalhos. 

  A configuração de padrões de correspondência pode ser uma das seguintes: 
  + **Tudo**: corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cabeçalhos. 
  + **Cabeçalhos excluídos**: inspeciona apenas os cabeçalhos cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas. A correspondência é realizada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra de correspondência.
  + **Cabeçalhos incluídos**: inspeciona apenas os cabeçalhos que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave não diferencia maiúsculas de minúsculas. A correspondência é realizada após cortar os espaços à esquerda e à direita do cabeçalho da solicitação e da regra de correspondência.
+ **Escopo correspondente** — As partes dos cabeçalhos que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar **chaves**, **valores** ou **tudo** para inspecionar as chaves e os valores em busca de uma correspondência. 

  **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cabeçalho maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Ordem de cabeçalho
<a name="waf-rule-statement-request-component-header-order"></a>

Inspecione uma string contendo a lista dos nomes dos cabeçalhos da solicitação, ordenados conforme aparecem na solicitação da web que AWS WAF recebe para inspeção. AWS WAF gera a string e, em seguida, a usa como campo para combinar o componente em sua inspeção. AWS WAF separa os nomes dos cabeçalhos na string com dois pontos e sem espaços adicionados, por exemplo. `host:user-agent:accept:authorization:referer`

Para essa opção, você fornece as seguintes especificações: 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cabeçalho mais numerosos ou maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cabeçalhos da solicitação e, no máximo, os primeiros 200 cabeçalhos. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção dos cabeçalhos que estão disponíveis ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Cookies
<a name="waf-rule-statement-request-component-cookies"></a>

Inspeciona todos os cookies de solicitação. É possível aplicar um filtro para inspecionar um subconjunto de todos os cookies. 

Para essa opção, você fornece as seguintes especificações: 
+ **Padrões de correspondência**: o filtro a ser usado para obter um subconjunto de cookies para inspeção. O AWS WAF procura esses padrões nas chaves dos cookies. 

  A configuração de padrões de correspondência pode ser uma das seguintes: 
  + **Tudo**: corresponder todas as teclas. Avalie os critérios de inspeção de regras para todos os cookies. 
  + **Cookies excluídos**: inspeciona apenas os cookies cujas chaves não correspondem a nenhuma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata. 
  + **Cookies incluídos**: inspeciona apenas os cookies que têm uma chave que corresponda a uma das strings especificadas aqui. A correspondência de string para uma chave diferencia maiúsculas de minúsculas e deve ser exata. 
+ **Escopo da correspondência** — As partes dos cookies que AWS WAF devem ser inspecionadas de acordo com os critérios de inspeção da regra. Você pode especificar **chaves**, **valores** ou **tudo** para chaves e valores. 

  **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
+ **Manipulação de tamanho grande** — Como AWS WAF lidar com solicitações que têm dados de cookies maiores do que os que AWS WAF podem ser inspecionados. AWS WAF pode inspecionar no máximo os primeiros 8 KB (8.192 bytes) dos cookies de solicitação e no máximo os primeiros 200 cookies. O conteúdo está disponível para inspeção AWS WAF até o primeiro limite atingido. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md).

## Fragmento de URI
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**nota**  
A inspeção de fragmentos de Uri está disponível somente para CloudFront distribuições e balanceadores de carga de aplicativos.

Ela inspeciona parte de uma URL que vem depois do símbolo “\$1”, fornecendo informações adicionais sobre o recurso, por exemplo, \$1section2. Para saber mais, consulte [Identificador de recurso uniforme (URI): sintaxe genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Se você não usar uma transformação de texto com essa opção, AWS WAF não normaliza o fragmento do URI e o inspeciona exatamente como o recebe do cliente na solicitação. Para obter mais informações sobre transformações de texto, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

**Requisitos de instrução de regras**  
Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web se o URI estiver ausente, o fragmento ou o serviço associado não for Application Load Balancer ou. CloudFront Se você optar por corresponder, AWS WAF tratará a solicitação como correspondente à declaração da regra e aplicará a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

## Caminho do URI
<a name="waf-rule-statement-request-component-uri-path"></a>

Inspeciona a parte de um URL que identifica um recurso, como `/images/daily-ad.jpg`. Para obter mais informações, consulte [Identificador de recurso uniforme (URI): sintaxe genérica](https://tools.ietf.org/html/rfc3986#section-3). 

Se você não usa uma transformação de texto com essa opção, AWS WAF não normaliza o URI e o inspeciona exatamente como o recebe do cliente na solicitação. Para obter mais informações sobre transformações de texto, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

## JA3 impressão digital
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

Inspeciona a JA3 impressão digital da solicitação. 

**nota**  
JA3 a inspeção de impressão digital está disponível somente para CloudFront distribuições da Amazon e Application Load Balancers.

A JA3 impressão digital é um hash de 32 caracteres derivado do TLS Client Hello de uma solicitação recebida. Essa impressão digital serve como um identificador exclusivo para a configuração TLS do cliente. AWS WAF calcula e registra essa impressão digital para cada solicitação que tenha informações suficientes do TLS Client Hello para o cálculo. Quase todas as solicitações da web incluem essas informações.

**Como obter a JA3 impressão digital de um cliente**  
Você pode obter a JA3 impressão digital das solicitações de um cliente nos registros do pacote de proteção (Web ACL). Se AWS WAF for capaz de calcular a impressão digital, ela a inclui nos registros. Para obter informações sobre os campos de log, consulte [Campos do log para tráfego do pacote de proteção (ACL da Web)](logging-fields.md).

**Requisitos de instrução de regras**  
Você pode inspecionar a JA3 impressão digital somente dentro de uma instrução de correspondência de sequência de caracteres definida para corresponder exatamente à sequência de caracteres fornecida. Forneça a string de JA3 impressão digital dos registros em sua especificação de instrução string match para corresponder a quaisquer solicitações futuras que tenham a mesma configuração de TLS. Para obter mais informações sobre instruções de regra de correspondência de string, consulte [Instrução de regra de correspondência de string](waf-rule-statement-type-string-match.md).

Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web AWS WAF se não conseguir calcular a JA3 impressão digital. Se você optar pela correspondência, AWS WAF trata a solicitação como correspondente à instrução da regra e aplica a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

Para usar essa opção de correspondência, você deve registrar em log o tráfego do pacote de proteção (ACL da Web). Para mais informações, consulte [Registrando o tráfego do pacote de AWS WAF proteção (Web ACL)](logging.md).

## JA4 impressão digital
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

Inspeciona a JA4 impressão digital da solicitação. 

**nota**  
JA4 a inspeção de impressão digital está disponível somente para CloudFront distribuições da Amazon e Application Load Balancers.

A JA4 impressão digital é um hash de 36 caracteres derivado do TLS Client Hello de uma solicitação recebida. Essa impressão digital serve como um identificador exclusivo para a configuração TLS do cliente. JA4 a impressão digital é uma extensão da JA3 impressão digital que pode resultar em menos impressões digitais exclusivas para alguns navegadores. AWS WAF calcula e registra essa impressão digital para cada solicitação que tenha informações suficientes do TLS Client Hello para o cálculo. Quase todas as solicitações da web incluem essas informações.

**Como obter a JA4 impressão digital de um cliente**  
Você pode obter a JA4 impressão digital das solicitações de um cliente nos registros do pacote de proteção (Web ACL). Se AWS WAF for capaz de calcular a impressão digital, ela a inclui nos registros. Para obter informações sobre os campos de log, consulte [Campos do log para tráfego do pacote de proteção (ACL da Web)](logging-fields.md).

**Requisitos de instrução de regras**  
Você pode inspecionar a JA4 impressão digital somente dentro de uma instrução de correspondência de sequência de caracteres definida para corresponder exatamente à sequência de caracteres fornecida. Forneça a string de JA4 impressão digital dos registros em sua especificação de instrução string match para corresponder a quaisquer solicitações futuras que tenham a mesma configuração de TLS. Para obter mais informações sobre instruções de regra de correspondência de string, consulte [Instrução de regra de correspondência de string](waf-rule-statement-type-string-match.md).

Você deve fornecer um comportamento de fallback para essa instrução de regra. O comportamento de fallback é o status de correspondência que você deseja atribuir AWS WAF à solicitação da web AWS WAF se não conseguir calcular a JA4 impressão digital. Se você optar pela correspondência, AWS WAF trata a solicitação como correspondente à instrução da regra e aplica a ação da regra à solicitação. Se você optar por não corresponder, AWS WAF tratará a solicitação como não correspondente à declaração da regra.

Para usar essa opção de correspondência, você deve registrar em log o tráfego do pacote de proteção (ACL da Web). Para mais informações, consulte [Registrando o tráfego do pacote de AWS WAF proteção (Web ACL)](logging.md).

## String de consulta
<a name="waf-rule-statement-request-component-query-string"></a>

Inspeciona parte de um URL exibida após um caractere `?`, se houver.

**nota**  
Para condições de correspondência de cross-site scripting, recomendamos que você escolha **Todos os parâmetros de consulta** em vez de **String de consulta**. A escolha de **Todos os parâmetros de consulta** adiciona 10% WCUs ao custo base.

## Parâmetro de consulta única
<a name="waf-rule-statement-request-component-single-query-param"></a>

Inspeciona um único parâmetro de consulta que você definiu como parte da cadeia de caracteres de consulta. AWS WAF inspeciona o valor do parâmetro que você especifica. 

Para essa opção, você também especifica um **Argumento de consulta**. Por exemplo, se o URL for `www.xyz.com?UserName=abc&SalesRegion=seattle`, você pode especificar `UserName` ou `SalesRegion` para o argumento da consulta. O tamanho máximo para o nome do argumento é de 30 caracteres. O nome não diferencia maiúsculas e minúsculas, portanto, se você especificar `UserName`, o AWS WAF combina a todas as variações de `UserName`, incluindo `username` e `UsERName`.

Se a string de consulta contiver mais de uma instância do argumento de consulta que você especificou, AWS WAF inspeciona todos os valores em busca de uma correspondência usando a OR lógica. Por exemplo, no URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle`, o AWS WAF avalia o nome que você especificou em `boston` e `seattle`. Se qualquer um for uma correspondência, a inspeção é uma correspondência.

## Todos os parâmetros da consulta
<a name="waf-rule-statement-request-component-all-query-params"></a>

Inspeciona todos os parâmetros de consulta na solicitação. Isso é semelhante à escolha do componente de parâmetro de consulta único, mas AWS WAF inspeciona os valores de todos os argumentos na string de consulta. Por exemplo, se o URL for `www.xyz.com?UserName=abc&SalesRegion=seattle`, o AWS WAF dispara uma correspondência se o valor `UserName` ou `SalesRegion` corresponder aos critérios de inspeção. 

A escolha dessa opção adiciona 10% WCUs ao custo base.

## Corpo
<a name="waf-rule-statement-request-component-body"></a>

Inspeciona o corpo da solicitação, avaliado como texto simples. Você também pode avaliar o corpo como JSON usando o tipo de conteúdo JSON. 

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário. 
+ No console, você seleciona isso na opção **Corpo** da **Opção de solicitação**, selecionando a opção **Tipo de conteúdo** **Texto simples**. 
+ Na API, na especificação da regra `FieldToMatch`, você especifica `Body` para inspecionar o corpo da solicitação como texto simples.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite em até 64 KB na configuração do pacote de proteção (web ACL). Para obter mais informações, consulte [Considerações para gerenciar a inspeção corporal em AWS WAF](web-acl-setting-body-inspection-limit.md).

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md). 

Você também pode avaliar o corpo como JSON analisado. Para obter mais informações, consulte a seção abaixo. 

## Corpo JSON
<a name="waf-rule-statement-request-component-json-body"></a>

Inspeciona o corpo da solicitação, avaliado como JSON. Você também pode avaliar o corpo como texto simples. 

O corpo da solicitação é a parte da solicitação que segue imediatamente os cabeçalhos da solicitação. Contém quaisquer dados adicionais necessários para a solicitação da Web, por exemplo, dados de um formulário. 
+ No console, você seleciona isso na opção **Corpo** da **Opção de solicitação**, selecionando a opção **Tipo de conteúdo** **JSON**. 
+ Na API, na especificação da regra `FieldToMatch`, você especifica `JsonBody`.

Para Application Load Balancer e AWS AppSync, AWS WAF pode inspecionar os primeiros 8 KB do corpo de uma solicitação. Pois CloudFront, o API Gateway, o Amazon Cognito, o App Runner e o Verified Access, por padrão, AWS WAF podem inspecionar os primeiros 16 KB e você pode aumentar o limite em até 64 KB na configuração do pacote de proteção (web ACL). Para obter mais informações, consulte [Considerações para gerenciar a inspeção corporal em AWS WAF](web-acl-setting-body-inspection-limit.md).

Você deve especificar o tratamento de tamanho grande para esse tipo de componente. O tratamento de tamanho grande define como AWS WAF lida com solicitações que têm dados corporais maiores do que os que AWS WAF podem ser inspecionados. Você pode optar por continuar a inspeção ou pular a inspeção e marcar a solicitação como compatível ou não com a regra. Para saber mais sobre como processar conteúdo de tamanho acima do limite, consulte [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md). 

Escolher essa opção dobra o custo WCUs base do extrato da partida. Por exemplo, se o custo base da declaração de correspondência for 5 WCUs sem análise JSON, usar a análise JSON dobra o custo para 10. WCUs 

Para essa opção, você fornece especificações adicionais, conforme descrito na seção a seguir.

**Como AWS WAF lida com a inspeção corporal JSON**  
Ao AWS WAF inspecionar o corpo da solicitação da web como JSON, ele executa etapas para analisar o corpo e extrair os elementos JSON para inspeção. AWS WAF executa essas etapas de acordo com suas opções de configuração. 

A seguir estão listadas as etapas que são AWS WAF executadas. 

1. **Analisar o conteúdo do corpo** — AWS WAF analisa o conteúdo do corpo da solicitação da web para extrair os elementos JSON para inspeção. AWS WAF faz o possível para analisar todo o conteúdo do corpo, mas a análise pode falhar em vários estados de erro no conteúdo. Os exemplos incluem caracteres inválidos, chaves duplicadas, truncamento e conteúdo cujo nó raiz não seja um objeto ou uma matriz. 

   A opção **Body parsing fallback behavior** determina o que AWS WAF acontece se ela falhar na análise completa do corpo JSON: 
   + **Nenhum (comportamento padrão)** - AWS WAF avalia o conteúdo somente até o ponto em que ele encontrou um erro de análise. 
   + **Avaliar como string** - inspecione o corpo como texto simples. AWS WAF aplica as transformações de texto e os critérios de inspeção que você definiu para a inspeção JSON à string do corpo do texto.
   + **Corresponder** - Trate a solicitação da web como correspondente à declaração da regra. AWS WAF aplica a ação da regra à solicitação.
   + **Sem correspondência**: tratar a solicitação da Web como não correspondente à instrução de regra.
**nota**  
Esse comportamento alternativo só é acionado quando AWS WAF encontra um erro ao analisar a string JSON. 

**A análise não valida totalmente o JSON**  
AWS WAF a análise não valida totalmente a string JSON de entrada, portanto, a análise pode ser bem-sucedida mesmo para JSON inválido.

   Por exemplo, AWS WAF analisa o seguinte JSON inválido sem erros: 
   + Vírgula ausente: `{"key1":"value1""key2":"value2"}`
   + Dois pontos ausentes: `{"key1":"value1","key2""value2"}`
   + Dois pontos extras: `{"key1"::"value1","key2""value2"}`

   Para casos como esses em que a análise é bem-sucedida, mas o resultado não é um JSON totalmente válido, o resultado das etapas subsequentes da avaliação pode variar. A extração pode perder alguns elementos ou a avaliação da regra pode ter resultados inesperados. Recomendamos que você valide o JSON recebido em seu aplicativo e trate o JSON inválido conforme necessário. 

1. **Extraia os elementos JSON** — AWS WAF identifica o subconjunto de elementos JSON a serem inspecionados de acordo com suas configurações: 
   + A opção **JSON match scope** especifica os tipos de elementos no JSON que AWS WAF devem ser inspecionados. 

     Você pode especificar **chaves**, **valores** ou **tudo** para chaves e valores. 

     **Tudo** não exige que uma correspondência seja encontrada nas chaves e que uma correspondência seja encontrada nos valores. Isso requer que uma correspondência seja encontrada nas chaves, nos valores ou nos dois. Para exigir uma correspondência nas chaves e nos valores, use uma instrução lógica `AND` para combinar duas regras de correspondência, uma que inspeciona as chaves e outra que inspeciona os valores. 
   + A opção **Conteúdo a ser inspecionado** especifica como filtrar o conjunto de elementos para o subconjunto que você deseja AWS WAF inspecionar. 

     É necessário especificar um dos seguintes:
     + **Conteúdo JSON completo**: avalia todos os elementos. 
     + **Somente elementos incluídos**: avalia somente os elementos cujos caminhos correspondem aos critérios do JSON Pointer fornecidos por você. Não use essa opção para indicar *todos* os caminhos no JSON. Em vez disso, use **Conteúdo JSON completo**. 

       Para obter informações sobre a sintaxe do JSON Pointer, consulte a documentação do Internet Engineering Task Force (IETF) [JavaScript Object Notation](https://tools.ietf.org/html/rfc6901) (JSON) Pointer. 

       Por exemplo, é possível fornecer o seguinte no console: 

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       Na API ou na CLI, você pode fornecer o seguinte: 

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   Por exemplo, digamos que a configuração **Conteúdo a ser inspecionado** seja **Somente elementos incluídos** e a configuração de elementos incluídos seja `/a/b`. 

   Para o seguinte exemplo de corpo JSON: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   Os conjuntos de elementos que AWS WAF inspecionariam cada configuração do **escopo de correspondência JSON** estão listados abaixo. Observe que a chave `b`, que faz parte do caminho dos elementos incluídos, não é avaliada.
   + **Todos**: `e`, `f,` e `g`.
   + **Chaves**: `e` e `f`.
   + **Valores**: `g`.

1. **Inspecione o conjunto de elementos JSON** — AWS WAF aplica todas as transformações de texto que você especificou aos elementos JSON extraídos e, em seguida, compara o conjunto de elementos resultante com os critérios de correspondência da declaração de regra. Esse é o mesmo comportamento de transformação e avaliação de outros componentes de solicitação da Web. Se algum dos elementos JSON extraídos corresponder, a solicitação da Web corresponderá à regra. 

# Usando endereços IP encaminhados em AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

Esta seção se aplica às instruções de regras que usam o endereço IP de uma solicitação da web. Por padrão, AWS WAF usa o endereço IP da origem da solicitação da web. No entanto, se uma solicitação da web passar por um ou mais proxies ou balanceadores de carga, a origem da solicitação da web conterá o endereço do último proxy, e não o endereço de origem do cliente. Nesse caso, o endereço do cliente de origem geralmente é encaminhado em outro cabeçalho HTTP. Esse cabeçalho normalmente é `X-Forwarded-For` (XFF), mas pode ser diferente. 

**Instruções de regra que usam endereços IP**  
As instruções de regra que usam endereços IP são as seguintes:
+ [Correspondência de conjunto de IPs](waf-rule-statement-type-ipset-match.md): inspeciona o endereço IP em busca de uma correspondência com os endereços definidos em um conjunto de IPs.
+ [Correspondência geográfica](waf-rule-statement-type-geo-match.md): usa o endereço IP para determinar o país e a região de origem e corresponde o país de origem com uma lista de países.
+ [Correspondência de ASN](waf-rule-statement-type-asn-match.md)- Usa o endereço IP para determinar o Número do Sistema Autônomo (ASN) e compara o ASN com uma lista de. ASNs
+ [Como usar instruções de regras baseadas em intervalos](waf-rule-statement-type-rate-based.md): pode agregar solicitações por seus endereços IP para garantir que nenhum endereço IP individual envie solicitações em intervalos muito altos. Você pode usar a agregação de endereços IP sozinha ou em combinação com outras chaves de agregação. 

Você pode AWS WAF instruir o uso de um endereço IP encaminhado para qualquer uma dessas declarações de regra, seja do `X-Forwarded-For` cabeçalho ou de outro cabeçalho HTTP, em vez de usar a origem da solicitação da web. Para obter detalhes sobre como fornecer as especificações, consulte a orientação para os tipos individuais de instrução de regra.

**nota**  
Se um cabeçalho estiver ausente, AWS WAF avalia qualquer declaração que use esse cabeçalho como “Sem correspondência”. Se você usar uma declaração NOT com um resultado “Sem correspondência”, AWS WAF converte a avaliação em “Corresponder”. Cabeçalhos ausentes não acionam o comportamento de fallback - somente valores de cabeçalho inválidos o fazem.

**Comportamento de fallback**  
Ao usar o endereço IP encaminhado, você indica o status de correspondência AWS WAF a ser atribuído à solicitação da web se a solicitação não tiver um endereço IP válido na posição especificada: 
+ **MATCH** - Trate a solicitação da web como correspondente à declaração da regra. AWS WAF aplica a ação da regra à solicitação.
+ **Sem correspondência**: tratar a solicitação da Web como não correspondente à instrução de regra. 

**Endereços IP usados no AWS WAF Bot Control**  
O grupo de regras gerenciadas do Bot Control verifica os bots usando os endereços IP de AWS WAF. Se você usa o Controle de Bots e verificou que os bots são roteados por meio de um proxy ou balanceador de carga, é necessário permitir explicitamente que eles usem uma regra personalizada. Por exemplo, você pode configurar uma regra personalizada de correspondência de conjuntos de IP que usa endereços IP encaminhados para detectar e permitir que seus bots sejam verificados. Você pode usar a regra para personalizar seu gerenciamento de bots de várias maneiras. Para obter informações e exemplos, consulte [AWS WAF Controle de bots](waf-bot-control.md). 

**Considerações gerais sobre o uso de endereços IP encaminhados**  
Antes de usar um endereço IP encaminhado, observe as seguintes advertências gerais: 
+ Um cabeçalho pode ser modificado por proxies ao longo do caminho, e os proxies podem tratar o cabeçalho de maneiras diferentes. 
+ Os invasores podem alterar o conteúdo do cabeçalho na tentativa de contornar as inspeções do AWS WAF . 
+ O endereço IP dentro do cabeçalho pode estar incorreto ou ser inválido.
+ O cabeçalho que você especifica pode não estar presente em uma solicitação.

**Considerações sobre o uso de endereços IP encaminhados com AWS WAF**  
A lista a seguir descreve os requisitos e as advertências para o uso de endereços IP encaminhados em: AWS WAF
+ Para qualquer regra única, você pode especificar um cabeçalho para o endereço IP encaminhado. A especificação do cabeçalho não diferencia maiúsculas de minúsculas.
+ Para instruções de regras baseadas em intervalos, nenhuma instrução de escopo aninhada herda a configuração de IP encaminhada. Especifique a configuração para cada instrução que usa um endereço IP encaminhado. 
+ Para correspondência geográfica, correspondência ASN e regras baseadas em taxas, AWS WAF usa o primeiro endereço no cabeçalho. Por exemplo, se um cabeçalho contiver `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF usos `10.1.1.1`
+ Para correspondência de conjunto de IP, você indica se deseja corresponder ao primeiro, ao último ou a qualquer endereço no cabeçalho. Se você especificar algum, AWS WAF inspeciona todos os endereços no cabeçalho em busca de uma correspondência, até 10 endereços. Se o cabeçalho contiver mais de 10 endereços, AWS WAF inspeciona os últimos 10. 
+ Os cabeçalhos que contêm vários endereços devem usar um separador de vírgula entre os endereços. Se uma solicitação usar um separador diferente de uma vírgula, o AWS WAF considerará os endereços IP no cabeçalho incorretos.
+ Se os endereços IP dentro do cabeçalho estiverem incorretos ou forem inválidos, o AWS WAF designa a solicitação da web como compatível ou não com a regra, de acordo com o comportamento de fallback especificado na configuração de IP encaminhado.
+ Se o cabeçalho que você especificar não estiver presente em uma solicitação, AWS WAF a regra não será aplicada à solicitação. Isso significa que AWS WAF não aplica a ação da regra e não aplica o comportamento alternativo.
+ Uma instrução de regra que usa um cabeçalho IP encaminhado para o endereço IP não usará o endereço IP informado pela origem da solicitação da web.

**Práticas recomendadas para usar endereços IP encaminhados com AWS WAF**  
Ao usar endereços IP encaminhados, siga as seguintes práticas recomendadas: 
+ Considere cuidadosamente todos os estados possíveis dos cabeçalhos de sua solicitação antes de ativar a configuração de IP encaminhado. Talvez seja necessário usar mais de uma regra para obter o comportamento desejado.
+ Para inspecionar vários cabeçalhos de IP encaminhados ou inspecionar a origem da solicitação da web e um cabeçalho de IP encaminhado, use uma regra para cada fonte de endereço IP. 
+ Para bloquear solicitações da web que tenham um cabeçalho inválido, defina a ação de regra para bloquear e defina o comportamento de fallback para que a configuração de IP encaminhado corresponda. 

**Exemplo de JSON para endereços IP encaminhados**  
A seguinte instrução de correspondência geográfica corresponde somente se o cabeçalho `X-Forwarded-For` contiver um IP cujo país de origem seja `US`: 

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

A seguinte regra baseada em intervalos agrega solicitações com base no primeiro IP no cabeçalho `X-Forwarded-For`. A regra conta somente as solicitações que correspondem à instrução de correspondência geográfica aninhada e bloqueia somente as solicitações que correspondem à instrução de correspondência geográfica. A instrução de correspondência geográfica aninhada também usa o cabeçalho `X-Forwarded-For` para determinar se o endereço IP indica um país de origem de `US`. Em caso afirmativo, ou se o cabeçalho estiver presente, mas malformado, a instrução de correspondência geográfica retornará uma correspondência. 

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

# Inspecionando pseudo-cabeçalhos HTTP/2 em AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

Esta seção explica como você pode usar AWS WAF para inspecionar pseudo-cabeçalhos HTTP/2.

 AWS Os recursos protegidos que oferecem suporte ao tráfego HTTP/2 não encaminham pseudocabeçalhos HTTP/2 AWS WAF para inspeção, mas fornecem conteúdo de pseudo-cabeçalhos em componentes de solicitação da web que inspecionam. AWS WAF 

Você pode usar AWS WAF para inspecionar somente os pseudo-cabeçalhos listados na tabela a seguir. 


**Conteúdo do pseudocabeçalho HTTP/2 mapeado para componentes de solicitação da web**  

| Pseudocabeçalho HTTP/2 | Componente de solicitação da web para inspecionar | Documentação | 
| --- | --- | --- | 
|  `:method`  |  Método HTTP   |  [Método HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  `Host`Cabeçalho   |  [Cabeçalho único](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [Todos os cabeçalhos](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  Caminho do URI `:path`  | Caminho do URI  | [Caminho do URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path` query  |  String de consulta  |  [String de consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [Parâmetro de consulta única](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [Todos os parâmetros da consulta](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# Usando transformações de texto em AWS WAF
<a name="waf-rule-statement-transformation"></a>

Esta seção explica como fornecer transformações para AWS WAF serem aplicadas antes de inspecionar a solicitação.

Nas instruções que buscam padrões ou definem restrições, você pode fornecer transformações para serem aplicadas antes de inspecionar AWS WAF a solicitação. A transformação reformata uma solicitação da Web para eliminar algumas das formatações incomuns que os invasores usam em uma tentativa de contornar o AWS WAF. 

Quando você usa isso com a seleção do componente de solicitação de corpo JSON, o AWS WAF aplica suas transformações após analisar e extrair os elementos a serem inspecionados do JSON. Para saber mais, consulte [Corpo JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body).

Se você fornecer mais de uma transformação, também definirá a ordem em que o AWS WAF deve aplicá-las. 

**WCUs**— Cada transformação de texto é 10WCUs.

A documentação do AWS WAF console e da API também fornece orientação para essas configurações nos seguintes locais: 
+ **Criador de regras** no console: **Transformação de texto**. Essa opção está disponível quando você usa componentes de solicitação. 
+ **Conteúdo da instrução da API**: `TextTransformations`Opções para transformações de texto

Cada listagem de transformação mostra as especificações do console e da API seguidas pela descrição.

Base64 decode – `BASE64_DECODE`  
AWS WAF decodifica uma string codificada em Base64.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF decodifica uma string codificada em Base64, mas usa uma implementação indulgente que ignora caracteres que não são válidos. 

Command line – `CMD_LINE`  
Esta opção mitiga situações em que os atacantes podem estar injetando um comando de linha de comando do sistema operacional e estão usando formatação incomum para disfarçar todo o comando ou parte dele.   
Use essa opção para executar as seguintes transformações:  
+ Excluir os seguintes caracteres: `\ " ' ^`
+ Excluir espaços antes os seguintes caracteres: `/ (`
+ Substituir os seguintes caracteres por um espaço: `, ;`
+ Substituir vários espaços por um espaço
+ Converter as letras maiúsculas, `A-Z`, em minúsculas, `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF comprime o espaço em branco substituindo vários espaços por um espaço e substituindo os seguintes caracteres por um caractere de espaço (ASCII 32):  
+ Quebra de página (ASCII 12)
+ Tabulação (ASCII 9)
+ Nova linha (ASCII 10)
+ Retorno de carro (ASCII 13)
+ Tabulação vertical (ASCII 11)
+ Espaço rígido (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF decodifica caracteres que foram codificados usando regras de escape CSS 2.x. `syndata.html#characters` Essa função utiliza até dois bytes no processo de decodificação e, portanto, pode ajudar a descobrir caracteres ASCII codificados com CSS que normalmente não seriam codificados. Ela também é útil para combater a evasão, que é uma combinação de barra invertida e caracteres não hexadecimais. Por exemplo, `ja\vascript` para `javascript`.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF decodifica as seguintes sequências de escape ANSI C:`\a`,,`\b`,`\f`,,`\n`,`\r`,`\t`, `\v` `\\``\?`, `\xHH` (hexadecimal) `\'``\"`, (octal). `\0OOO` As codificações que não são válidas permanecem na saída.

Hex decode – `HEX_DECODE`  
AWS WAF decodifica uma sequência de caracteres hexadecimais em um binário.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF substitui os caracteres representados em formato hexadecimal `&#xhhhh;` ou decimal pelos caracteres correspondentes. `&#nnnn;`  
AWS WAF substitui os seguintes caracteres codificados em HTML por caracteres não codificados. Essa lista usa codificação HTML em minúsculas, mas o tratamento não diferencia maiúsculas de minúsculas, por exemplo, `&QuOt;` e `&quot;` são tratados da mesma forma.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF decodifica sequências de JavaScript escape. Se um código `\uHHHH` estiver no intervalo de código ASCII de largura total de `FF01-FF5E`, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado, causando uma possível perda de informações.

Lowercase – `LOWERCASE`  
AWS WAF converte letras maiúsculas (A-Z) em minúsculas (a-z).

MD5 – `MD5`  
AWS WAF calcula um MD5 hash a partir dos dados na entrada. O hash calculado está em um formato binário bruto.

None – `NONE`  
AWS WAF inspeciona a solicitação da web conforme recebida, sem nenhuma transformação de texto. 

Normalize path – `NORMALIZE_PATH`  
AWS WAF normaliza a string de entrada removendo várias barras, autorreferências de diretório e referências anteriores de diretório que não estão no início da entrada.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF converte caracteres de barra invertida em barras progressivas e, em seguida, processa a string resultante usando a transformação. `NORMALIZE_PATH`

Remove nulls – `REMOVE_NULLS`  
AWS WAF remove todos os `NULL` bytes da entrada. 

Replace comments – `REPLACE_COMMENTS`  
AWS WAF substitui cada ocorrência de um comentário no estilo C (/\$1... \$1/) por um único espaço. Ele não comprime várias ocorrências consecutivas. Substitui comentários sem término por um espaço (ASCII 0x20). Isso não altera o encerramento independente de um comentário (\$1/).

Replace nulls – `REPLACE_NULLS`  
AWS WAF substitui cada `NULL` byte na entrada pelo caractere de espaço (ASCII 0x20).

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF decodifica dados hexadecimais SQL. Por exemplo, AWS WAF decodifica (`0x414243`) para (`ABC`).

URL decode – `URL_DECODE`  
AWS WAF decodifica um valor codificado em URL.

URL decode Unicode – `URL_DECODE_UNI`  
Como `URL_DECODE`, mas com suporte para codificação `%u` específica da Microsoft. Se o código estiver no intervalo de código ASCII de largura total de `FF01-FF5E`, o byte maior será utilizado para detectar e ajustar o byte menor. Caso contrário, somente o byte menor será utilizado, e o byte maior será zerado.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF converte todas as sequências de caracteres UTF-8 em Unicode. Isso ajuda a normalizar a entrada e a minimizar falsos positivos e falso-negativos para idiomas diferentes do inglês.

# Usando declarações de escopo reduzido em AWS WAF
<a name="waf-rule-scope-down-statements"></a>

Esta seção explica o que é uma instrução de escopo reduzido e como ela funciona.

Uma instrução de redução de escopo é uma instrução de regra aninhável que você adiciona dentro de uma instrução de grupo de regras gerenciadas ou em uma instrução baseada em intervalo para restringir o conjunto de solicitações que a regra que a contém avalia. A regra de contenção avalia apenas as solicitações que correspondem primeiro à instrução de redução de escopo. 
+ **Declaração de grupo de regras gerenciadas** — Se você adicionar uma instrução de escopo reduzido a uma instrução de grupo de regras gerenciadas, AWS WAF avaliará qualquer solicitação que não corresponda à instrução de escopo inferior como não correspondente ao grupo de regras. As solicitações apenas serão avaliadas pelo grupo de regras se corresponderem à instrução de redução de escopo. Para grupos de regras gerenciadas com preços baseados no número de solicitações avaliadas, as instruções de redução de escopo podem ajudar a conter os custos. 

  Para saber mais sobre instruções de grupos de regras gerenciadas, consulte [Usando declarações de grupos de regras gerenciadas em AWS WAF](waf-rule-statement-type-managed-rule-group.md).
+ **Instrução de regra baseada em intervalos**: uma instrução de regra baseada em intervalos sem uma instrução de redução de escopo limita todas as solicitações que a regra avalia. Se você quiser controlar somente o intervalo de uma categoria específica de solicitações, adicione uma instrução de redução de escopo à regra baseada em intervalos. Por exemplo, para acompanhar e controlar somente a taxa de solicitações de uma área geográfica específica, você pode especificar essa área geográfica em uma instrução de correspondência geográfica e adicioná-la à sua regra baseada em intervalos como a instrução de redução de escopo. 

  Para saber mais sobre regras baseadas em intervalos, consulte [Usando declarações de regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based.md).

É possível usar qualquer regra aninhável em uma instrução de redução de escopo. Para ver as instruções disponíveis, consulte [Usando declarações de regras de correspondência em AWS WAF](waf-rule-statements-match.md) e [Usando declarações de regras lógicas em AWS WAF](waf-rule-statements-logical.md). As WCUs instruções for a scope-down são as WCUs necessárias para a declaração de regra que você define nela. Não há custos adicionais pelo uso de uma instrução de redução de escopo.

Você pode configurar uma instrução de redução de escopo da mesma forma que você faz quando usa a instrução em uma regra regular. Por exemplo, você pode aplicar transformações de texto a um componente de solicitação da web que está inspecionando e especificar um endereço IP encaminhado para usar como endereço IP. Essas configurações se aplicam somente à instrução de redução de escopo não são herdadas pelo grupo de regras gerenciadas que o contém ou pela instrução de regra baseada em intervalos. 

Por exemplo, se você aplicar transformações de texto a uma string de consulta em sua instrução de redução de escopo, a instrução de redução de escopo inspeciona a string de consulta depois de aplicar as transformações. Se a solicitação corresponder aos critérios da instrução de redução de escopo, o AWS WAF passará a solicitação da web para a regra que a contém em seu estado original, sem as transformações da instrução de redução de escopo. A regra que contém a instrução de redução de escopo pode aplicar suas próprias transformações de texto, mas não herda nenhuma da instrução de redução de escopo. 

Você não pode usar uma instrução de redução de escopo para especificar qualquer configuração de inspeção de solicitação para a instrução de regra que a contém. Você não pode usar uma instrução de redução de escopo como pré-processador de solicitações da web para a instrução de regra que a contém. A única função de uma instrução de redução de escopo é determinar quais solicitações são passadas para a instrução de regra que a contém para inspeção. 

# Referenciando entidades reutilizáveis em AWS WAF
<a name="waf-rule-statement-reusable-entities"></a>

Esta seção explica como as entidades reutilizáveis funcionam no AWS WAF.

Algumas regras usam entidades que são reutilizáveis e gerenciadas fora da sua webACLs, seja por você ou por um AWS Marketplace vendedor. AWS Quando a entidade reutilizável é atualizada, o AWS WAF propaga a atualização para sua regra. Por exemplo, se você usar um grupo de regras AWS gerenciadas em um pacote de proteção (web ACL), ao AWS atualizar o grupo de regras, AWS propagará a alteração para sua ACL da web para atualizar seu comportamento. Se você usar uma instrução de conjunto de IP em uma regra, ao atualizar o conjunto, a alteração será AWS WAF propagada para todas as regras que fazem referência a ela. Portanto, todos os pacotes de proteção (web ACLs) que usam essas regras são mantidos up-to-date com suas alterações. 

A seguir estão as entidades reutilizáveis que você pode usar em uma instrução de regra. 
+ **Conjuntos de IPs**: Você cria e gerencia seus próprios conjuntos de IPs. No console, você pode acessá-los a partir do painel de navegação. Para obter informações sobre como gerenciar conjuntos de IPs, consulte [Conjuntos de IP e conjuntos de padrões regex em AWS WAF](waf-referenced-set-managing.md). 
+ **Conjuntos de correspondências regex**: você cria e gerencia seus próprios conjuntos de correspondências regex. No console, você pode acessá-los a partir do painel de navegação. Para obter informações sobre como gerenciar conjuntos de padrões de regex, consulte [Conjuntos de IP e conjuntos de padrões regex em AWS WAF](waf-referenced-set-managing.md). 
+ **AWS Grupos de regras gerenciadas** — AWS gerencia esses grupos de regras. No console, eles estão disponíveis para seu uso quando você adiciona um grupo de regras gerenciadas ao pacote de proteção (ACL da Web). Para saber mais sobre essas ferramentas, consulte [AWS Lista de grupos de regras de regras gerenciadas](aws-managed-rule-groups-list.md).
+ **AWS Marketplace grupos de regras gerenciados** — AWS Marketplace os vendedores gerenciam esses grupos de regras e você pode se inscrever neles para usá-los. Para gerenciar suas assinaturas, no painel de navegação do console, escolha **AWS Marketplace**. Os grupos de regras AWS Marketplace gerenciadas são listados quando você adiciona um grupo de regras gerenciadas ao seu pacote de proteção (web ACL). Para grupos de regras nos quais você ainda não se inscreveu, você também pode encontrar um link AWS Marketplace nessa página. Para obter mais informações sobre grupos de regras gerenciados pelo AWS Marketplace vendedor, consulte[AWS Marketplace grupos de regras](marketplace-rule-groups.md).
+ **Seus próprios grupos de regras**: você gerencia seus próprios grupos de regras, geralmente quando você precisa de algum comportamento que não esteja disponível por meio dos grupos de regras gerenciados. No console, você pode acessá-los a partir do painel de navegação. Para saber mais, consulte [Gerenciar seus próprios grupos de regras](waf-user-created-rule-groups.md).

**Como excluir um conjunto referenciado ou grupo de regras**  
Quando você exclui uma entidade referenciada, AWS WAF verifica se ela está sendo usada atualmente em um pacote de proteção (Web ACL). Se AWS WAF descobrir que está em uso, ele avisa você. AWS WAF quase sempre é capaz de determinar se uma entidade está sendo referenciada por um pacote de proteção (web ACL). No entanto, em casos raros, pode não ser possível fazer isso. Se você precisar ter certeza de que a entidade que você deseja excluir não está em uso, verifique-a na sua web ACLs antes de excluí-la.

# Usando declarações de regras de correspondência em AWS WAF
<a name="waf-rule-statements-match"></a>

Esta seção explica o que é uma instrução de correspondência e como ela funciona.

As instruções de regra de correspondência comparam a solicitação da Web ou sua origem com as condições fornecidas por você. Para muitas declarações desse tipo, AWS WAF compara um componente específico da solicitação de conteúdo correspondente. 

As instruções de correspondência são aninháveis. Você pode aninhar qualquer uma dessas instruções em instruções de regras lógicas e usá-las em instruções de redução de escopo. Para obter mais informações sobre instruções de regras lógicas, consulte [Usando declarações de regras lógicas em AWS WAF](waf-rule-statements-logical.md). Para informações sobre instruções de redução de escopo, consulte [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md).

Esta tabela descreve as instruções de correspondência regular que você pode adicionar a uma regra e fornece algumas diretrizes para calcular o uso de unidades de capacidade de pacote de proteção (ACL da Web) (WCU) para cada uma delas. Para obter informações sobre WCUs, consulte[Unidades de capacidade do Web ACL (WCUs) em AWS WAF](aws-waf-capacity-units.md). 


| Instrução de correspondência | Description | WCUs | 
| --- | --- | --- | 
| [Correspondência geográfica](waf-rule-statement-type-geo-match.md) | Inspeciona o país de origem da solicitação e aplica rótulos para o país e a região de origem.  | 1 | 
|  [Correspondência de ASN](waf-rule-statement-type-asn-match.md)  |  Inspeciona a solicitação em relação a um conjunto de endereços IP e intervalos de endereços.  |  1  | 
|  [Correspondência de conjunto de IPs](waf-rule-statement-type-ipset-match.md)  |  Inspeciona a solicitação em comparação com um conjunto de endereços IP e intervalos de endereços.   |  1 para a maioria dos casos. Se você configurar a instrução para usar um cabeçalho com endereços IP encaminhados e especificar uma posição no cabeçalho deAny, aumente em 4. WCUs   | 
|  [Instrução de regra de correspondência de rótulo](waf-rule-statement-type-label-match.md)  |  Inspeciona a solicitação de rótulos que foram adicionados por outras regras no mesmo pacote de proteção (ACL da Web).  |  1   | 
| [Instrução de regra de correspondência de regex](waf-rule-statement-type-regex-match.md) | Compara um padrão regex com um componente de solicitação especificado.  | 3, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.  | 
|  [Conjunto padrão Regex](waf-rule-statement-type-regex-pattern-set-match.md)  |  Compara padrões regex com um componente de solicitação especificado.   |  25 por conjunto de padrões, como custo base.  Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.  | 
| [Restrição de tamanho](waf-rule-statement-type-size-constraint-match.md) | Verifica restrições de tamanho em relação a um componente de solicitação especificado.  | 1, como custo base.  Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.  | 
| [SQLiataque](waf-rule-statement-type-sqli-match.md) | Inspeciona o código SQL mal-intencionado em um componente de solicitação especificado.  | 20, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs. | 
| [Correspondência de strings](waf-rule-statement-type-string-match.md) | Compara uma string com um componente de solicitação especificado.  |  O custo base depende do tipo de correspondência de string e está entre 1 e 10. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.  | 
| [Ataque de script XSS](waf-rule-statement-type-xss-match.md) | Inspeciona ataques de script entre sites em um componente de solicitação especificado.  | 40, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs. | 

# Instrução de regra de correspondência geográfica
<a name="waf-rule-statement-type-geo-match"></a>

Esta seção explica o que é uma instrução de correspondência geográfica e como ela funciona.

Use instruções de correspondência geográfica para gerenciar solicitações da web com base no país e na região de origem. Uma instrução de correspondência geográfica adiciona rótulos às solicitações da web que indicam o país de origem e a região de origem. Ela adiciona esses rótulos independentemente de os critérios da instrução corresponderem à solicitação. Uma instrução de correspondência geográfica também realiza a correspondência com o país de origem da solicitação.

## Como usar a instrução de correspondência geográfica
<a name="waf-rule-statement-geo-how-to-use"></a>

Você pode usar a instrução de correspondência geográfica para correspondência de país ou região, da seguinte forma: 
+ **País** — Você pode usar uma regra de correspondência geográfica sozinha para gerenciar solicitações com base apenas no país de origem. A instrução de regra faz correspondência em relação aos códigos de país. Você também pode seguir uma regra de correspondência geográfica com uma regra de correspondência de rótulo que corresponda ao rótulo do país de origem. 
**nota**  
Para filtrar o tráfego de Hong Kong, use o código de país ISO 3166-1 alfa-2 `HK` na instrução de correspondência geográfica.
+ **Região** — Use uma regra de correspondência geográfica seguida por uma regra de correspondência de rótulo para gerenciar solicitações com base na região de origem. Você não pode usar uma regra de correspondência geográfica sozinha para fazer correspondência em relação aos códigos de região.

Para obter informações sobre o uso de regras de correspondência de rótulos, consulte [Instrução de regra de correspondência de rótulo](waf-rule-statement-type-label-match.md) e [Rotulagem de solicitações da Web em AWS WAF](waf-labels.md).

## Como funciona a instrução de correspondência geográfica
<a name="waf-rule-statement-geo-how-it-works"></a>

Com a declaração de correspondência geográfica, AWS WAF gerencia cada solicitação da web da seguinte forma: 

1. **Determina os códigos de país e região da solicitação** — AWS WAF determina o país e a região de uma solicitação com base em seu endereço IP. Por padrão, AWS WAF usa o endereço IP da origem da solicitação da web. Você pode AWS WAF instruir o uso de um endereço IP de um cabeçalho de solicitação alternativo, por exemplo`X-Forwarded-For`, habilitando a configuração de IP encaminhado nas configurações da declaração de regra. 

   AWS WAF determina a localização das solicitações usando bancos de dados MaxMind GeoIP. MaxMind relata uma precisão muito alta de seus dados em nível de país, embora a precisão varie de acordo com fatores como país e tipo de IP. Para obter mais informações sobre MaxMind, consulte [Geolocalização MaxMind IP](https://support.maxmind.com/hc/en-us/sections/4407519834267-IP-Geolocation). [Se você achar que algum dado do GeoIP está incorreto, você pode enviar uma solicitação de correção para a Maxmind em MaxMind Correct Geo Data. IP2 ](https://support.maxmind.com/hc/en-us/articles/4408252036123-GeoIP-Correction)

   AWS WAF usa os códigos alfa-2 de país e região do padrão 3166 da Organização Internacional de Padronização (ISO). Você pode encontrar os códigos nos seguintes locais:
   + No site da ISO, você pode pesquisar os códigos dos países na [Plataforma de navegação online da ISO (OBP)](https://www.iso.org/obp/ui#home). 
   + Na Wikipedia, os códigos de país estão listados na [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).

     Os códigos de região de um país estão listados na URL `https://en.wikipedia.org/wiki/ISO_3166-2:<ISO country code>`. Por exemplo, as regiões dos Estados Unidos estão em [ISO 3166-2:US](https://en.wikipedia.org/wiki/ISO_3166-2:US) e as da Ucrânia estão em [ISO 3166-2:UA](https://en.wikipedia.org/wiki/ISO_3166-2:UA).

1. **Determina o rótulo do país e o rótulo da região a serem adicionados à solicitação** — Os rótulos indicam se a instrução de correspondência geográfica usa o IP de origem ou uma configuração de IP encaminhado.
   + **IP de origem** 

     O rótulo do país é `awswaf:clientip:geo:country:<ISO country code>`. Por exemplo, `awswaf:clientip:geo:country:US` para os Estados Unidos.

     O rótulo da região é `awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`. Exemplo para Oregon nos Estados Unidos: `awswaf:clientip:geo:region:US-OR`.
   + **IP encaminhado** 

     O rótulo do país é `awswaf:forwardedip:geo:country:<ISO country code>`. Por exemplo, `awswaf:forwardedip:geo:country:US` para os Estados Unidos.

     O rótulo da região é `awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`. Exemplo para Oregon nos Estados Unidos: `awswaf:forwardedip:geo:region:US-OR`.

   Se o código do país ou região não estiver disponível para o endereço IP especificado de uma solicitação, o AWS WAF usa `XX` nos rótulos, no lugar do valor. Por exemplo, o rótulo a seguir é para um IP de cliente cujo código de país não está disponível: `awswaf:clientip:geo:country:XX`, e o seguinte é para um IP encaminhado cujo país são os Estados Unidos, mas cujo código de região não está disponível: `awswaf:forwardedip:geo:region:US-XX`. 

1. **Avalia o código do país da solicitação em relação aos critérios da regra** 

A instrução de correspondência geográfica adiciona rótulos de país e região a todas as solicitações que ela inspeciona, independentemente de encontrar uma correspondência. 

**nota**  
AWS WAF adiciona qualquer rótulo ao final da avaliação da solicitação web de uma regra. Por esse motivo, qualquer correspondência de rótulo usada com os rótulos de uma instrução de correspondência geográfica deve ser definida em uma regra separada da regra que contém a instrução de correspondência geográfica. 

Se quiser inspecionar somente valores de região, você pode escrever uma regra de correspondência geográfica com ação Count e com uma única correspondência de código de país, seguida por uma regra de correspondência de rótulos para os rótulos de região. Você deve fornecer um código de país para que a regra de correspondência geográfica seja avaliada, mesmo para essa abordagem. Você pode reduzir o registro em log e as métricas especificando um país que provavelmente não será uma origem de tráfego para seu site. 

## CloudFront distribuições e o recurso de CloudFront restrição geográfica
<a name="cloudfront-distributions-geo-restriction"></a>

Para CloudFront distribuições, se você usar CloudFront o recurso de restrição geográfica, saiba que o recurso não encaminha solicitações bloqueadas para o. AWS WAF Ele encaminha as solicitações permitidas para AWS WAF. Se você quiser bloquear solicitações com base na geografia e em outros critérios que você pode especificar AWS WAF, use a declaração de correspondência AWS WAF geográfica e não use o recurso de restrição CloudFront geográfica. 

## Características das instruções de regras
<a name="geo-match-statement-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs **— 1 WCU.

**Configurações**: essa instrução usa as seguintes configurações: 
+ **Códigos de país**: uma matriz de códigos de país para comparar em uma correspondência geográfica. Estes devem ser códigos de país de dois caracteres, por exemplo, `["US","CN"]`, dos códigos ISO de países alfa-2 da norma internacional ISO 3166. 
+ **(Opcional) Configuração de IP encaminhada** — Por padrão, AWS WAF usa o endereço IP na origem da solicitação da web para determinar o país de origem. Como alternativa, você pode configurar a regra para usar um IP encaminhado em um cabeçalho HTTP, como `X-Forwarded-For` alternativa. AWS WAF usa o primeiro endereço IP no cabeçalho. Com essa configuração, você também especifica um comportamento de fallback a ser aplicado a uma solicitação da web com um endereço IP incorreto no cabeçalho. O comportamento de fallback define o resultado correspondente da solicitação como correspondente ou não correspondente. Para saber mais, consulte [Como usar endereços IP encaminhados](waf-rule-statement-forwarded-ip-address.md). 

## Onde encontrar essa instrução de regra
<a name="geo-match-statement-where-to-find"></a>
+ **Criador de regras** no console: para a **opção Solicitação**, escolha **Origina de um país em**.
+ **API**: [GeoMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html)

## Exemplos
<a name="waf-rule-statement-geo-examples"></a>

Você pode usar a instrução de correspondência geográfica para gerenciar solicitações de países ou regiões específicos. Por exemplo, se deseja bloquear determinados países, mas ainda permitir solicitações de um conjunto específico de endereços IP nesses países, você pode criar uma regra com a ação definida como Block e as seguintes instruções aninhadas, mostradas no pseudocódigo:
+ Instrução AND
  + Instrução de correspondência geográfica que relaciona os países que você quer bloquear
  + Instrução NOT 
    + Instrução de conjunto de IPs que especifica os endereços IP que você deseja permitir

Ou, se você quiser bloquear algumas regiões em determinados países, mas ainda permitir solicitações de outras regiões nesses países, você pode primeiro definir uma regra de correspondência geográfica com a ação definida como Count. Em seguida, defina uma regra de correspondência de rótulos que corresponda aos rótulos de correspondência geográfica adicionados e gerencie as solicitações conforme necessário. 

O pseudocódigo a seguir descreve um exemplo dessa abordagem:

1. Instrução de correspondência geográfica listando os países com regiões que você deseja bloquear, mas com a ação definida como Contagem. Isso rotula todas as solicitações da web, independentemente do status da correspondência, e também fornece métricas de contagem para os países de interesse. 

1. Instrução `AND` com ação de bloqueio
   + Instrução de correspondência de rótulos que especifica os rótulos dos países que você deseja bloquear
   + Instrução `NOT` 
     + Instrução de correspondência de rótulos que especifica os rótulos das regiões nos países que você deseja permitir a passagem

A lista JSON a seguir mostra uma implementação das duas regras descritas no pseudocódigo anterior. Essas regras bloqueiam todo o tráfego dos Estados Unidos, exceto o tráfego de Oregon e Washington. A instrução de correspondência geográfica adiciona rótulos de país e região a todas as solicitações que ela inspeciona. A regra de correspondência de rótulos é executada após a regra de correspondência geográfica, para que possa corresponder aos rótulos de país e região que a regra de correspondência geográfica acabou de adicionar. A instrução de correspondência geográfica usa um endereço IP encaminhado, portanto, a correspondência de rótulos também especifica rótulos de IPs encaminhados. 

```
{
   "Name": "geoMatchForLabels",
   "Priority": 10,
   "Statement": {
     "GeoMatchStatement": {
       "CountryCodes": [
         "US"
       ],
       "ForwardedIPConfig": {
           "HeaderName": "X-Forwarded-For",
           "FallbackBehavior": "MATCH"
       }
     }
   },
   "Action": {
     "Count": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "geoMatchForLabels"
   }
},
{
   "Name": "blockUSButNotOROrWA",
   "Priority": 11,
   "Statement": {
     "AndStatement": {
       "Statements": [
         {
           "LabelMatchStatement": {
             "Scope": "LABEL",
             "Key": "awswaf:forwardedip:geo:country:US"
           }
         },
         {
           "NotStatement": {
             "Statement": {
                "OrStatement": {
                  "Statements": [
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-OR"
                       }
                    },
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-WA"
                       }
                    }
                 ]
               }
             }
           }
         }
       ]
     }
   },
   "Action": {
     "Block": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "blockUSButNotOROrWA"
   }
}
```

Como outro exemplo, você pode combinar a correspondência geográfica com regras baseadas em intervalos para priorizar recursos para usuários em um determinado país ou região. Você cria uma instrução com base em intervalos diferente para cada instrução de correspondência geográfica ou de correspondência de rótulo que você usa para diferenciar seus usuários. Defina um limite de intervalo mais alto para usuários no país ou região preferido e um limite de intervalo mais baixo para os outros usuários. 

A lista JSON a seguir mostra uma regra de correspondência geográfica seguida por regras baseadas em intervalos que limitam o intervalo de tráfego dos Estados Unidos. As regras permitem que o tráfego do Oregon chegue a um intervalo mais alto do que o tráfego de qualquer outro lugar do país. 

```
{
  "Name": "geoMatchForLabels",
  "Priority": 190,
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ]
    }
  },
  "Action": {
    "Count": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "geoMatchForLabels"
  }
},
{
  "Name": "rateLimitOregon",
  "Priority": 195,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 3000,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "LabelMatchStatement": {
          "Scope": "LABEL",
          "Key": "awswaf:clientip:geo:region:US-OR"
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitOregon"
  }
},
{
  "Name": "rateLimitUSNotOR",
  "Priority": 200,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "AndStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:clientip:geo:country:US"
              }
            },
            {
              "NotStatement": {
                "Statement": {
                  "LabelMatchStatement": {
                    "Scope": "LABEL",
                    "Key": "awswaf:clientip:geo:region:US-OR"
                  }
                }
              }
            }
          ]
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitUSNotOR"
  }
}
```

# Instrução de regra de correspondência de conjunto de IPs
<a name="waf-rule-statement-type-ipset-match"></a>

Esta seção explica o que é uma instrução de correspondência de conjunto de IP e como ela funciona.

A instrução de correspondência de conjunto de IPs inspeciona o endereço IP de uma solicitação da Web em relação a um conjunto de endereços IP e intervalos de endereços. Use para permitir ou bloquear solicitações da Web com base nos endereços IP dos quais as solicitações são originadas. Por padrão, o AWS WAF usa o endereço IP da origem da solicitação da web, mas você pode configurar a regra para usar um cabeçalho HTTP, como `X-Forwarded-For`. 



AWS WAF suporta todos IPv4 os intervalos IPv6 CIDR, exceto o. `/0` Para saber mais sobre a notação CIDR, consulte o artigo na Wikipédia sobre [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). Um conjunto de IPs pode conter até 10.000 endereços IP ou intervalos de endereços IP para verificar.

**nota**  
Cada regra de correspondência de conjunto de IP faz referência a um conjunto de IP, que você cria e mantém independente de suas regras. Você pode usar um único conjunto de IP em várias regras e, ao atualizar o conjunto referenciado, atualiza AWS WAF automaticamente todas as regras que fazem referência a ele.   
Para obter informações sobre como criar e gerenciar um conjunto de IP, consulte [Criando e gerenciando um conjunto de IP no AWS WAF](waf-ip-set-managing.md).

Ao adicionar ou atualizar as regras em seu grupo de regras ou no pacote de proteção (ACL da Web), escolha a opção **conjunto de IPs** e selecione o nome do conjunto de IPs que deseja usar. 

## Características das instruções de regras
<a name="ipset-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 1 WCU para a maioria. Se você configurar a instrução para usar endereços IP encaminhados e especificar uma posição de ANY, aumente o uso da WCU em 4.

Essa instrução usa as seguintes configurações: 
+ **Especificação do conjunto de IP**: Escolha o conjunto de IPs que você deseja usar na lista ou crie um novo. 
+ **(Opcional) Configuração de IP encaminhado**: um nome de cabeçalho de IP encaminhado alternativo para usar no lugar da origem da solicitação. Você especifica se deseja corresponder ao primeiro, ao último ou a qualquer endereço no cabeçalho. Você também especifica um comportamento de fallback a ser aplicado a uma solicitação da web com um endereço IP incorreto no cabeçalho. O comportamento de fallback define o resultado correspondente da solicitação como correspondente ou não correspondente. Para saber mais, consulte [Como usar endereços IP encaminhados](waf-rule-statement-forwarded-ip-address.md). 

## Onde encontrar essa instrução de regra
<a name="ipset-match-where-to-find"></a>

**Onde encontrar essa instrução de regra**
+ **Criador de regras** no console: para a **opção Solicitação**, escolha **Origina de um endereço IP em**.
+ Página **Adicionar minhas próprias regras e grupos de regras** no console: Escolha a opção de **conjunto de IP**.
+ **API**: [IPSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_IPSetReferenceStatement.html)

# Instrução de regra de correspondência de número de sistema autônomo (ASN)
<a name="waf-rule-statement-type-asn-match"></a>

Uma declaração de regra de correspondência de ASN AWS WAF permite que você inspecione o tráfego da web com base no Número do Sistema Autônomo (ASN) associado ao endereço IP da solicitação. ASNs são identificadores exclusivos atribuídos a grandes redes de Internet gerenciadas por organizações como provedores de serviços de Internet, empresas, universidades ou agências governamentais. Ao usar instruções de correspondência de ASN, você pode permitir ou bloquear o tráfego de organizações de rede específicas sem precisar gerenciar endereços IP individuais. Essa abordagem oferece uma maneira mais estável e eficiente de controlar o acesso em comparação com as regras baseadas em IP, pois ASNs mudam com menos frequência do que os intervalos de IP. 

A correspondência de ASN é particularmente útil para cenários como bloquear o tráfego de redes problemáticas conhecidas ou permitir o acesso somente de redes de parceiros confiáveis. A instrução de correspondência do ASN fornece flexibilidade na determinação do endereço IP do cliente por meio da configuração opcional de IP encaminhado, tornando-a compatível com várias configurações de rede, incluindo aquelas que usam redes de distribuição de conteúdo (CDNs) ou proxies reversos.

**nota**  
A correspondência de ASN complementa, mas não substitui, os controles padrão de autenticação e autorização. Recomendamos que você implemente mecanismos de autenticação e autorização, como o IAM, para verificar a identidade de todas as solicitações em suas aplicações.

## Como funciona a instrução de correspondência de ASN
<a name="waf-rule-statement-type-asn-match-how-it-works"></a>

AWS WAF determina o ASN de uma solicitação com base em seu endereço IP. Por padrão, AWS WAF usa o endereço IP da origem da solicitação da web. Você pode configurar AWS WAF para usar um endereço IP de um cabeçalho de solicitação alternativo, por exemplo`X-Forwarded-For`, habilitando a configuração de IP encaminhado nas configurações da declaração de regra.

A declaração de correspondência de ASN compara o ASN da solicitação com a lista ASNs especificada na regra. Se o ASN corresponder a um na lista, a instrução será avaliada como verdadeira e a ação da regra associada será aplicada.

### Manipulação não mapeada ASNs
<a name="waf-rule-statement-type-asn-match-unmapped"></a>

Se AWS WAF não for possível determinar um ASN para um endereço IP válido, ele atribuirá o ASN 0. Você pode incluir o ASN 0 em sua regra para lidar com esses casos explicitamente.

### Comportamento de fallback para endereços IP inválidos
<a name="waf-rule-statement-type-asn-match-fallback"></a>

Ao configurar a instrução de correspondência de ASN para usar endereços IP encaminhados, você pode especificar um comportamento alternativo de *Corresponder * ou *Não corresponder* para solicitações com endereços IP inválidos ou ausentes no cabeçalho designado.

## Características das instruções de regras
<a name="waf-rule-statement-type-asn-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 1 WCU

Essa instrução usa as seguintes configurações:
+ **Lista de ASN**: uma matriz de números de ASN para comparar para uma correspondência de ASN. Os valores válidos variam de 0 a 4294967295. Você pode especificar até 100 ASNs para cada regra.
+ **(Opcional) Configuração de IP encaminhada** — Por padrão, AWS WAF usa o endereço IP na origem da solicitação da web para determinar o ASN. Como alternativa, você pode configurar a regra para usar um IP encaminhado em um cabeçalho HTTP, como `X-Forwarded-For`. . Você especifica se deseja usar o primeiro, o último ou qualquer endereço no cabeçalho. Com essa configuração, você também especifica um comportamento de fallback a ser aplicado a uma solicitação da web com um endereço IP incorreto no cabeçalho. O comportamento de fallback define o resultado correspondente da solicitação como correspondente ou não correspondente. Para saber mais, consulte [Usar endereços IP encaminhados](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-forwarded-ip-address.html).

## Onde encontrar essa instrução de regra
<a name="waf-rule-statement-type-asn-match-where-to-find"></a>
+ **Criador de regras** no console: em **Opção de solicitação**, escolha **Originado de ASN em**.
+ **API**: [AsnMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AsnMatchStatement.html)

## Exemplos
<a name="waf-rule-statement-type-asn-match-examples"></a>

Este exemplo bloqueia solicitações originadas de duas específicas ASNs derivadas de um `X-Forwarded-For` cabeçalho. Se o endereço IP no cabeçalho estiver malformado, o comportamento de fallback configurado será `NO_MATCH`.

```
{
  "Action": {
    "Block": {}
  },
  "Name": "AsnMatchStatementRule",
  "Priority": 1,
  "Statement": {
    "AsnMatchStatement": {
      "AsnList": [64496, 64500]
    },
    "ForwardedIPConfig": {
      "FallbackBehavior": "NO_MATCH",
      "HeaderName": "X-Forwarded-For"
    }
  },
  "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AsnMatchRuleMetrics",
    "SampledRequestsEnabled": true
  }
},
"VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "WebAclMetrics",
  "SampledRequestsEnabled": true
}
}
```

# Instrução de regra de correspondência de rótulo
<a name="waf-rule-statement-type-label-match"></a>

Esta seção explica o que é uma declaração de correspondência de rótulo e como ela funciona.

A instrução de correspondência de rótulos inspeciona os rótulos que estão na solicitação da web em relação a uma especificação de string. Os rótulos que estão disponíveis a uma regra para inspeção são os que já foram adicionados à solicitação da Web por outras regras na mesma avaliação do pacote de proteção (ACL da Web). 

Os rótulos não persistem fora da avaliação do pacote de proteção (Web ACL), mas você pode acessar as métricas do rótulo CloudWatch e ver resumos das informações do rótulo de qualquer pacote de proteção (Web ACL) no console. AWS WAF Para obter mais informações, consulte [Métricas e dimensões do rótulo](waf-metrics.md#waf-metrics-label) e [Monitorando e ajustando suas AWS WAF proteções](web-acl-testing-activities.md). Você também pode ver rótulos nos logs. Para mais informações, consulte [Campos do log para tráfego do pacote de proteção (ACL da Web)](logging-fields.md).

**nota**  
Uma instrução de correspondência de rótulo só pode ver os rótulos das regras que foram avaliadas anteriormente no pacote de proteção (ACL da Web). Para obter informações sobre como AWS WAF avalia as regras e os grupos de regras em um pacote de proteção (Web ACL), consulte. [Definir prioridade das regras](web-acl-processing-order.md)

Para saber mais sobre como adicionar e corresponder rótulos, consulte [Rotulagem de solicitações da Web em AWS WAF](waf-labels.md).

## Características das instruções de regras
<a name="label-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 1 WCU

Essa instrução usa as seguintes configurações: 
+ **Escopo da correspondência**: defina como **Rótulo** para corresponder ao nome do rótulo e, opcionalmente, aos namespaces e prefixo anteriores. Defina isso como **Namespace** para corresponder a algumas ou todas as especificações do namespace e, opcionalmente, ao prefixo anterior. 
+ **Chave**: a string com a qual você deseja corresponder. Se você especificar um escopo de correspondência de namespace, isso deve especificar somente os namespaces e, opcionalmente, o prefixo, com dois pontos finais. Se você especificar um escopo de correspondência de rótulo, isso deverá incluir o nome do rótulo e, opcionalmente, poderá incluir namespaces e prefixos anteriores. 

Para saber mais sobre essas configurações, consulte [AWS WAF regras que correspondem aos rótulos](waf-rule-label-match.md) e [AWS WAF exemplos de correspondência de rótulos](waf-rule-label-match-examples.md).

## Onde encontrar essa instrução de regra
<a name="label-match-where-to-find"></a>
+ **Criador de regras** no console: para **Opção de solicitação**, escolha **Tem rótulo**.
+ **API**: [LabelMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_LabelMatchStatement.html)

# Instrução de regra de correspondência de regex
<a name="waf-rule-statement-type-regex-match"></a>

Esta seção explica o que é uma instrução de correspondência regex e como ela funciona.

Uma instrução de correspondência regex instrui AWS WAF a correspondência de um componente de solicitação com uma única expressão regular (regex). Uma solicitação da web corresponderá à instrução se o componente de solicitação corresponder à regex especificada. 

Esse tipo de instrução é uma boa alternativa a [Instrução de regra de correspondência do conjunto de padrões de regex](waf-rule-statement-type-regex-pattern-set-match.md) para situações em que você deseja combinar seus critérios de correspondência usando lógica matemática. Por exemplo, se você quiser que um componente de solicitação corresponda a alguns padrões de regex e não corresponda a outros, você pode combinar as instruções de correspondência de regex usando o [Instrução de regra do AND](waf-rule-statement-type-and.md) e o [Instrução de regra do NOT](waf-rule-statement-type-not.md). 

AWS WAF suporta a sintaxe padrão usada pela biblioteca PCRE, `libpcre` com algumas exceções. A biblioteca está documentada em [PCRE: Expressões regulares compatíveis com Perl](http://www.pcre.org/). Para obter informações sobre AWS WAF suporte, consulte[Sintaxe de expressão regular suportada em AWS WAF](waf-regex-pattern-support.md).

## Características das instruções de regras
<a name="regex-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 3 WCUs, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** que você aplicar, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo.
**Atenção**  
Se você inspecionar os componentes da solicitação **Body**, **JSON body**, **Headers** ou **Cookies**, leia sobre as limitações de quanto conteúdo AWS WAF pode ser inspecionado. [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md) 

  Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecioná-lo. Por exemplo, você pode transformar para minúsculas ou normalizar o espaço em branco. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

## Onde encontrar essa instrução de regra
<a name="regex-match-where-to-find"></a>
+ **Criador de regras** no console: para **Tipo de correspondência**, escolha **Corresponde à expressão regular**.
+ **API**: [RegexMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexMatchStatement.html)

# Instrução de regra de correspondência do conjunto de padrões de regex
<a name="waf-rule-statement-type-regex-pattern-set-match"></a>

Esta seção explica o que é uma instrução de correspondência de conjunto de padrões regex e como ela funciona.

A correspondência de conjunto de padrões regex inspeciona a parte da solicitação da web especificada para os padrões de expressão regular especificados dentro de um conjunto de padrões regex.

AWS WAF suporta a sintaxe padrão usada pela biblioteca PCRE, `libpcre` com algumas exceções. A biblioteca está documentada em [PCRE: Expressões regulares compatíveis com Perl](http://www.pcre.org/). Para obter informações sobre AWS WAF suporte, consulte[Sintaxe de expressão regular suportada em AWS WAF](waf-regex-pattern-support.md).

**nota**  
Cada regra de correspondência de conjunto de padrões de regex faz referência a um conjunto de padrões de regex, que você cria e mantém independente de suas regras. Você pode usar um único padrão de regex definido em várias regras e, ao atualizar o conjunto referenciado, atualiza AWS WAF automaticamente todas as regras que fazem referência a ele.   
Para obter informações sobre como criar e gerenciar um conjunto de padrões de regex, consulte [Criando e gerenciando um padrão de regex definido em AWS WAF](waf-regex-pattern-set-managing.md).

Uma instrução regex pattern set match instrui AWS WAF a pesquisar qualquer um dos padrões no conjunto dentro do componente de solicitação que você escolher. Uma solicitação da Web corresponderá à instrução de regra de conjunto de padrões se o componente de solicitação corresponder a qualquer um dos padrões no conjunto. 

Se você quiser combinar suas correspondências de padrões de regex usando lógica, por exemplo, para comparar com algumas expressões regulares e não com outras, considere usar [Instrução de regra de correspondência de regex](waf-rule-statement-type-regex-match.md). 

## Características das instruções de regras
<a name="regex-pattern-set-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 25 WCUs, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** que você aplicar, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo.
**Atenção**  
Se você inspecionar os componentes da solicitação **Body**, **JSON body**, **Headers** ou **Cookies**, leia sobre as limitações de quanto conteúdo AWS WAF pode ser inspecionado. [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md) 

  Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecioná-lo. Por exemplo, você pode transformar para minúsculas ou normalizar o espaço em branco. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

Esta instrução requer as seguintes configurações: 
+ Especificação do conjunto de padrões de regex: Escolha o conjunto de padrões de regex que deseja usar na lista ou crie um novo. 

## Onde encontrar essa instrução de regra
<a name="regex-pattern-set-match-where-to-find"></a>
+ **Criador de regras** no console: Para **Tipo de correspondência**, escolha **Condição de correspondência de string** > **Corresponde ao padrão do conjunto de expressões regulares**.
+ **API**: [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexPatternSetReferenceStatement.html)

# Instrução de regra de restrição de tamanho
<a name="waf-rule-statement-type-size-constraint-match"></a>

Esta seção explica o que é uma instrução de restrição de tamanho e como ela funciona.

Uma declaração de restrição de tamanho compara o número de bytes AWS WAF recebidos por um componente de solicitação da web com um número fornecido por você e corresponde de acordo com seus critérios de comparação. 

O critério de comparação é um operador, como maior que (>) ou menor que (<). Por exemplo, você pode fazer a correspondência em solicitações que tenham uma string de consulta com um tamanho maior que 100 bytes. 

Se você inspecionar o caminho do URI, qualquer `/` no caminho conta como um caractere. Por exemplo, o caminho do URI `/logo.jpg` tem nove caracteres de comprimento.

**nota**  
Essa instrução inspeciona somente o tamanho do componente de solicitação da web. Ela não inspeciona o conteúdo do componente. 

## Características das instruções de regras
<a name="size-constraint-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 1 WCU, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo. Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).

  Uma instrução de restrição de tamanho inspeciona somente o tamanho do componente após a aplicação de qualquer transformação. Ela não inspeciona o conteúdo do componente. 
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecionar seu tamanho. Por exemplo, você pode compactar espaços em branco ou decodificar entidades HTML. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

Além disso, essa instrução requer as seguintes configurações: 
+ **Condição de correspondência de tamanho**: indica o operador de comparação numérica a ser usado para comparar o tamanho fornecido com o componente de solicitação escolhido. Escolha o operador na lista.
+ **Tamanho**: A configuração de tamanho, em bytes, a ser usada na comparação. 

## Onde encontrar essa instrução de regra
<a name="size-constraint-match-where-to-find"></a>
+ **Criador de regras** no console: para **Tipo de correspondência**, em **Condição de correspondência de tamanho**, escolha a condição que você deseja usar.
+ **API**: [SizeConstraintStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SizeConstraintStatement.html)

# Instrução de regra de ataque de injeção de SQL
<a name="waf-rule-statement-type-sqli-match"></a>

Esta seção explica o que é uma instrução de regra de injeção de SQL e como ela funciona.

Uma instrução de regra de injeção de SQL que inspeciona códigos SQL mal-intencionados. Invasores às vezes inserem código SQL mal-intencionado em solicitações da Web na tentativa de realizar ações como modificar seu banco de dados ou extrair dados dele.

## Características das instruções de regras
<a name="sqli-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— O custo base depende da configuração do nível de sensibilidade para a declaração de regra: Low custa 20 e High custa 30. 

Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** que você aplicar, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo.
**Atenção**  
Se você inspecionar os componentes da solicitação **Body**, **JSON body**, **Headers** ou **Cookies**, leia sobre as limitações de quanto conteúdo AWS WAF pode ser inspecionado. [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md) 

  Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecioná-lo. Por exemplo, você pode transformar para minúsculas ou normalizar o espaço em branco. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

Além disso, essa instrução requer as seguintes configurações: 
+ **Nível de sensibilidade**: essa configuração ajusta a sensibilidade dos critérios de correspondência de injeção de SQL. As opções são LOW e HIGH. A configuração padrão é LOW. 

  A configuração HIGH detecta mais ataques de injeção de SQL e é a configuração recomendada. Devido à maior sensibilidade, essa configuração gera mais falsos positivos, especialmente se as solicitações da web contiverem normalmente strings pouco comuns. Durante os testes e ajustes do pacote de proteção (ACL da Web), talvez você tenha mais trabalho para mitigar os falsos positivos. Para mais informações, consulte [Testando e ajustando suas AWS WAF proteções](web-acl-testing.md). 

  A configuração mais baixa fornece uma detecção de injeção de SQL menos rigorosa, o que também resulta em menos falsos positivos. LOW pode ser uma opção melhor para recursos com outras proteções contra ataques de injeção de SQL ou com baixa tolerância a falsos positivos. 

## Onde encontrar essa instrução de regra
<a name="sqli-match-where-to-find"></a>
+ **Construtor de regras** no console: Para **Tipo de correspondência**, escolha **Condições de correspondência de ataque** > **Contém ataques de injeção de SQL**.
+ **API**: [SqliMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SqliMatchStatement.html)

# Instrução de regra de correspondência de string
<a name="waf-rule-statement-type-string-match"></a>

Esta seção explica o que é uma instrução de correspondência de string e como ela funciona.

Uma declaração de correspondência de string indica AWS WAF a string que você deseja pesquisar em uma solicitação, onde e como pesquisar na solicitação. Por exemplo, você pode procurar uma string específica no início de qualquer string de consulta na solicitação ou como uma correspondência exata para o cabeçalho `User-agent` da solicitação. Geralmente, a string consiste em caracteres ASCII imprimíveis, mas você pode usar qualquer caractere, do hexadecimal 0x00 a 0xFF (decimal 0 a 255). 

## Características das instruções de regras
<a name="string-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— O custo base depende do tipo de partida que você usa.
+ **Corresponde exatamente à string**: 2 
+ **Começa com a string**: 2 
+ **Termina com a string**: 2 
+ **Contém a string**: 10 
+ **Contém a palavra**: 10 

Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** aplicada, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo.
**Atenção**  
Se você inspecionar os componentes da solicitação **Body**, **JSON body**, **Headers** ou **Cookies**, leia sobre as limitações de quanto conteúdo AWS WAF pode ser inspecionado. [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md) 

  Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecioná-lo. Por exemplo, você pode transformar para minúsculas ou normalizar o espaço em branco. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

Além disso, essa instrução requer as seguintes configurações: 
+ **String to match** — Essa é a string que você AWS WAF deseja comparar com o componente de solicitação especificado. Geralmente, a string consiste em caracteres ASCII imprimíveis, mas você pode usar qualquer caractere, do hexadecimal 0x00 a 0xFF (decimal 0 a 255).
+ **Condição de correspondência de string** — Isso indica o tipo de pesquisa que você AWS WAF deseja realizar. 
  + **Corresponde exatamente à string**: a string única e o valor do componente de solicitação são idênticos.
  + **Começa com a strin**: a string aparece no início do componente de solicitação. 
  + **Termina com a string**: a string aparece no final do componente de solicitação. 
  + **Contém string**: a string aparece em qualquer lugar no componente de solicitação. 
  + **Contém a palavra**: a string especificada deve aparecer no componente de solicitação. 

    Para esta opção, a string especificada deve conter apenas caracteres alfanuméricos ou sublinhado (A-Z, a-z, 0-9 ou \$1). 

    Uma das seguintes opções deve ser verdadeira para que a solicitação corresponda: 
    + A string corresponde exatamente ao valor do componente de solicitação, como o valor de um cabeçalho.
    + A string está no início do componente de solicitação e é seguida por um caractere diferente de um caractere alfanumérico ou sublinhado (\$1), por exemplo, `BadBot;`.
    + A string está no fim do componente de solicitação e é precedida por um caractere diferente de um caractere alfanumérico ou sublinhado (\$1), por exemplo, `;BadBot`.
    + A string está no meio do componente de solicitação e é precedida e seguida por caracteres diferentes de caracteres alfanuméricos ou sublinhados (\$1), por exemplo, `-BadBot;`.

## Onde encontrar essa instrução de regra
<a name="string-match-where-to-find"></a>
+ **Criador de regras** no console: para **Tipo de correspondência**, escolha **Condição de correspondência de string** e preencha as strings com as quais você deseja corresponder.
+ **API**: [ByteMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html)

# Instrução de regra de ataque de script entre sites
<a name="waf-rule-statement-type-xss-match"></a>

Esta seção explica o que é uma instrução de ataque XSS (cross-site scripting) e como ela funciona.

Uma instrução de ataque XSS inspeciona scripts maliciosos em um componente de solicitação da Web. Em ataques XSS, o invasor usa vulnerabilidades em um site benigno como veículo para injetar scripts mal-intencionados no lado do cliente em outros navegadores legítimos. 

## Características das instruções de regras
<a name="xss-match-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— 40 WCUs, como custo base. Se você usar o componente de solicitação **Todos os parâmetros de consulta**, adicione 10 WCUs. Se você usar o **corpo JSON** do componente de solicitação, dobre o custo WCUs base. Para cada **transformação de texto** que você aplicar, adicione 10 WCUs.

Esse tipo de instrução opera em um componente de solicitação da web e requer as seguintes configurações do componente de solicitação: 
+ **Componente de solicitação**: a parte da solicitação da web para inspecionar, por exemplo, uma string de consulta ou o corpo.
**Atenção**  
Se você inspecionar os componentes da solicitação **Body**, **JSON body**, **Headers** ou **Cookies**, leia sobre as limitações de quanto conteúdo AWS WAF pode ser inspecionado. [Componentes de solicitação da web de tamanho grande em AWS WAF](waf-oversize-request-components.md) 

  Para informações sobre componentes de solicitação da web, consulte [Ajustando as configurações da declaração de regra em AWS WAF](waf-rule-statement-fields.md).
+ **Transformações de texto opcionais** — Transformações que você deseja AWS WAF realizar no componente de solicitação antes de inspecioná-lo. Por exemplo, você pode transformar para minúsculas ou normalizar o espaço em branco. Se você especificar mais de uma transformação, as AWS WAF processará na ordem listada. Para mais informações, consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md).

## Onde encontrar essa instrução de regra
<a name="xss-match-where-to-find"></a>
+ **Construtor de regras** no console: para **Tipo de correspondência**, escolha **Condições de correspondência de ataque** > **Contém ataques de injeção de XSS**.
+ **API**: [XssMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchStatement.html)

# Usando declarações de regras lógicas em AWS WAF
<a name="waf-rule-statements-logical"></a>

Esta seção explica o que é uma instrução de regra lógica e como ela funciona.

Usa instruções de regras lógicas para combinar outras instruções ou negar os resultados delas. Cada instrução de regra lógica leva pelo menos uma instrução aninhada.

Para combinar ou negar logicamente os resultados de instruções de regra, aninhe-as em instruções de regra lógicas. 

As instruções de regras lógicas são aninháveis. Você pode aninhá-las em outras instruções de regras lógicas e usá-las em instruções de redução de escopo. Para informações sobre instruções de redução de escopo, consulte [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md).

**nota**  
O editor visual no console suporta um nível de aninhamento de instrução de regra, que funciona para muitas necessidades. Para agrupar mais níveis, edite a representação JSON da regra no console ou use o. APIs 

Esta tabela descreve as instruções de regras lógicas e fornece diretrizes para calcular o uso de unidades de capacidade do pacote de proteção (ACL da Web) (WCU) para cada uma delas. Para obter informações sobre WCUs, consulte[Unidades de capacidade do Web ACL (WCUs) em AWS WAF](aws-waf-capacity-units.md). 


| Instrução lógica  | Description | WCUs | 
| --- | --- | --- | 
| [Lógica do AND](waf-rule-statement-type-and.md) | Combina instruções aninhadas com a lógica AND. | Com base em instruções aninhadas | 
|  [Lógica do NOT](waf-rule-statement-type-not.md)  |  Nega os resultados de uma instrução aninhada.  |  Com base na instrução aninhada  | 
| [Lógica do OR](waf-rule-statement-type-or.md) | Combina instruções aninhadas com a lógica OR. | Com base em instruções aninhadas | 

# Instrução de regra do AND
<a name="waf-rule-statement-type-and"></a>

A instrução de regra AND combina instruções aninhadas com uma operação AND lógica, portanto, todas as instruções aninhadas devem corresponder à instrução AND para corresponder. Isso requer pelo menos duas instruções aninhadas. 

## Características das instruções de regras
<a name="and-rule-statement-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— Depende das declarações aninhadas.

## Onde encontrar essa instrução de regra
<a name="and-rule-statement-where-to-find"></a>
+ **Criador de regras** no console: para **Se uma solicitação**, escolha **corresponder a todas as instruções (AND)** e preencha as instruções aninhadas. 
+ **API**: [AndStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AndStatement.html)

## Exemplos
<a name="and-rule-statement-examples"></a>

A lista a seguir mostra o uso de AND e instruções de regras lógicas NOT para eliminar falsos positivos das correspondências de uma instrução de ataque de injeção de SQL. Neste exemplo, suponha que possamos escrever uma instrução de correspondência de byte único para corresponder às solicitações que estão resultando em falsos positivos. 

A instrução AND corresponde às solicitações que não correspondem à instrução de correspondência de byte e que correspondem à instrução de ataque de injeção de SQL. 

```
{
      "Name": "SQLiExcludeFalsePositives",
      "Priority": 0,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "SearchString": "string identifying a false positive",
                    "FieldToMatch": {
                      "Body": {
                        "OversizeHandling": "MATCH"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "NONE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                }
              }
            },
            {
              "SqliMatchStatement": {
                "FieldToMatch": {
                  "Body": {
                    "OversizeHandling": "MATCH"
                  }
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "SQLiExcludeFalsePositives"
      }
    }
```

Usando o editor visual de regras do console, você pode aninhar uma instrução não lógica ou uma instrução NOT sob uma instrução OR ou AND. O aninhamento da instrução NOT é mostrado no exemplo anterior. 

Usando o editor visual de regras do console, você pode agrupar a maioria das instruções aninháveis em uma instrução de regra lógica, como a mostrada no exemplo anterior. Você não pode usar o editor visual para aninhar instruções OR ou AND. Para configurar esse tipo de aninhamento, você precisa fornecer sua instrução de regra em JSON. Por exemplo, a lista de regras JSON a seguir inclui uma instrução OR aninhada dentro de uma instrução AND. 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# Instrução de regra do NOT
<a name="waf-rule-statement-type-not"></a>

A instrução de regra NOT nega logicamente os resultados de uma única instrução aninhada, portanto, as instruções aninhadas não devem corresponder em relação à instrução NOT a corresponder e vice-versa. Isso requer uma instrução aninhada. 

Por exemplo, se você deseja bloquear solicitações que não são originadas em um país específico, crie uma instrução NOT com ação definida para bloquear e aninhe uma instrução de correspondência geográfica que especifique o país. 

## Características das instruções de regras
<a name="not-rule-statement-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— Depende da declaração aninhada.

## Onde encontrar essa instrução de regra
<a name="not-rule-statement-where-to-find"></a>
+ **Criador de regras** no console: para **Se uma solicitação**, escolha **não corresponde à instrução (NOT)** e, em seguida, preencha a instrução aninhada.
+ **API**: [NotStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_NotStatement.html)

# Instrução de regra do OR
<a name="waf-rule-statement-type-or"></a>

A instrução de regra OR combina instruções aninhadas com a lógica OR, portanto, uma das instruções aninhadas deve corresponder para que a instrução OR corresponda. Isso requer pelo menos duas instruções aninhadas. 

Por exemplo, se você deseja bloquear solicitações que vêm de um país específico ou que contêm uma string de consulta específica, você pode criar uma instrução OR e aninhar nela uma instrução de correspondência geográfica para o país e uma instrução de correspondência de string para a string de consulta. 

Se, em vez disso, você deseja bloquear solicitações que *não* vêm de um país específico ou que contêm uma string de consulta específica, você modificaria a instrução OR anterior para aninhar a instrução de correspondência geográfica um nível inferior, dentro de uma instrução NOT. Esse nível de aninhamento requer que você use a formatação JSON, pois o console suporta apenas um nível de aninhamento.

## Características das instruções de regras
<a name="or-rule-statement-characteristics"></a>

**Aninhável**: você pode aninhar esse tipo de instrução. 

**WCUs**— Depende das declarações aninhadas.

## Onde encontrar essa instrução de regra
<a name="or-rule-statement-where-to-find"></a>
+ **Criador de regras** no console: para **Se uma solicitação**, escolha **corresponder a pelo menos uma das instruções (OR)**, e preencha as instruções aninhadas. 
+ **API**: [OrStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_OrStatement.html)

**Exemplos**  
A lista a seguir mostra o uso de OR para combinar duas outras instruções. A instrução OR é compatível se alguma das instruções aninhadas corresponder. 

```
{
  "Name": "neitherOfTwo",
  "Priority": 1,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "neitherOfTwo"
  },
  "Statement": {
    "OrStatement": {
      "Statements": [
        {
          "GeoMatchStatement": {
            "CountryCodes": [
              "CA"
            ]
          }
        },
        {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777"
          }
        }
      ]
    }
  }
}
```

Usando o editor visual de regras do console, você pode agrupar a maioria das instruções aninháveis em uma instrução de regra lógica, mas não pode usar o editor visual para aninhar instruções OR ou AND. Para configurar esse tipo de aninhamento, você precisa fornecer sua instrução de regra em JSON. Por exemplo, a lista de regras JSON a seguir inclui uma instrução OR aninhada dentro de uma instrução AND. 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# Usando declarações de regras baseadas em taxas em AWS WAF
<a name="waf-rule-statement-type-rate-based"></a>

Esta seção explica o que é uma instrução de regra baseada em intervalos e como ela funciona.

Uma regra baseada em intervalos conta as solicitações recebidas e limita as solicitações quando elas chegam a um intervalo muito rápido. A regra agrega solicitações de acordo com seus critérios e conta e classifica os agrupamentos agregados, com base nas configurações da janela de avaliação da regra, limite de solicitação e configurações de ação. 

**nota**  
Você também pode limitar a taxa de solicitações da web usando o nível de proteção direcionado do grupo de regras de regras AWS gerenciadas do Bot Control. Como usar esse grupo de regras gerenciadas gera taxas adicionais. Para obter mais informações, consulte [Opções para limitação de intervalo em regras baseadas em intervalos e regras direcionadas do Controle de Bots](waf-rate-limiting-options.md). 

AWS WAF rastreia e gerencia solicitações da web separadamente para cada instância de uma regra baseada em taxas que você usa. Por exemplo, se você fornecer as mesmas configurações de regra com base em taxas em dois sitesACLs, cada uma das duas declarações de regra representará uma instância separada da regra baseada em taxas e cada uma receberá seu próprio controle e gerenciamento por meio de. AWS WAF Se você definir uma regra baseada em taxas dentro de um grupo de regras e depois usar esse grupo de regras em vários lugares, cada uso cria uma instância separada da regra baseada em taxas que recebe seu próprio controle e gerenciamento. AWS WAF

**Não aninháve**: você não pode aninhar esse tipo de instrução dentro de outras instruções. Você pode incluí-la diretamente em um pacote de proteção (ACL da Web) ou em um grupo de regras. 

**Instrução de redução de escopo**: esse tipo de regra pode usar uma instrução de redução de escopo para restringir o escopo das solicitações que o grupo de regras avalia. A instrução de redução de escopo pode ser opcional ou obrigatória, dependendo das outras configurações da regra. Os detalhes são abordados nesta seção. Para informações gerais sobre instruções de redução de escopo, consulte [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md). 

**WCUs**— 2, como custo base. Para cada chave de agregação personalizada que você especificar, adicione 30 WCUs. Se você usar uma declaração de escopo reduzido na regra, calcule e adicione o WCUs para isso.

**Onde encontrar essa instrução de regra**
+ **Criador de regras** no pacote de proteção (ACL da Web), no console: em **Regra**, para **Tipo**, escolha **Regra baseada em taxas**.
+ **API**: [RateBasedStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedStatement.html)

**Topics**
+ [Configurações de alto nível de regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-high-level-settings.md)
+ [Advertências de regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-caveats.md)
+ [Agregando regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md)
+ [Instâncias e contagens de regras baseadas em intervalos](waf-rule-statement-type-rate-based-aggregation-instances.md)
+ [Aplicando limitação de taxa às solicitações em AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md)
+ [Exemplos de regras baseadas em taxas em AWS WAF](waf-rule-statement-type-rate-based-examples.md)
+ [Como listar endereços IP que estão sendo limitados por regras baseadas em intervalos](listing-managed-ips.md)

# Configurações de alto nível de regras baseadas em taxas em AWS WAF
<a name="waf-rule-statement-type-rate-based-high-level-settings"></a>

Uma instrução de regra baseada em intervalos usa as seguintes configurações de alto nível: 
+ **Janela de avaliação**: a quantidade de tempo, em segundos, que o AWS WAF deve incluir em suas contagens de solicitações, considerando a hora atual. Por exemplo, para uma configuração de 120, quando AWS WAF verifica a taxa, ela conta as solicitações dos 2 minutos imediatamente anteriores à hora atual. As configurações válidas são 60 (1 minuto), 120 (2 minutos), 300 (5 minutos) e 600 (10 minutos), e 300 (5 minutos) é o padrão. 

  Essa configuração não determina a frequência com que o AWS WAF verifica o intervalo, mas quanto ele volta cada vez que uma verificação é feita. O AWS WAF verifica o intervalo com frequência, com um tempo independente da configuração da janela de avaliação. 
+ **Limite de taxa** — O número máximo de solicitações que correspondem aos seus critérios e que AWS WAF devem ser monitoradas apenas para a janela de avaliação especificada. A configuração de limite mais baixa permitida é 10. Quando esse limite é violado, AWS WAF aplica a configuração de ação de regra a solicitações adicionais que correspondam aos seus critérios. 

  AWS WAF aplica uma limitação de taxa próxima ao limite que você definiu, mas não garante uma correspondência exata do limite. Para obter mais informações, consulte [Advertências de regras baseadas em intervalos](waf-rule-statement-type-rate-based-caveats.md). 
+ **Agregação de solicitações**: os critérios de agregação a serem usados nas solicitações da web que a regra baseada em intervalos conta e limita o intervalo. O limite de taxa definido se aplica a cada instância de agregação. Para obter mais detalhes, consulte [Como agregar regras baseadas em intervalos](waf-rule-statement-type-rate-based-aggregation-options.md) e [Instâncias e contagens de agregação](waf-rule-statement-type-rate-based-aggregation-instances.md). 
+ **Ação**: a ação a ser tomada em relação às solicitações que o intervalo da regra limita. Você pode usar qualquer ação de regra, exceto Allow. Isso é definido no nível da regra, como de costume, mas tem algumas restrições e comportamentos específicos das regras baseadas em intervalos. Para obter informações gerais sobre as ações de regra, consulte [Usando ações de regras em AWS WAF](waf-rule-action.md). Para obter informações específicas sobre limitação de intervalo, consulte [Aplicando limitação de taxa às solicitações em AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md) nesta seção.
+ **Escopo de inspeção e limitação de intervalo**: você pode restringir o escopo das solicitações que a instrução baseada em intervalos acompanha e os limites de intervalo adicionando uma instrução de redução de escopo. Se você especificar uma instrução de redução de escopo, a regra somente agregará, contará e limitará o intervalo das solicitações que correspondam à instrução de redução de escopo. Se você escolher a opção de agregação de solicitações **Contar tudo**, a instrução de redução de escopo será necessária. Para saber mais sobre instruções de redução do escopo, consulte [Como usar instruções de escopo reduzido](waf-rule-scope-down-statements.md). 
+ **(Opcional) Configuração de IP encaminhado**: isso só é usado se você especificar o **Endereço IP no cabeçalho** da sua agregação de solicitações, isoladamente ou como parte das configurações de chaves personalizadas. O AWS WAF recupera o primeiro endereço IP no cabeçalho especificado e o usa como valor de agregação. Um cabeçalho comum para essa finalidade é `X-Forwarded-For`, mas você pode especificar qualquer cabeçalho. Para saber mais, consulte [Como usar endereços IP encaminhados](waf-rule-statement-forwarded-ip-address.md). 

# Advertências de regras baseadas em taxas em AWS WAF
<a name="waf-rule-statement-type-rate-based-caveats"></a>

Esta seção lista as advertências para o uso de regras baseadas em intervalos.

AWS WAF a limitação de taxa foi projetada para controlar as altas taxas de solicitação e proteger a disponibilidade do seu aplicativo da maneira mais eficiente e eficaz possível. Não se destina a limitar com precisão o intervalo de solicitações. 
+ AWS WAF estima a taxa de solicitações atual usando um algoritmo que dá mais importância às solicitações mais recentes. Por esse motivo, AWS WAF aplicará uma limitação de taxa próxima ao limite que você definiu, mas não garante uma correspondência exata do limite. 
+ Cada vez que AWS WAF estima a taxa de solicitações, AWS WAF analisa o número de solicitações recebidas durante a janela de avaliação configurada. Devido a esse e a outros fatores, como atrasos na propagação, é possível que as solicitações cheguem com uma taxa muito alta por vários minutos antes de serem AWS WAF detectadas e limitadas pela taxa. Da mesma forma, o intervalo de solicitações pode ficar abaixo do limite por um período de tempo antes de o AWS WAF detectar a diminuição e interromper a ação de limitação de intervalo. Normalmente, esse atraso é inferior a 30 segundos.
+ Se você alterar qualquer uma das configurações de limite de intervalo em uma regra que está em uso, a alteração redefinirá as contagens de limite de intervalo da regra. Isso pode pausar as atividades de limitação de intervalo da regra por até um minuto. As configurações de limite de intervalo são a janela de avaliação, o limite de intervalo, as configurações de agregação de solicitações, a configuração de IP encaminhado e o escopo da inspeção. 

# Agregando regras baseadas em taxas em AWS WAF
<a name="waf-rule-statement-type-rate-based-aggregation-options"></a>

Esta seção explica suas opções para agregar solicitações.

Por padrão, uma regra baseada em intervalo agrega e limita o intervalo das solicitações com base no endereço IP da solicitação. Você pode configurar a regra para usar várias outras chaves de agregação e combinações de teclas. Por exemplo, você pode agregar com base em um endereço IP encaminhado, no método HTTP ou em um argumento de consulta. Você também pode especificar combinações de chaves de agregação, como endereço IP e método HTTP, ou os valores de dois cookies diferentes. 

**nota**  
Todos os componentes da solicitação que você especifica na chave de agregação devem estar presentes em uma solicitação da web para que a solicitação seja avaliada ou o intervalo seja limitado pela regra. 

Você pode configurar sua regra baseada em intervalos com as seguintes opções de agregação. 
+ **Endereço IP de origem**: agregar usando apenas o endereço IP da origem da solicitação da web. 

  O endereço IP de origem pode não conter o endereço do cliente de origem. Se uma solicitação da web passar por um ou mais proxies ou balanceadores de carga, ela conterá o endereço do último proxy. 
+ **Endereço IP no cabeçalho**: agregar usando apenas um endereço de cliente em um cabeçalho HTTP. Isso também é conhecido como endereço IP encaminhado. 

  Com essa configuração, você também especifica um comportamento de fallback a ser aplicado a uma solicitação da web com um endereço IP incorreto no cabeçalho. O comportamento de fallback define o resultado correspondente da solicitação como correspondente ou não correspondente. Sem correspondência, a regra baseada em intervalos não conta nem limita o intervalo da solicitação. Para corresponder, a regra baseada em intervalos agrupa a solicitação junto com outras solicitações que têm um endereço IP incorreto no cabeçalho especificado. 

  Tenha cuidado com essa opção, pois os cabeçalhos podem ser tratados de forma inconsistente por proxies e também podem ser modificados para ignorar a inspeção. Para obter informações adicionais e práticas recomendadas, consulte [Usando endereços IP encaminhados em AWS WAF](waf-rule-statement-forwarded-ip-address.md).
+ **ASN**: agregue usando um número de sistema autônomo (ASN) associado ao endereço IP de origem como uma chave agregada. Esse pode não ser o endereço do cliente de origem. Se uma solicitação da Web passar por um ou mais proxies ou balanceadores de carga, ela conterá o endereço do último proxy. 

  Se não for AWS WAF possível derivar um ASN do endereço IP, ele contará o ASN como ASN 0. Se você não quiser aplicar a limitação de taxa aos não mapeados ASNs, você pode criar uma regra de redução de escopo que exclua solicitações com ASN 0.
+ **ASN no cabeçalho**: agregue usando um endereço IP associado a um cliente em um cabeçalho HTTP. Isso também é conhecido como endereço IP encaminhado. Com essa configuração, você também especifica um comportamento de fallback a ser aplicado a uma solicitação da Web com um endereço IP mal formado no cabeçalho. O comportamento de fallback define o resultado correspondente da solicitação como correspondente ou não correspondente. Se você definir o comportamento de fallback como correspondente na configuração de IP encaminhado, AWS WAF tratará o endereço IP inválido como um valor correspondente. Isso permite AWS WAF continuar avaliando todas as partes restantes da chave composta da regra baseada em taxas. Sem correspondência, a regra baseada em intervalos não conta nem limita o intervalo da solicitação. 

  Tenha cuidado com essa opção, pois os cabeçalhos podem ser tratados de forma inconsistente por proxies e podem ser modificados para ignorar a inspeção. Para obter informações adicionais e práticas recomendadas, consulte [Usando endereços IP encaminhados em AWS WAF](waf-rule-statement-forwarded-ip-address.md).
+ **Contar tudo**: contar e limitar o intervalo de todas as solicitações que correspondam à instrução de redução de escopo da regra. Essa opção requer uma instrução de redução de escopo. Isso geralmente é usado para limitar o intervalo de um conjunto específico de solicitações, como todas as solicitações com um rótulo específico ou todas as solicitações de uma área geográfica específica. 
+ **Chaves personalizadas**: agregar usando uma ou mais chaves de agregação personalizadas. Para combinar qualquer uma das opções de endereço IP com outras chaves de agregação, defina-as aqui em chaves personalizadas. 

  As chaves de agregação personalizadas são um subconjunto das opções do componente de solicitação da web descritas em [Solicitar componentes em AWS WAF](waf-rule-statement-fields-list.md).

  As principais opções são as seguintes. Exceto onde indicado, você pode usar uma opção várias vezes, por exemplo, dois cabeçalhos ou três namespaces de rótulo.
  + **Namespace de rótulo**: usar um namespace de rótulo como chave de agregação. Cada nome de rótulo distinto totalmente qualificado que tem o namespace de rótulo especificado contribui para a instância de agregação. Se você usar apenas um namespace de rótulo como chave personalizada, cada nome de rótulo definirá totalmente uma instância de agregação.

    A regra baseada em taxas usa somente rótulos que foram adicionados à solicitação por regras que são avaliadas previamente no pacote de proteção (ACL da Web).

    Para obter mais informações sobre namespaces, consulte [Sintaxe de rótulos e requisitos de nomenclatura em AWS WAF](waf-rule-label-requirements.md).
  + **Cabeçalho**: usar um cabeçalho nomeado como chave de agregação. Cada valor distinto no cabeçalho contribui para a instância de agregação. 

    O cabeçalho usa uma transformação de texto opcional. Consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md). 
  + **Cookie**: usar um cookie nomeado como chave de agregação. Cada valor distinto no cookie contribui para a instância de agregação. 

    O cookie faz uma transformação de texto opcional. Consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md). 
  + **Argumento de consulta**: usar um único argumento de consulta na solicitação como uma chave agregada. Cada valor distinto para o argumento de consulta nomeado contribui para a instância de agregação. 

    O argumento de consulta usa uma transformação de texto opcional. Consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md). 
  + **String de consulta**: use toda a string de consulta na solicitação como uma chave agregada. Cada string de consulta distinta contribui para a instância de agregação. Você pode usar esse tipo de chave uma vez. 

    A string de consulta usa uma transformação de texto opcional. Consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md). 
  + **Caminho do URI**: usar o caminho do URI na solicitação como uma chave agregada. Cada caminho de URI distinto contribui para a instância de agregação. Você pode usar esse tipo de chave uma vez. 

    O caminho do URI usa uma transformação de texto opcional. Consulte [Usando transformações de texto em AWS WAF](waf-rule-statement-transformation.md). 
  + **JA3 impressão digital** — Use a JA3 impressão digital na solicitação como uma chave agregada. Cada JA3 impressão digital distinta contribui para a instância de agregação. Você pode usar esse tipo de chave uma vez. 
  + **JA4 impressão digital** — Use a JA4 impressão digital na solicitação como uma chave agregada. Cada JA4 impressão digital distinta contribui para a instância de agregação. Você pode usar esse tipo de chave uma vez. 
  + **Método HTTP**: usar o método HTTP da solicitação como uma chave agregada. Cada método HTTP distinto contribui para a instância de agregação. Você pode usar esse tipo de chave uma vez. 
  + **Endereço IP**: agregar usando o endereço IP da origem da solicitação da web em combinação com outras chaves.

    Pode não conter o endereço do cliente de origem. Se uma solicitação da web passar por um ou mais proxies ou balanceadores de carga, ela conterá o endereço do último proxy. 
  + **Endereço IP no cabeçalho**: agregar usando o endereço do cliente em um cabeçalho HTTP em combinação com outras chaves. Isso também é conhecido como endereço IP encaminhado. 

    Tenha cuidado com essa opção, pois os cabeçalhos podem ser tratados de forma inconsistente por proxies e podem ser modificados para ignorar a inspeção. Para obter informações adicionais e práticas recomendadas, consulte [Usando endereços IP encaminhados em AWS WAF](waf-rule-statement-forwarded-ip-address.md).

# Instâncias e contagens de regras baseadas em intervalos
<a name="waf-rule-statement-type-rate-based-aggregation-instances"></a>

Esta seção explica como uma regra baseada em intervalos avalia as solicitações da Web.

Quando uma regra baseada em intervalos avalia solicitações da web usando seus critérios de agregação, cada conjunto exclusivo de valores que a regra encontra para as chaves de agregação especificadas define uma *instância de agregação* exclusiva. 
+ **Várias chaves**: se você definiu várias chaves personalizadas, o valor de cada chave contribuirá para a definição da instância de agregação. Cada combinação exclusiva de valores define uma instância de agregação. 
+ **Chave única**: se você escolheu uma chave única, seja nas chaves personalizadas ou selecionando uma das opções de endereço IP único, cada valor exclusivo da chave define uma instância de agregação. 
+ **Contar tudo: sem chaves**: se você selecionou a opção de agregação **Contar tudo**, todas as solicitações avaliadas pela regra pertencerão a uma única instância de agregação da regra. Essa escolha requer uma instrução de redução de escopo.

 

Uma regra baseada em intervalos conta solicitações da web separadamente para cada instância de agregação que identifica. 

Por exemplo, suponha que uma regra baseada em intervalos avalie solicitações da web com os seguintes valores de endereço IP e método HTTP: 
+ Endereço IP 10.1.1.1, método HTTP POST
+ Endereço IP 10.1.1.1, método HTTP GET
+ Endereço IP 127.0.0.0, método HTTP POST
+ Endereço IP 10.1.1.1, método HTTP GET

A regra cria diferentes instâncias de agregação de acordo com seus critérios de agregação. 
+ Se o critério de agregação for apenas o endereço IP, cada endereço IP individual será uma instância de agregação e AWS WAF contará as solicitações separadamente para cada um. As instâncias de agregação e as contagens de solicitações do nosso exemplo seriam as seguintes: 
  + Endereço IP 10.1.1.1: contagem 3
  + Endereço IP 127.0.0.0: contagem 1
+ Se o critério de agregação for o método HTTP, cada método HTTP individual será uma instância de agregação. As instâncias de agregação e as contagens de solicitações do nosso exemplo seriam as seguintes: 
  + Método HTTP POST: contagem 2
  + Método HTTP GET: contagem 2
+ Se os critérios de agregação forem endereço IP e método HTTP, cada endereço IP e cada método HTTP contribuirão para a instância de agregação combinada. As instâncias de agregação e as contagens de solicitações do nosso exemplo seriam as seguintes: 
  + Endereço IP 10.1.1.1, método HTTP POST: contagem 1
  + Endereço IP 10.1.1.1, método HTTP GET: contagem 2
  + Endereço IP 127.0.0.0, método HTTP POST: contagem 1

# Aplicando limitação de taxa às solicitações em AWS WAF
<a name="waf-rule-statement-type-rate-based-request-limiting"></a>

Esta seção explica como o comportamento da limitação de intervalos funciona para regras baseadas em intervalos.

Os critérios AWS WAF usados para limitar a taxa de solicitações de uma regra baseada em taxas são os mesmos AWS WAF usados para agregar solicitações para a regra. Se você definir uma instrução de escopo para a regra, AWS WAF somente agregará, contará e limitará as solicitações que correspondam à instrução de escopo reduzido. 

Os critérios de correspondência que fazem com que uma regra baseada em intervalos aplique as configurações de ação de regra a uma solicitação da web específica são os seguintes: 
+ A solicitação da web corresponde à instrução de redução de escopo da regra, se uma estiver definida.
+ A solicitação da web pertence a uma instância de agregação cuja contagem de solicitações está atualmente acima do limite da regra. 

**Como AWS WAF se aplica a ação da regra**  
Quando uma regra baseada em intervalos aplica limitação de intervalo a uma solicitação, ela aplica a ação da regra e, se você tiver definido algum tratamento ou rótulo personalizado em sua especificação de ação, a regra os aplica. Esse tratamento de solicitações é o mesmo que a forma como uma regra de correspondência aplica as configurações de ação às solicitações da web correspondentes. Uma regra baseada em intervalos só aplica rótulos ou executa outras ações em solicitações que estejam ativamente limitando o intervalo. 

Você pode usar qualquer ação de regra, exceto Allow. Para obter informações gerais sobre as ações de regra, consulte [Usando ações de regras em AWS WAF](waf-rule-action.md). 

A lista a seguir descreve como a limitação de intervalo funciona para cada uma das ações.
+ **Block**— AWS WAF bloqueia a solicitação e aplica qualquer comportamento de bloqueio personalizado que você tenha definido. 
+ **Count**— AWS WAF conta a solicitação, aplica todos os cabeçalhos ou rótulos personalizados que você definiu e continua a avaliação do pacote de proteção (Web ACL) da solicitação. 

  Essa ação não limita a taxa de solicitações. Ela apenas conta as solicitações que estão acima do limite.
+ **CAPTCHA ou Challenge**: o AWS WAF trata a solicitação como Block ou como Count, dependendo do estado do token da solicitação. 

  Essa ação não limita o intervalo de solicitações que têm tokens válidos. Isso limita o intervalo de solicitações que estão além do limite e sem tokens válidos.
  + Se a solicitação não tiver um token válido e não expirado, a ação bloqueia a solicitação e envia o quebra-cabeça CAPTCHA ou o desafio do navegador de volta ao cliente. 

    Se o usuário final ou o navegador do cliente responder com êxito, o cliente receberá um token válido e reenviará automaticamente a solicitação original. Se a limitação de intervalo para a instância de agregação ainda estiver em vigor, essa nova solicitação com o token válido e não expirado terá a ação aplicada a ela conforme descrito no próximo marcador.
  + Se a solicitação tiver um token válido e não expirado, a ação CAPTCHA ou Challenge verificará o token e não executará nenhuma ação sobre a solicitação, semelhante à ação Count. A regra baseada em taxas retorna a avaliação da solicitação ao pacote de proteção (ACL da Web) sem realizar nenhuma ação de encerramento, e o pacote de proteção (ACL da Web) continua sua avaliação da solicitação.

  Para obter informações adicionais, consulte [CAPTCHAe Challenge em AWS WAF](waf-captcha-and-challenge.md).

**Se você limitar o intervalo apenas do endereço IP ou do endereço IP encaminhado**  
Quando você configura a regra para limitar o intervalo somente do endereço IP para o endereço IP encaminhado, você pode recuperar a lista de endereços IP que a regra está limitando no momento. Se você estiver usando uma instrução de redução de escopo, as solicitações com intervalo limitado são apenas aquelas na lista de IPs que correspondem à instrução de redução de escopo. Para obter informações sobre como recuperar a lista de endereços IP, consulte [Como listar endereços IP que estão sendo limitados por regras baseadas em intervalos](listing-managed-ips.md).

# Exemplos de regras baseadas em taxas em AWS WAF
<a name="waf-rule-statement-type-rate-based-examples"></a>

Esta seção descreve exemplos de configurações para uma variedade de casos de uso comuns de regras baseadas em intervalos. 

Cada exemplo fornece uma descrição do caso de uso e, em seguida, mostra a solução nas listas JSON para as regras personalizadas configuradas. 

**nota**  
As listas JSON mostradas nesses exemplos foram criadas no console configurando a regra e depois editando-a usando o **Editor JSON de regras**. 

**Topics**
+ [Limite de intervalo das solicitações a uma página de login](waf-rate-based-example-limit-login-page.md)
+ [Limite de intervalo das solicitações a uma página de login a partir de qualquer endereço IP, par de agente de usuário](waf-rate-based-example-limit-login-page-keys.md)
+ [Limite de intervalo de solicitações sem um cabeçalho específico](waf-rate-based-example-limit-missing-header.md)
+ [Limite de intervalo de solicitações com rótulos específicos](waf-rate-based-example-limit-labels.md)
+ [Limite de intervalo das solicitações de rótulos com um namespace de rótulo especificado](waf-rate-based-example-limit-label-aggregation.md)
+ [Limite a taxa de solicitações com solicitações específicas ASNs](waf-rate-based-example-limit-asn.md)

# Limite de intervalo das solicitações a uma página de login
<a name="waf-rate-based-example-limit-login-page"></a>

Para limitar o número de solicitações à página de login do seu site sem afetar o tráfego para o resto do site, você pode criar uma regra baseada em intervalos com uma instrução de redução de escopo que corresponda às solicitações à sua página de login e com a agregação de solicitações definida como **Contar tudo**. 

A regra baseada em taxas contará todas as solicitações da página de login em uma única instância de agregação e aplicará a ação da regra a todas as solicitações que correspondam à declaração de escopo reduzido quando as solicitações excederem o limite.

A lista JSON a seguir mostra um exemplo dessa configuração de regra. A opção de agregação Contar tudo está listada no JSON como a `CONSTANT` da configuração. Este exemplo corresponde às páginas de login que começam com `/login`. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CONSTANT",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# Limite de intervalo das solicitações a uma página de login a partir de qualquer endereço IP, par de agente de usuário
<a name="waf-rate-based-example-limit-login-page-keys"></a>

Para limitar o número de solicitações de endereço IP na página de login do seu site, use pares de agentes de usuário que excedam seu limite, defina a agregação de solicitações como **Chaves personalizadas** e forneça os critérios de agregação. 

A lista JSON a seguir mostra um exemplo dessa configuração de regra. Neste exemplo, definimos o limite para 100 solicitações em um período de cinco minutos por endereço IP, par de agentes de usuário. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CUSTOM_KEYS",
      "CustomKeys": [
        {
          "Header": {
            "Name": "User-Agent",
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        },
        {
          "IP": {}
        }
      ],
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# Limite de intervalo de solicitações sem um cabeçalho específico
<a name="waf-rate-based-example-limit-missing-header"></a>

Para limitar o número de solicitações sem um cabeçalho específico, você pode usar a opção de agregação **Contar tudo** com uma instrução de redução de escopo. Configure a instrução de redução de escopo com uma instrução `NOT` lógica contendo uma instrução que retornará verdadeira somente se o cabeçalho existir e tiver um valor. 

A lista JSON a seguir mostra um exemplo dessa configuração de regra. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "AggregateKeyType": "CONSTANT",
      "EvaluationWindowSec": 300,
      "ScopeDownStatement": {
        "NotStatement": {
          "Statement": {
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "user-agent"
                }
              },
              "ComparisonOperator": "GT",
              "Size": 0,
              "TextTransformations": [
                {
                  "Type": "NONE",
                  "Priority": 0
                }
              ]
            }
          }
        }
      }
    }
  }
}
```

# Limite de intervalo de solicitações com rótulos específicos
<a name="waf-rate-based-example-limit-labels"></a>

Para limitar o número de solicitações de várias categorias, você pode combinar a limitação de intervalo com qualquer regra ou grupo de regras que adicione rótulos às solicitações. Para fazer isso, você configura o pacote de proteção (ACL da Web) da seguinte forma: 
+ Adicione as regras ou grupos de regras que adicionam rótulos e configure-os para que não bloqueiem ou permitam as solicitações que você deseja limitar. Se você usa grupos de regras gerenciadas, talvez seja necessário substituir algumas ações de regras de grupos de regras para Count alcançar esse comportamento. 
+ Adicione uma regra baseada em taxa ao seu pacote de proteção (web ACL) com uma configuração de número de prioridade maior do que as regras de rotulagem e os grupos de regras. AWS WAF avalia as regras em ordem numérica, começando pela mais baixa, para que sua regra baseada em taxas seja executada após as regras de rotulagem. Configure seu limite de intervalo nos rótulos usando uma combinação de correspondência de rótulos na instrução de redução de escopo e agregação de rótulos da regra. 

O exemplo a seguir usa o grupo de regras AWS Managed Rules da lista de reputação de IP da Amazon. A regra do grupo de regras `AWSManagedIPDDoSList` detecta e rotula solicitações IPs que são conhecidas por estarem ativamente envolvidas em atividades DDo S. A ação de regra é configurada para Count na definição do grupo de regras. Para saber mais sobre o grupo de regras, consulte [Grupo de regras gerenciadas da lista de reputação de IPs da Amazon](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon).

A lista JSON do pacote de proteção (ACL da Web) a seguir usa o grupo de regras de reputação de IP seguido por uma regra baseada em taxas de correspondência de rótulos. A regra baseada em intervalos usa uma instrução de redução de escopo para filtrar as solicitações que foram marcadas pela regra do grupo de regras. A instrução de regra baseada em intervalos agrega e limita as solicitações filtradas por seus endereços IP. 

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesAmazonIpReputationList",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesAmazonIpReputationList"
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "EvaluationWindowSec": 300,
          "AggregateKeyType": "IP",
          "ScopeDownStatement": {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList"
            }
          }
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 28,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# Limite de intervalo das solicitações de rótulos com um namespace de rótulo especificado
<a name="waf-rate-based-example-limit-label-aggregation"></a>

**nota**  
As regras de nível comum no grupo de regras gerenciadas do Controle de Bots adicionam rótulos para bots de várias categorias, mas só bloqueiam solicitações de bots não verificados. Para obter informações sobre essas regras, consulte [Lista de regras do Controle de Bots](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules).

Se você usa o grupo de regras gerenciadas do Controle de Bots, pode adicionar limitação de intervalo para solicitações de bots verificados individuais. Para fazer isso, você adiciona uma regra baseada em intervalos que é executada após o grupo de regras do Controle de Bots e agrega as solicitações por seus rótulos de nome de bot. Você especifica a chave de agregação do **Namespace do rótulo** e define a chave do namespace como `awswaf:managed:aws:bot-control:bot:name:`. Cada rótulo exclusivo com o namespace especificado definirá uma instância de agregação. Por exemplo, os rótulos `awswaf:managed:aws:bot-control:bot:name:axios` e `awswaf:managed:aws:bot-control:bot:name:curl` cada um definem uma instância de agregação.

A lista JSON de pacote de proteção (ACL da Web) a seguir mostra essa configuração. A regra nesse exemplo limita as solicitações de qualquer instância única de agregação de bots a 1000 em um período de dois minutos. 

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesBotControlRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesBotControlRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesBotControlRuleSet": {
                "InspectionLevel": "COMMON"
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesBotControlRuleSet"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 1000,
          "EvaluationWindowSec": 120,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "LabelNamespace": {
                "Namespace": "awswaf:managed:aws:bot-control:bot:name:"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 82,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# Limite a taxa de solicitações com solicitações específicas ASNs
<a name="waf-rate-based-example-limit-asn"></a>

Para limitar o número de solicitações de Números de Sistema Autônomo (ASNs) específicos com base no endereço IP das solicitações, defina a agregação da solicitação como *Chaves personalizadas* e forneça os critérios de agregação.

O JSON a seguir mostra um exemplo de agregação de regras ASNs derivada de endereços IP encaminhados encontrados no cabeçalho. `X-Forwarded-For` Se não for AWS WAF possível derivar um ASN porque o endereço IP está mal formado, o comportamento de fallback é definido como. `MATCH`

```
{
    "Name": "test-rbr",
    "Priority": 0,
    "Statement": {
        "RateBasedStatement": {
            "AggregateKeyType": "CUSTOM_KEYS",
            "CustomKeys": [
                {
                    "ASN": {}
                },
                {
                    "ForwardedIP": {}
                }
            ],
            "EvaluationWindowSec": 300,
            "ForwardedIPConfig": {
                "FallbackBehavior": "MATCH",
                "HeaderName": "X-Forwarded-For"
            },
            "Limit": 2000
        }
    },
    "VisibilityConfig": {
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr",
        "SampledRequestsEnabled": true
    }
}
```

# Como listar endereços IP que estão sendo limitados por regras baseadas em intervalos
<a name="listing-managed-ips"></a>

Esta seção explica como acessar a lista de endereços IP atualmente limitados por uma regra baseada em taxas usando a CLI, a API ou qualquer uma das. SDKs 

Se sua regra baseada em taxa agregar apenas o endereço IP ou o endereço IP encaminhado, você poderá recuperar a lista de endereços IP que a regra limita atualmente. AWS WAF armazena esses endereços IP na lista de chaves gerenciadas da regra. 

**nota**  
Essa opção só estará disponível se você agregar somente o endereço IP ou somente um endereço IP em um cabeçalho. Se você usar a agregação de solicitações de chaves personalizadas, não poderá recuperar uma lista de endereços IP com intervalos limitados, mesmo se usar uma das especificações de endereço IP em suas chaves personalizadas.

Uma regra baseada em intervalos aplica sua ação de regra às solicitações da lista de chaves gerenciadas da regra que correspondem à instrução de escopo da regra. Quando uma regra não tem uma instrução de redução de escopo, ela aplica a ação a todas as solicitações dos endereços IP que estão na lista. A ação de regra é Block por padrão, mas pode ser qualquer ação de regra válida, exceto Allow. O número máximo de endereços IP que AWS WAF podem limitar a taxa usando uma única instância de regra baseada em taxa é 10.000. Se mais de 10.000 endereços excederem o limite de taxa, AWS WAF limite aqueles com as taxas mais altas. 

Você pode acessar a lista de chaves gerenciadas de uma regra baseada em taxas usando a CLI, a API ou qualquer uma das. SDKs Este tópico aborda o acesso usando a CLI e. APIs O console não fornece acesso à lista no momento. 

Para a AWS WAF API, o comando é [GetRateBasedStatementManagedKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRateBasedStatementManagedKeys.html).

[Para a AWS WAF CLI, o comando é get-rate-based-statement -managed-keys.](https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-rate-based-statement-managed-keys.html) 

Veja a seguir a sintaxe para recuperar a lista de endereços IP com taxa limitada para uma regra baseada em taxas que está sendo usada em um pacote de proteção (web ACL) em uma distribuição da Amazon. CloudFront 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=CLOUDFRONT --region=us-east-1 --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

Veja a seguir a sintaxe de um aplicativo regional, uma API REST do Amazon API Gateway, um Application Load Balancer, uma API AWS AppSync GraphQL, um grupo de usuários do Amazon Cognito, AWS App Runner um serviço AWS Amplify ou uma instância de acesso verificado. AWS 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

AWS WAF monitora solicitações da web e gerencia as chaves de forma independente para cada combinação exclusiva de pacote de proteção (Web ACL), grupo de regras opcional e regra baseada em taxas. Por exemplo, se você definir uma regra baseada em taxas dentro de um grupo de regras e, em seguida, usar o grupo de regras em um pacote de proteção (ACL da Web), o AWS WAF monitorará as solicitações da Web e gerenciará as chaves para esse pacote de proteção (ACL da Web), instrução de referência do grupo de regras e instância de regra baseada em taxas. Se você usar o mesmo grupo de regras em um segundo pacote de proteção (Web ACL), AWS WAF monitora as solicitações da Web e gerencia as chaves para esse segundo uso de forma totalmente independente da primeira.

Para uma regra baseada em taxas definida dentro de um grupo de regras, você precisa fornecer o nome da instrução de referência do grupo de regras em sua solicitação, além do nome do pacote de proteção (ACL da Web) e do nome da regra baseada em taxas dentro do grupo de regras. Veja a seguir a sintaxe de uma aplicação regional na qual a regra baseada em taxas é definida dentro de um grupo de regras e o grupo de regras é usado em um pacote de proteção (ACL da Web). 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-group-rule-name=RuleGroupRuleName --rule-name=RuleName
```

# Usando declarações de regras de grupos de regras em AWS WAF
<a name="waf-rule-statements-rule-group"></a>

**nota**  
As instruções de regras de grupo de regras não são aninháveis. 

Esta seção descreve as instruções das regras do grupo de regras que você pode usar no pacote de proteção (ACL da Web). As unidades de capacidade () do pacote de proteção de grupos de regras (Web ACLWCUs) são definidas pelo proprietário do grupo de regras no momento da criação. Para obter informações sobre WCUs, consulte[Unidades de capacidade do Web ACL (WCUs) em AWS WAF](aws-waf-capacity-units.md). 


| Instrução do grupo de regras | Description | WCUs | 
| --- | --- | --- | 
|  [Como usar instruções de grupos de regras gerenciadas](waf-rule-statement-type-managed-rule-group.md)  |  Executa as regras definidas no grupo de regras gerenciadas especificado.  Você pode restringir o escopo das solicitações que o grupo de regras avalia adicionando uma instrução de redução de escopo.  Você não pode aninhar uma instrução de grupo de regras dentro de qualquer outro tipo de instrução.  |  Definido pelo grupo de regras, além de qualquer adicional WCUs para uma instrução de escopo reduzido.  | 
| [Como usar as instruções de grupos de regras](waf-rule-statement-type-rule-group.md) | Executa as regras definidas em um grupo de regras que você gerencia.  Não é possível adicionar uma instrução de redução de escopo a uma instrução de referência de grupo de regras para seu próprio grupo de regras.  Você não pode aninhar uma instrução de grupo de regras dentro de qualquer outro tipo de instrução  | Você define o limite de WCU para o grupo de regras ao criá-lo. | 

# Usando declarações de grupos de regras gerenciadas em AWS WAF
<a name="waf-rule-statement-type-managed-rule-group"></a>

Esta seção explica como as informações de regras de grupos de regras gerenciadas funcionam.

A instrução de regra de grupo de regras gerenciadas adiciona uma referência à lista de regras do pacote de proteção (ACL da Web) a um grupo de regras gerenciadas. Você não vê essa opção em suas instruções de regra no console, mas quando trabalha com o formato JSON da ACL da Web, todos os grupos de regras gerenciadas que você adicionou aparecem sob as regras do pacote de proteção (ACL da Web) como esse tipo.

Um grupo de regras gerenciadas é um grupo de regras AWS gerenciadas, a maioria dos quais é gratuita para AWS WAF clientes, ou um grupo de regras AWS Marketplace gerenciadas. Você se inscreve automaticamente nos grupos de regras pagas do AWS Managed Rules ao adicioná-los ao seu pacote de proteção (web ACL). Você pode se inscrever em grupos de regras AWS Marketplace gerenciados por meio de AWS Marketplace. Para obter mais informações, consulte [Usando grupos de regras gerenciados em AWS WAF](waf-managed-rule-groups.md).

Ao adicionar um grupo de regras a um pacote de proteção (ACL da Web), você pode modificar as ações das regras no grupo para Count ou para outra ação de regra. Para obter mais informações, consulte [Substituindo ações do grupo de regras em AWS WAF](web-acl-rule-group-override-options.md).

Você pode restringir o escopo das solicitações que são AWS WAF avaliadas com o grupo de regras. Para fazer isso, você adiciona uma instrução de redução de escopo dentro da instrução do grupo de regras. Para informações sobre instruções de redução de escopo, consulte [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md). Isso pode ajudá-lo a gerenciar como o grupo de regras afeta seu tráfego e pode ajudá-lo a conter os custos associados ao volume de tráfego quando você usa o grupo de regras. Para obter informações e exemplos de uso de instruções de escopo reduzido com o grupo de regras gerenciadas do AWS WAF Bot Control, consulte. [AWS WAF Controle de bots](waf-bot-control.md)

## Características das instruções de regras
<a name="managed-rule-group-rule-statement-characteristics"></a>

**Não aninhável**: você não pode aninhar esse tipo de instrução dentro de outras instruções e não pode incluí-la em um grupo de regras. Você pode incluí-la diretamente em um pacote de proteção (ACL da Web). 

**(Opcional) Instrução de redução de escopo**: esse tipo de regra usa uma instrução opcional de redução de escopo para restringir o escopo das solicitações que o grupo de regras avalia. Para obter mais informações, consulte [Usando declarações de escopo reduzido em AWS WAF](waf-rule-scope-down-statements.md).

**WCUs**— Definido para o grupo de regras na criação.

## Onde encontrar essa instrução de regra
<a name="managed-rule-group-rule-statement-where-to-find"></a>
+ **Console**: durante o processo de criação de um pacote de proteção (ACL da Web), na página **Adicionar regras e grupos de regras**, escolha **Adicionar grupos de regras gerenciadas** e, em seguida, localize e selecione o grupo de regras que você deseja usar.
+ **API**: [ManagedRuleGroupStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ManagedRuleGroupStatement.html)

# Usando declarações de grupos de regras em AWS WAF
<a name="waf-rule-statement-type-rule-group"></a>

Esta seção explica como as instruções de regras de grupos de regras funcionam.

A instrução de regra do grupo de regras adiciona uma referência à lista de regras de pacote de proteção (ACL da Web) a um grupo de regras que você gerencia. Você não vê essa opção em suas instruções de regra no console, mas quando trabalha com o formato JSON do pacote de proteção (ACL da Web), os seus próprios grupos de regras adicionados aparecem sob as regras do pacote de proteção (ACL da Web) como esse tipo. Para obter informações sobre como usar seus próprios grupos de regras, consulte [Gerenciar seus próprios grupos de regras](waf-user-created-rule-groups.md).

Ao adicionar um grupo de regras a um pacote de proteção (ACL da Web), você pode modificar as ações das regras no grupo para Count ou para outra ação de regra. Para saber mais, consulte [Substituindo ações do grupo de regras em AWS WAF](web-acl-rule-group-override-options.md).

## Características das instruções de regras
<a name="rule-group-rule-statement-characteristics"></a>

**Não aninhável**: você não pode aninhar esse tipo de instrução dentro de outras instruções e não pode incluí-la em um grupo de regras. Você pode incluí-la diretamente em um pacote de proteção (ACL da Web). 

**WCUs**— Definido para o grupo de regras na criação.

## Onde encontrar essa instrução de regra
<a name="rule-group-rule-statement-where-to-find"></a>
+ **Console**: durante o processo de criação de um pacote de proteção (ACL da Web), na página **Adicionar regras e grupos de regras**, escolha **Adicionar minhas próprias regras e grupos de regras**, **Grupo de regras** e depois adicione o grupo de regras que você deseja usar.
+ **API**: [RuleGroupReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroupReferenceStatement.html)