AWS WAF 的默认 dashboard 数据显示的不实时,也不是特别明了,没有一些聚合指标,所以看起来就比较费力,那有没有第三方可以来展示 AWS WAF 呢?本文就教你如何使用 Kibana 来实时展示 AWS WAF 的状态。

一、描述

AWS WAF Dashboards 已经准备好使用仪表板 (基于 Amazon Elasticsearch Service 和 Kibana) ,可以快速连接到已经存在的 AWS WAF 配置,并允许使用可视化图表中的多个构建对 AWS WAF 日志进行可视化。

要开始使用 AWS WAF 仪表板,你不需要有任何与 Elasticsarch 或甚至 AWS WAF 的经验,只需要最低限度的 AWS 知识。我这里提供了 CloudFormation template,全自动的为大家把所需要的服务创建好,你只需配置 WAF 把数据导入到 ES 即可,整个创建过程大约持续 30 分钟。

image-20200902113429496

WAF 是附加在 ELB 上面的,WAF 的日志传送给 Kinesis,通过 Kinesis 传递给 Elasticsearch,当用户登陆 Kibana 查询数据的时候,需要经过 Cognito 的认证通过,整个架构大致如此。

二、安装

1、启动模版

因为我在 eu-west-1 已经有业务,并且也已经配置了 WAF,所以我在这个 region 启动 CloudFormation,下面我们打开 Console,找到 CloudFormation,输入下面的模版:

https://s3.amazonaws.com/code.wzlinux.com/wzlinux-dashboard.yaml

image-20200902103908932

2、配置模版

我们点击下一步之后,会有一些参数需要我们填写,如下:

image-20200902104501765

  • DataNodeEBSVolumeSize: Elasticsearch cluster 的存储大小,可以不进行修改。
  • ElasticSerchDomainName: Elasticsearch luster domain,也可以不修改。
  • NodeType: Elasticsearch cluster 实例类型,可以不修改。
  • UserEmail: 邮箱这里要填写,因为随后会给送给你登陆 kibana 的登陆账户和密码。

然后点击创建,等待创建完成即可。

3、配置 WAF log

创建完成之后,我们打开 WAF 界面,找到我们的 Web ACL,修改 logging,把数据传递到 CloudFormation 创建的 Kinesis 里面,如下:

image-20200902113953570

三、查看 Kibana

在 CloudFormation 的 Outputs 输出结果里面,我们可以看到 Kibana 的地址:

image-20200902122208665

登陆框中输入我们邮件收到的账户密码即可。

登陆之后,我们点击 Dashboard 查看。现在,您的 WAF 日志将通过 Kinesis Firehose 直接从 WAF 服务发送到 ElasticSearch 集群,并使用 Kibana 仪表板提供给您。几分钟后,您应该开始看到仪表板上有数据。

image-20200902123128657

image-20200902123210929

image-20200902123337797

Dashboard 大致展示了这些数据,当然你也可以按照自己的需求进行定制化更改。

演示完成之后,我们可以把 WAF 的日志取消注入 Kinesis,删掉 CloudFormation 即可。

关于每个视图是如何制作的,大家可以编辑 Visualize 查看:

image-20200902123752069

欢迎大家扫码关注,获取更多信息

【AWS征文】用 Kibana 来替换 AWS WAF Dashboards