如何配置全面的 AWS WAF 日志记录以便将日志存储在 Amazon S3 中?

上次更新日期:2021 年 3 月 30 日

我已设置 AWS WAF,但现在我需要配置全面的日志记录,以便在 Amazon Simple Storage Service (Amazon S3) 中存储日志。该如何操作?

简短描述

您可以通过发往相同区域中 Amazon S3 存储桶的 Amazon Kinesis Data Firehose 流启用 Web 访问控制列表 (Web ACL) 上的全面日志记录。要执行此操作,您必须使用三项 AWS 服务:

  • AWS WAF 用于创建日志
  • Kinesis Data Firehose 用于接收日志
  • Amazon S3 用于存储日志

注意:AWS WAF 和 Kinesis Data Firehose 必须在相同区域内运行。

解决方法

创建 Kinesis Data Firehose

  1. 打开 Kinesis 控制台
  2. 在导航栏中,选择您要用于存储 Web ACL 的 Region (区域)
  3. 在导航窗格中,选择 Data Firehose
  4. 选择 Create Delivery Stream (创建传输流)
  5. Delivery stream name (传输流名称) 中输出您的传输流的名称。该名称必须以 aws-waf-logs- 开头,并以您选择的后缀结尾。例如,aws-waf-logs-demo
  6. Source (源) 中,保留默认选中的 Direct PUT or other sources (直接 PUT 或其他源)。然后选择 Next (下一步)
  7. 保留以下设置的默认选项:
    Record transformation (记录转换)(禁用)
    Record format conversion (记录格式转换)(禁用)
  8. 选择 Next (下一步)
  9. Destination (目的地) 中选择 Amazon S3
  10. S3 destination (S3 目的地) 部分选择 Create new (新建)
  11. S3 bucket name (S3 存储桶名称) 中输入一个名称。为了保持统一,您可以使用与在第 4 步中创建的传输流相同的名称。
  12. 选择用于存储 AWS WAF 日志的 Region (区域)
  13. 选择 Create S3 bucket (创建 S3 存储桶)
  14. (可选)配置一个 S3 prefix (S3 前缀) 和一个 Error prefix (错误前缀)
    注意:自定义前缀有助于与其他日志共享您的存储桶。
  15. 选择 Next (下一步)
  16. 您可以保留以下设置的默认选项:
    Buffer size (缓冲区大小) (5)
    Buffer interval (缓冲区间隔) (300)
    S3 压缩(已禁用)
    S3 encryption (S3 加密)(禁用)
  17. (可选)配置标签(如有需要)。
  18. IAM role (IAM 角色)中,选择 Create new or choose (新建或选择)
  19. Role Name (角色名称) 中,输入一个描述性名称。例如,firehose_to_s3-waflogs-demo
  20. 选择 Allow (允许),然后选择 Next (下一步)
  21. 检查配置,然后选择 Create delivery stream (创建传输流)

关联 AWS WAF 和 Kinesis Data Firehose

  1. 打开 AWS WAF 控制台
  2. 在导航窗格中选择 Web ACL
  3. Filter (筛选) 中选择创建 Web ACL 的区域。
  4. 从结果列表选择相关的 Web ACL,然后选择 Logging (日志记录)
  5. 选择 Enable Logging (启用日志记录)
  6. Amazon Kinesis Data Firehose 中,选择您在上述步骤中创建的传输流。
  7. (可选)配置任何应从日志编辑的字段。
  8. 选择 Create (创建)。所有 AWS WAF 日志均存储在 Amazon S3 存储桶中以供分析。

注意:一条 AWS WAF 日志相当于一条 Kinesis Data Firehose 记录。如果您每秒通常接收 10000 个请求,则在 Kinesis Data Firehose 中设置每秒 10000 条记录限制,以启用完整日志记录。否则,AWS WAF 不会记录所有日志。有关更多信息,请参阅 Amazon Kinesis Data Firehose 配额


这篇文章对您有帮助吗?


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