如何在 AWS WAF 中启用日志筛选?

上次更新日期:2022 年 7 月 26 日

我不想记录 Web ACL 分析的所有请求,但我想记录被阻止的请求。我该如何在 AWS WAF 中执行此操作?

解决方法

使用 AWS WAF 日志筛选功能,在评估请求时,根据规则操作或规则生成的标签筛选出日志条目。日志筛选可仅发布您选择的日志,从而帮助您节省 Amazon Kinesis Data Firehose 和存储成本。例如,您可以仅记录被阻止的请求。

要筛选 AWS WAF 日志,您必须先启用 AWS WAF 日志记录。有关启用 AWS WAF 日志记录的说明,请参阅如何启用 AWS WAF 日志记录并将日志发送到 Amazon CloudWatch、Amazon S3 或 Kinesis Data Firehose?

注意:使用 AWS 日志筛选无需额外付费。

启用 AWS WAF 日志筛选

  1. 打开 AWS WAF 控制台
  2. 对于 Region(区域),选择您创建 Web ACL 的 AWS 区域。
    注意:如果您的 Web ACL 是为 Amazon CloudFront 设置的,请选择 Global(全球)。
  3. 选择您的 Web ACL。
  4. 选择 Logging and Metrics(日志记录和指标)。
  5. 对于 Filter logs(筛选日志),选择 Add filter(添加筛选条件)。
  6. 添加一个或多个筛选条件。然后,选择条件是要 Match all of the filter conditions(匹配所有筛选条件)还是要 Match at least one of the filter conditions(匹配至少一个筛选条件)。
  7. 对于 Filter conditions(筛选条件),选择 Rule Action on request(对请求执行的规则操作)或 Request has label(请求有标签)。
    对于 Rule Action(规则操作),根据规则执行的操作进行筛选,例如 Allow(允许)、Block(阻止)、Count(计数)或 CAPTCHA(验证码)。
    对于 Request has label(请求有标签),在评估请求时,根据添加到 AWS WAF 的标签进行筛选。
  8. 对于 Filter behavior(筛选行为),选择 Keep in logs(保留在日志中)或 Drop from logs(从日志中删除)。
  9. 选择 Default logging(默认日志记录)行为。
  10. 选择 Save(保存)。

仅记录被阻止的请求

要仅记录 AWS WAF 阻止的请求,请选择基于 Rule Action(规则操作)和 Block(阻止)操作的筛选。

阻止操作是针对 AWS WAF 的终止操作。AWS WAF 日志筛选器会检查 AWS WAF 日志条目的终止规则操作。如果操作为 Block(阻止),则筛选日志条目会经过筛选选,然后添加到日志中。

记录来自规则组的计数请求

规则组中规则的设置方式决定日志是否要经过筛选:

  • 当规则组中某个规则的操作设置为 Count(计数)时,匹配此规则的请求日志则不包含此规则的 Count(计数)操作。相反,AWS WAF 日志在 excludedRules 字段下显示此规则,筛选 AWS WAF 日志以执行计数操作时,不会选中这些字段。这意味着日志筛选不会针对 Count(计数)操作筛选这些请求。
  • 系统将记录与规则组操作为 Override to Count(覆盖计数)的规则组中的规则匹配的请求。对于这些请求,AWS WAF 日志在 nonTerminatingMatchingRules 字段中包含 Count(计数)操作,在系统筛选 AWS WAF 日志中的 Count(计数)操作时会选中此字段。

注意:EXCLUDED_AS_COUNT 是用于日志筛选的有效操作类型。此选项可以使用 PutLoggingConfiguration API 进行配置。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?