Quero identificar a regra do AWS WAF que está bloqueando minha solicitação ou respondendo com um erro 403 Forbidden.
Breve descrição
Por padrão, o AWS WAF retorna um erro “403 Forbidden” para solicitações que correspondem às regras do AWS WAF com a ação Bloquear. Se você configurar respostas personalizadas para ações Bloquear, o AWS WAF retorna sua resposta configurada.
Para solucionar o erro “403 Forbidden”, use Solicitações amostradas ou logs do AWS WAF para identificar a regra ou o grupo de regras do AWS WAF que bloqueia a solicitação. Em seguida, modifique a regra para permitir sua solicitação.
Resolução
Use solicitações amostradas
Se sua solicitação foi bloqueada pelo AWS WAF nas últimas 3 horas, é possível ver uma amostra das solicitações da web bloqueadas. Se o AWS WAF bloqueou sua solicitação há mais de 3 horas, reenvie a mesma solicitação para gerar uma nova solicitação amostrada.
Na tabela Solicitações amostradas, revise as seguintes colunas:
- As colunas IP de origem e URI para identificar a solicitação.
- A coluna Nome da métrica para identificar a regra ou o grupo de regras que corresponde à solicitação. Se um grupo de regras estiver bloqueando a solicitação, use a coluna Regra dentro do grupo de regras para identificar a regra.
- A coluna Ação para confirmar que a regra está definida como Bloquear.
Use os logs do AWS WAF
Observação: se o registro em log do AWS WAF não estava ativado no momento da sua solicitação, ative o registro em log do AWS WAF e reenvie a mesma solicitação.
Use as consultas em seus logs do AWS WAF para identificar as solicitações bloqueadas. Para consultar os logs do AWS WAF que você armazena no Amazon CloudWatch Logs, use as consultas do Amazon CloudWatch Logs Insights. Use as consultas do Amazon Athena para consultar os logs do AWS WAF que estão armazenados no Amazon Simple Storage Solution (Amazon S3).
Exemplos de consultas do CloudWatch Logs Insights
Para obter as 10 principais regras de encerramento, execute a seguinte consulta:
fields terminatingRuleId
| stats count() as requestCount by terminatingRuleId
| sort requestCount desc
| limit 10
Para resumir as solicitações bloqueadas pelo AWS WAF por endereço IP, país, URI e regra do cliente, execute a seguinte consulta:
fields httpRequest.clientIp as ClientIP, httpRequest.country as Country, httpRequest.uri as URI, terminatingRuleId as Rule
| filter action = "BLOCK"
| stats count() as RequestCount by Country, ClientIP, URI, Rule
| sort RequestCount desc
Observação: na saída, o campo terminatingRuleId identifica a regra ou o grupo de regras do AWS WAF que está bloqueando a solicitação.
Exemplo de consulta do Athena
Para logs do AWS WAF que você armazena em um bucket do Amazon S3, use o Athena para criar uma tabela do AWS WAF que consulta logs e filtra detalhes. Para obter mais informações, consulte Consultar logs do AWS WAF. Em seguida, execute as consultas na tabela.
Por exemplo, para ver o número de solicitações bloqueadas pelo AWS WAF com base no endereço IP e no país do cliente, execute a seguinte consulta:
SELECT "httprequest"."clientip"
,"count"(*) "count"
, "httprequest"."country"
FROM
waf_logs
WHERE ("action" LIKE 'BLOCK')
GROUP BY "httprequest"."clientip", "httprequest"."country"
ORDER BY "count" DESC
Modifique a regra do AWS WAF para permitir sua solicitação
Se a regra de bloqueio estiver em um grupo de regras do AWS Managed Rules, personalize o comportamento da regra.
Se a regra de bloqueio for uma regra personalizada, atualize os parâmetros da regra para usar uma declaração de regra para permitir a solicitação.
Informações relacionadas
Como ativo logs do AWS WAF e envio logs para o CloudWatch, o Amazon S3 ou o Firehose?
Como analiso os logs do AWS WAF no CloudWatch?