亚马逊AWS官方博客
亚马逊云科技 WAF 部署小指南(二)使用经济实用的 Log Insights 进行日志分析
方案介绍
亚马逊云科技 WAF 是一个网页应用的防火墙服务。它能帮助保护您的网页应用或网页 API 应对常见的网页攻击。在 WAF 部署小指南(一) 中,我们讨论了 WAF 的原理,如何使用 WAF,以及如何将 WAF 日志存储在 S3 中,并通过 Athena 进行查询。其优势在于成本低,但相应的缺点为查询所需人力成本较高。
那么如何简单快速地查看日志呢?这就是 WAF 部署小指南(二)、(三)、(四)中涉及到的内容了。当我们对于日志有查看单个日志、编译聚合报告、创建可视化内容和构建控制面板的需求,而对于实时性可以容忍分钟级别的延迟,并希望最大性价比。在这种情况下,我们可以参考本篇博客。如果对安全运营要求比较高,需要频繁进行 WAF 日志分析的场景。请参考 WAF 部署小指南(三)(四)的解决方案。
2021 年 12 月,亚马逊云科技 WAF 新增了可将日志直接发送到 CloudWatch Logs 日志组的功能。本博客旨在使用 CloudWatch Log 收集 WAF 日志,并使用 CloudWatch Logs Insights 直接在 WAF 控制台中搜索和分析 WAF 日志。使用 CloudWatch Logs Insights,查看单个日志、编译聚合报告、创建可视化内容和构建控制面板。
内容简介
本文承接 WAF 部署小指南(一)中搭建测试环境的步骤后,并通过后续两个步骤展示如何使用 CloudWatch Logs Insights。
- 先决条件:参考 WAF 部署小指南(一)中步骤一至步骤四,搭建并配置实验环境。包括创建 WAF 的 Web ACL,创建测试用的 ALB 及 Web 服务器,关联 Web ACL 与 ALB,及调整 WAF 规则。
- 步骤五:打开 WAF 日志设置并存储至 CloudWatch Logs 日志组中。
- 步骤六:使用 CloudWatch Logs Insights 搜索分析日志。
架构图:
先决条件
我们可以先参考 WAF 部署小指南(一)的步骤一到四搭建并配置实验环境,包括:
- 步骤一:创建 WAF 的 Web ACL。
- 步骤二:创建一个测试用的 Web 服务器和 ALB 以测试 WAF 的防护效果。
- 步骤三:把我们创建的 Web ACL 与步骤二创建的 ALB 关联起来,以使 WAF 防护功能生效。
- 步骤四:对 WAF 规则做一些常用的配置调整。
步骤五. 启用日志
WAF 日志搜集和处理有多种选择。这里介绍 CloudWatch Logs 的方法。这种方法适用于当我们对于日志有查看单个日志、编译聚合报告、创建可视化内容和构建控制面板的需求,而对于实时性可以容忍分钟级别的延迟时。
- 启用 WAF 日志:
在日志记录选择方面,我们选择直接把日志放入 CloudWatch Logs log group。
然后我们需要创建一个 CloudWatch Logs log group,注意桶名必须以 aws-waf-logs-开始。否则我们在下拉框里就看不到这个新建的 log group。
完成后点击 Next,WAF 日志就会随后送到这个指定的 log group 了。
要查看 WAF 日志,我们可以去 CloudWatch Log Insights 查看,如下图。使用 Query 语句进行查看即可。
对于 query 语句,我们也提供了一些事例,当然您也可以根据自己的需要编写。
如果需要查看详细日志,只需要点击检索出来的日志条目即可展开,查看详细日志。
如需生成可视化图表,可以点击 Visualization,即可展示图表:
小结
通过以上步骤,我们完成了将 WAF 日志存储在 CloudWatch Logs 中,并能够使用 CloudWatch Log Insights 进行日志的查询。可以满足查看单个日志、编译聚合报告、创建可视化内容和构建控制面板的近实时需求。如果需要更多的定制化和更丰富的报表,可以参考 WAF 部署小指南(三)、(四) ,使用 OpenSearch 对于日志进行存储和分析。