亚马逊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。

  1. 先决条件:参考WAF部署小指南(一) 中步骤一至步骤四,搭建并配置实验环境。包括创建WAF的Web ACL,创建测试用的ALB及Web服务器,关联Web ACL与ALB,及调整WAF规则。
  2. 步骤五:打开WAF日志设置并存储至CloudWatch Logs日志组中
  3. 步骤六:使用CloudWatch Logs Insights搜索分析日志

架构图:

先决条件

我们可以先参考WAF部署小指南(一) 的步骤一到四搭建并配置实验环境,包括:

  1. 步骤一: 创建WAF的Web ACL
  2. 步骤二: 创建一个测试用的Web服务器和ALB以测试WAF的防护效果。
  3. 步骤三: 把我们创建的Web ACL与步骤二创建的ALB关联起来。以使WAF防护功能生效。
  4. 步骤四: 对WAF规则做一些常用的配置调整。

步骤五 启用日志

WAF 日志搜集和处理有多种选择。这里介绍CloudWatch Logs的方法。这种方法适用于当我们对于日志有查看单个日志、编译聚合报告、创建可视化内容和构建控制面板的需求,而对于实时性可以容忍分钟级别的延迟时。

  1. 启用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对于日志进行存储和分析。

如果您对本文有任何问题,请在此处留言。

 

亚马逊云科技 WAF 部署小指南系列文章

 

本篇作者

汤哲

AWS解决方案架构师,负责基于 AWS 的云计算方案的咨询与架构设计,同时致力于 AWS 云服务知识体系的传播与普及。在软件开发、安全防护等领域有实践经验,目前关注电商、直播领域。