如何清理 AWS WAF 日志记录?
我想在 AWS WAF 中记录被阻止的请求。但是,我不想记录我的保护包分析的所有请求。
简短描述
借助 AWS WAF 日志筛选功能,您可以对记录的 Web 请求进行筛选,仅保留要分析的信息。您可以指定 Web 请求在完成检查后是被记录还是从日志中丢弃。这可以节省日志传输和存储成本,因为 AWS WAF 仅发布您所需的日志。
要筛选 AWS WAF 日志,首先请启用 AWS WAF 日志记录。
要清理日志,请实施字段脱敏和日志筛选。
**字段脱敏:**对您希望排除在日志之外的请求部分进行脱敏。您可以从日志记录中省略以下字段: URI 路径、查询字符串、单个标头和 HTTP 方法。脱敏后的字段在日志中显示为 REDACTED。
**日志筛选:**指定筛选条件,根据规则操作或规则在评估期间生成的标签来筛选日志条目。要针对包含某个标签的所有请求筛选 AWS WAF 日志,您需要包含所有使用完全限定标签名称的标签。请使用以下格式:awswaf:account_number:webacl:webacl_name:namespace:label name。
**注意:**使用 AWS 日志筛选功能无需额外付费。但是,日志记录目标会产生费用。这包括 Amazon CloudWatch、Amazon Simple Storage Service (Amazon S3) 存储桶和 Amazon Data Firehose 传输流。
使用 AWS WAF 控制台启用 AWS WAF 日志筛选
- 打开 AWS WAF 控制台。
- 对于 Region(区域),选择您创建了保护包的 AWS 区域。
- 在导航窗格中,选择 Resources & protection packs(资源和保护包)。
- 在保护包的右侧,选择区域名称旁边的图标以选择保护包。
- 在您选择的保护包中,选择 Logging(日志记录)。
- 选择日志记录旁边的 View and edit(查看和编辑),查看或修改与此保护包关联的日志记录配置。
- 在 Data protection settings(数据保护设置)下,选择 active(启用)。
- 在 Scope(范围)下,选择 Logging destination only(仅限日志记录目标)。
- 选择目标类型和 Cloudwatch 日志组。
- 对于 Redacted Fields(脱敏字段),请选择要从日志中删除的字段。
**注意:**如果要对单个标头字段进行脱敏,请指定自定义标头。 - 对于 Filter conditions(筛选条件),选择 Rule Action on request(对请求执行的规则操作)或 Request has label(请求有标签)。
对于 Rule Action on request(对请求执行的规则操作),选择用于筛选 AWS WAF 日志的规则操作。例如: 允许、阻止、计数、CAPTCHA 或质询。
对于 Request has label(请求有标签),请输入在评估请求时添加到 AWS WAF 的标签。 - 对于 Filter behavior(筛选行为),选择 Keep in logs(保留在日志中)或 Drop from logs(从日志中删除)。
- 对于“保留在日志中”或“从日志中删除”,选择默认的日志记录行为。
- 选择 Save(保存)。
使用 AWS 命令行界面 (AWS CLI) 启用 AWS WAF 日志筛选
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
- 要获取当前的日志记录配置,请运行 get-logging-configuration:
**注意:**将 region 替换为您的 Web ACL 所在的 AWS 区域,将 resource-arn 替换为您的 Web ACL 的 Amazon 资源名称 (ARN),将 webacl_name 替换为您的 Web ACL 的名称。aws wafv2 get-logging-configuration --region region--resource-arn arn:aws:wafv2:region:account_number:regional/webacl/webacl_name/webacl_id > waf.json - 打开日志记录配置文件,然后添加以下 JSON 过滤器:
**注意:**将筛选条件和筛选操作替换为您所需的筛选条件。"LoggingFilter": { "DefaultBehavior": "string", "Filters": [ { "Behavior": "string", "Conditions": [ { "ActionCondition": { "Action": "string" }, "LabelNameCondition": { "LabelName": "string" } } ], "Requirement": "string" } ] } - 要更新您的日志记录配置,请运行 put-logging-configuration:
**注意:**将 region 替换为您的 Web ACL 所在区域。aws wafv2 put-logging-configuration --region region --cli-input-json file://waf.json
仅记录被阻止的请求
如需仅记录被 AWS WAF 阻止的请求,请选择基于 Rule Action(规则操作)的筛选,然后将操作设置为 Block(阻止)。Block(阻止)是 AWS WAF 中的一项终止操作。AWS WAF 日志筛选会检查 AWS WAF 日志条目的终止规则操作。如果操作为 Block(阻止),则 AWS WAF 日志筛选会将该条目添加到日志中。
记录来自规则组的计数请求
规则组中规则的设置方式决定了日志是否会筛选计数请求。
**规则组中规则的操作设置为 Count(计数):**与此规则匹配的请求日志不包含 Count(计数)操作。相反,AWS WAF 日志会在 excludedRules 字段下显示此规则。AWS WAF 在按 Count(计数)筛选日志时不会检查此字段。这意味着这些请求不会被 Count(计数)操作的日志筛选条件筛选出来。
**包含非终止操作“计数”的规则与终止规则操作(例如“允许”或“阻止”)一起检查时:**AWS WAF 日志会将这些请求包含在按 Count(计数)操作筛选的日志中。
规则组中规则的操作设置为 Override to Count(覆盖为计数): 对于这些请求,AWS WAF 日志会在 nonTerminatingMatchingRules 字段中包含 Count(计数)操作。AWS WAF 日志筛选会检查此字段,因此该规则会按 Count(计数)操作进行筛选。
**注意:**EXCLUDED_AS_COUNT 是日志筛选的有效操作类型。运行 put-logging-configuration 命令来配置此操作。
相关信息
相关内容
AWS 官方已更新 10 个月前