Условия и место поиска
Работа начинается с конкретного защищаемого приложения и времени жалобы. Запишите account, регион, scope и идентификатор web ACL, а также источник получения копии журнала. Зафиксируйте, к какому ресурсу был привязан ACL в рассматриваемый момент: текущая конфигурация могла измениться после события. Включённые метрики и выборка sampled requests не заменяют полный журнал. Назначения журналирования описаны в документации AWS. Здесь рассматривается AWS WAF v2 с formatVersion 1; настройки вашей среды и доставку данных нужно подтвердить отдельно.
Отбор записей
Получите доступную копию за небольшой интервал вокруг запроса и сохраните её неизменённой. Сначала найдите action=BLOCK, затем уточните webaclId, URI, метод и доступный requestId. jq только читает уже экспортированный JSONL; он не обращается к облаку и не меняет правила. Если выгрузка содержит JSON-массив или обёртку транспортного сервиса, сначала установите формат, не применяйте команду вслепую. Сохраняйте целую найденную запись рядом с кратким выводом, чтобы не потерять вложенные правила.
Как прочитать пример
В синтетическом фрагменте DemoRequestPolicy завершило оценку запроса POST /login действием BLOCK. Это собственное правило, поэтому пустой ruleGroupList ожидаемо не содержит внутренней причины группы. Если terminatingRuleId обозначает группу, ищите её terminatingRule внутри ruleGroupList. Пустой массив match details не доказывает, что срабатывание не связано с подозрительным содержимым: подробности не заполняются одинаково для всех типов правил. Не делайте вывод о классификации атаки только по имени правила, выбранному администратором.
Интерпретация результата
Block завершает проверку WAF и препятствует передаче данного запроса защищаемому ресурсу; стандартный ответ может быть заменён настройками пользовательского ответа. Поэтому сравните WAF-решение с наблюдением клиента и журналом обслуживающей инфраструктуры. Несколько ответов 403 могут иметь разных авторов: приложение, прокси, авторизация и WAF. Адрес клиента трактуйте с учётом цепочки доставки и конкретного поля, а не как доказанную личность. Допустимый вывод этой карточки — какое решение WAF принято по найденному запросу.
Следующий шаг
Проверьте версию конфигурации и приоритет правила на момент события, условия исключений и ожидаемое поведение приложения. При повторяющихся отказах сравните легитимный и проблемный запросы по метаданным, не перенося секреты из заголовков в заметку. Затем сопоставьте requestId и время с доступными журналами приложения или балансировщика. Отдельно зафиксируйте, подтверждена ли попытка воздействия и есть ли свидетельства её результата. Отключение защиты или перевод правила в Count не входит в этот маршрут чтения.
Если записи нет
Проверьте правильность ACL и назначения, временную зону, период хранения, права чтения и фильтры отправки. Redaction скрывает выбранные значения, а log filtering может исключать целые записи; это разные причины неполноты. AWS также описывает доставку как best effort. Поэтому отсутствие одной строки не доказывает, что WAF не видел запрос. Сопоставьте независимые журналы обслуживающего ресурса и запишите конкретный пробел: неизвестный ACL, недоступный период или неполная доставка, вместо категоричного вывода «блокирования не было». Ошибка чтения файла, отказ в доступе или ошибка разбора JSON не являются пустой выборкой. Для этого шага нужны права чтения выданной копии; при их отсутствии запросите доступную копию у владельца источника, сохранив сообщение об ошибке.