En los ejemplos de esta sección se consultan los recuentos de elementos de registro de interés.
ejemplo : contar el número de referencias que contienen un término especificado
La siguiente consulta cuenta el número de referencias que contienen el término “amazon” para el intervalo de fechas especificado.
WITH test_dataset AS
(SELECT header FROM waf_logs
CROSS JOIN UNNEST(httprequest.headers) AS t(header) WHERE "date" >= '2021/03/01'
AND "date" < '2021/03/31')
SELECT COUNT(*) referer_count
FROM test_dataset
WHERE LOWER(header.name)='referer' AND header.value LIKE '%amazon%'
ejemplo : contar todas las direcciones IP coincidentes en los últimos 10 días que coincidieron con las reglas excluidas
En la siguiente consulta se cuenta el número de veces que, en los últimos 10 días, la dirección IP coincidió con la regla excluida del grupo de reglas.
WITH test_dataset AS
(SELECT * FROM waf_logs
CROSS JOIN UNNEST(rulegrouplist) AS t(allrulegroups))
SELECT
COUNT(*) AS count,
"httprequest"."clientip",
"allrulegroups"."excludedrules",
"allrulegroups"."ruleGroupId"
FROM test_dataset
WHERE allrulegroups.excludedrules IS NOT NULL AND from_unixtime(timestamp/1000) > now() - interval '10' day
GROUP BY "httprequest"."clientip", "allrulegroups"."ruleGroupId", "allrulegroups"."excludedrules"
ORDER BY count DESC
ejemplo : agrupar todas las reglas administradas contadas por el número de veces que coinciden
Si estableció las acciones de reglas del grupo de reglas en Contar en su configuración de ACL web antes del 27 de octubre de 2022, AWS WAF guardó las anulaciones en el archivo JSON de ACL web como excludedRules
. Ahora, la configuración JSON para anular una regla en Contar se encuentra en la configuración ruleActionOverrides
. Para obtener más información, consulte Anulación de acciones en grupos de reglas en la Guía para desarrolladores de AWS WAF. Para extraer las reglas administradas en el modo Contar de la estructura de registro nueva, consulte nonTerminatingMatchingRules
en la sección ruleGroupList
en lugar del campo excludedRules
, como en el siguiente ejemplo.
SELECT
count(*) AS count,
httpsourceid,
httprequest.clientip,
t.rulegroupid,
t.nonTerminatingMatchingRules
FROM "waf_logs"
CROSS JOIN UNNEST(rulegrouplist) AS t(t)
WHERE action <> 'BLOCK' AND cardinality(t.nonTerminatingMatchingRules) > 0
GROUP BY t.nonTerminatingMatchingRules, action, httpsourceid, httprequest.clientip, t.rulegroupid
ORDER BY "count" DESC
Limit 50
ejemplo : agrupar todas las reglas personalizadas contadas por el número de veces que coinciden
En la siguiente consulta se agrupan todas las reglas personalizadas contadas según el número de veces que coinciden.
SELECT
count(*) AS count,
httpsourceid,
httprequest.clientip,
t.ruleid,
t.action
FROM "waf_logs"
CROSS JOIN UNNEST(nonterminatingmatchingrules) AS t(t)
WHERE action <> 'BLOCK' AND cardinality(nonTerminatingMatchingRules) > 0
GROUP BY t.ruleid, t.action, httpsourceid, httprequest.clientip
ORDER BY "count" DESC
Limit 50
Para obtener información sobre las ubicaciones de registro de las reglas personalizadas y los grupos de reglas administrados, consulte Supervisión y ajuste en la Guía para desarrolladores de AWS WAF.