使用 Amazon 进行监控 CloudWatch - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon 进行监控 CloudWatch

您可以使用 Amazon 监控网络请求、网页 ACL 和规则 CloudWatch,Amazon 会收集原始数据,Amazon WAF并将其处理Amazon Shield Advanced为可读的近乎实时的指标。您可以使用 Amazon 中的统计数据 CloudWatch 来了解您的 Web 应用程序或服务的性能。有关更多信息,请参阅《Amazon CloudWatch 用户指南》 CloudWatch中的内容

注意

CloudWatch 未为 Firewall Manager 启用指标和警报。

创建亚马逊 CloudWatch 警报

您可以创建一个 Amazon CloudWatch 警报,当警报状态发生变化时,该警报会发送 Amazon SNS 消息。警报会监控某个指标在一定时间段 (由您指定) 的变化情况,并根据相对于指定阈值的指标值每隔若干个时间段执行一项或多项操作。操作是一个发送到 Amazon SNS 主题或自动扩缩策略的通知。警报仅针对持续的状态变化调用操作。 CloudWatch 警报不会仅仅因为它们处于特定状态就调用操作;该状态必须已更改并保持了指定的时间段。

Amazon WAF 和 Amazon Shield Advanced 的指标与维度

指标的分组首先依据服务命名空间,然后依据每个命名空间内的各种维度组合。

  • Amazon WAF 命名空间为 AWS/WAFV2

  • Shield Advanced 命名空间是 AWS/DDoSProtection

注意

Amazon WAF 每分钟报告一次指标。

Shield Advanced 在活动期间每分钟报告一次指标,其他时间则不那么频繁。

按照以下步骤查看 Amazon WAF 和 Amazon Shield Advanced 的指标。

使用 CloudWatch 控制台查看指标
  1. 登录Amazon Web Services Management Console并打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 如有必要,请将区域更改为 Amazon 资源所在的区域。对于 CloudFront,请选择美国东部(弗吉尼亚北部)区域。

  3. 在导航窗格的指标下,选择所有指标,然后在浏览选项卡下搜索该服务。

使用Amazon CLI 查看指标
  • 对于 AWS/WAFV2,在命令提示符处使用以下命令:

    aws cloudwatch list-metrics --namespace "AWS/WAFV2"

    对于 Shield Advanced,在命令提示符处使用以下命令:

    aws cloudwatch list-metrics --namespace "AWS/DDoSProtection"

Amazon WAF 指标和维度

Amazon WAF 每分钟报告一次指标。Amazon WAF 在 AWS/WAFV2 命名空间中提供了以下指标和维度。

Web ACL、规则组、规则指标和维度

Web ACL、规则组和规则指标
指标 描述

AllowedRequests

允许的 Web 请求数。

报告标准:有非零值。

有效统计数据:Sum

BlockedRequests

阻止的 Web 请求数。

报告标准:有非零值。

有效统计数据:Sum

CountedRequests

计数的 Web 请求数。

报告标准:有非零值。

已计数的 Web 请求是至少匹配了一个规则的请求。请求计数通常用于测试。

有效统计数据:Sum

CaptchaRequests

应用了验证码控制的网络请求数量。

报告标准:有非零值。

验证码 Web 请求是指与具有 CAPTCHA 操作设置的规则相匹配的请求。此指标记录所有匹配的请求,无论它们是否具有有效的验证码令牌。

有效统计数据:Sum

RequestsWithValidCaptchaToken

应用了验证码控件且验证码令牌有效的 Web 请求数量。

报告标准:有非零值。

有效统计数据:Sum

CaptchasAttempted

最终用户为响应验证码拼图挑战而提交的解决方案数量。

报告标准:有非零值。

有效统计数据:Sum

CaptchasSolved

已提交的成功完成的验证码拼图解决方案的数量。

报告标准:有非零值。

有效统计数据:Sum

ChallengeRequests

应用了质询控件的 Web 请求数量。

报告标准:有非零值。

质询 Web 请求是指与具有 Challenge 操作设置的规则相匹配的请求。此指标记录所有匹配的请求,无论它们是否具有有效的质询令牌。

有效统计数据:Sum

RequestsWithValidChallengeToken

应用了质询控件且质询令牌有效的 Web 请求数量。

报告标准:有非零值。

有效统计数据:Sum

PassedRequests

已通过的请求数。这仅用于通过规则组评估但不匹配任何规则组规则的请求。

报告标准:有非零值。

传递的请求是指不符合规则组中任何规则的请求。

有效统计数据:Sum

Web ACL、规则组和规则维度
维度 描述

Region

除 Amazon CloudFront 分配以外的所有受保护资源类型均为必填项。

Rule

下列情况之一:

  • Rule 的指标名称。

  • ALL,表示 WebACL 或 RuleGroup 中的所有规则。

  • Default_Action(仅当与 WebACL 维度结合使用时),表示分配给未因 Web ACL 中规则的操作而终止评估的任何请求的操作。

RuleGroup

RuleGroup 的指标名称。

WebACL

WebACL 的指标名称。

Country

请求的源国家/地区。这是国际标准化组织 (ISO) 3166 标准中的双字符名称。例如,US 代表美国,UA 代表乌克兰。

如果请求有 X-Forwarded-For 标头,则 Amazon WAF 使用该标头来确定此设置。否则,Amazon WAF 使用客户端 IP 所在的国家/地区。此决定与您在规则中用于确定原产国的任何逻辑无关。 Amazon WAF使用 MaxMind GeoIP 数据库确定 IP 的位置。

Attack

Amazon WAF 根据您在 Web ACL 中使用的规则和规则组在请求中识别的攻击类型。

您的规则和基准 Amazon 托管规则组中的规则可以识别攻击类型。例如,跨站脚本攻击(XSS)规则匹配标识 XSS 攻击类型,基于速率的规则识别容量攻击类型。攻击类型通常表示终止 Web 请求评估的规则类型。

Device

发送请求的客户端的设备类型,从 Web 请求的 user-agent 标头中获取。

ManagedRuleGroup

其规则终止 Web 请求评估的托管规则组的指标名称。

标签指标和维度

根据您的规则和您在 Web ACL 中使用的托管规则组在评估期间向请求添加的标签的指标。有关信息,请参阅 Web 请求上的标签

对于任何一个 Web 请求,Amazon WAF 最多可存储 100 个标签的指标。Web ACL 评估可以应用 100 多个标签,并与 100 多个标签进行匹配,但只有前 100 个标签会反映在指标中。

标签指标
指标 描述

AllowedRequests

Allow 应用了操作设置的 Web 请求上的标签数量。在 Web 请求评估期间,可以随时添加标签。

报告标准:有非零值。

有效统计数据:Sum

BlockedRequests

Block 应用了操作设置的 Web 请求上的标签数量。在 Web 请求评估期间,可以随时添加标签。

报告标准:有非零值。

有效统计数据:Sum

CountedRequests

具有 Count 操作设置的规则组规则向 Web 请求添加的标签数量。

此指标仅适用于规则组的所有者,适用于规则组内的规则。对于其他情况,计数标签指标会汇总到应用于请求的终止操作中,例如 Allow 或 Block。

报告标准:有非零值。

有效统计数据:Sum

CaptchaRequests

已应用终止 CAPTCHA 操作的 Web 请求上的标签数量。在 Web 请求评估期间,可以随时添加标签。

报告标准:有非零值。

有效统计数据:Sum

ChallengeRequests

已应用终止 Challenge 操作的 Web 请求上的标签数量。在 Web 请求评估期间,可以随时添加标签。

报告标准:有非零值。

有效统计数据:Sum

标签维度
维度 描述

Region

除 Amazon CloudFront 分配以外的所有受保护资源类型均为必填项。

WebACL

WebACL 的指标名称。

RuleGroup

RuleGroup 的指标名称。用于指标 CountedRequests

LabelNamespace

添加到请求中的标签的命名空间前缀。

Label

添加到请求中的标签的名称。

Context

作为标签添加上下文的托管规则组。例如,令牌管理标签的上下文,例如 awswaf:managed:token:accepted 对请求使用令牌管理的 Amazon WAF 托管规则组,例如机器人控制功能或 ATP 托管规则组。该维度不适用于所有标签。

免费机器人可见性指标和维度

如果您不在 Web ACL 中使用机器人控制功能,则 Amazon WAF 可将机器人控制功能托管规则组应用于您的 Web 请求样本,无需支付额外费用。这可以让您了解流向受保护资源的机器人流量。有关机器人控制功能的详细信息,请参阅 Amazon WAF 机器人控制功能规则组

免费机器人可见度指标
指标 描述

SampleAllowedRequest

已执行 Allow 操作的抽样请求的百分比。

报告标准:有非零值。

有效统计数据:Sum

SampleBlockedRequest

已执行 Block 操作的抽样请求的百分比。

报告标准:有非零值。

有效统计数据:Sum

SampleCaptchaRequest

已执行 CAPTCHA 操作的抽样请求的百分比。

报告标准:有非零值。

有效统计数据:Sum

SampleChallengeRequest

已执行 Challenge 操作的抽样请求的百分比。

报告标准:有非零值。

有效统计数据:Sum

SampleCountRequest

已执行 Count 操作的抽样请求的百分比。

报告标准:有非零值。

有效统计数据:Sum

免费机器人可见度维度
维度 描述

Region

除 Amazon CloudFront 分配以外的所有受保护资源类型均为必填项。

WebACL

WebACL 的指标名称。

BotCategory

检测到的机器人类别的名称,基于网络请求标签。

VerificationStatus

检测到的机器人验证状态的名称,基于网络请求标签。

Signal

检测到的机器人信号的名称,基于网络请求标签。

Amazon Shield Advanced 指标和警报

此部分会讨论 Amazon Shield Advanced 提供的指标和警报。

Amazon Shield Advanced 指标

CloudWatch 在 DDoS 事件期间,Shield Advanced 向亚马逊报告Amazon资源指标的频率要高于没有事件发生时的频率。Shield Advanced 在活动期间每分钟报告一次指标,然后在活动结束后立即报告一次。在没有事件的情况下,Shield Advanced 会每天报告一次分配给指定资源的指标。此定期报告可保持指标处于活动状态,并可用于自定义 CloudWatch 警报。

Shield Advanced 报告的美国东部(弗吉尼亚州北部)区域 us-east-1 的指标如下:

对于其他资源类型,Shield Advanced 会报告资源所在区域的指标。

检测指标

Shield Advanced 在 AWS/DDoSProtection 命名空间中提供以下检测指标和维度。

检测指标
指标 描述
DDoSDetected 指示特定 Amazon 资源名称 (ARN) 的 DDoS 事件是否正在进行中。

在事件发生期间,此指标的值为非零。

DDoSAttackBitsPerSecond 特定 Amazon 资源名称 (ARN) 的 DDoS 事件期间观察到的位数。该指标仅适用于网络层和传输层(第 3 层和第 4 层)DDoS 事件。

在事件发生期间,此指标的值为非零。

单位:位

DDoSAttackPacketsPerSecond 特定 Amazon 资源名称 (ARN) 的 DDoS 事件期间观察到的数据包数。该指标仅适用于网络层和传输层(第 3 层和第 4 层)DDoS 事件。

在事件发生期间,此指标的值为非零。

单位:数据包

DDoSAttackRequestsPerSecond 特定 Amazon 资源名称 (ARN) 的 DDoS 事件期间观察到的请求数。该指标仅适用于第 7 层 DDoS 事件。仅针对最重要的第 7 层事件报告指标。

在事件发生期间,此指标的值为非零。

单位:请求

Shield Advanced 发布不具有其他维度的 DDoSDetected 指标。其余的检测指标包括以下列表中与攻击类型相对应的 AttackVector 维度:

  • ACKFlood

  • ChargenReflection

  • DNSReflection

  • GenericUDPReflection

  • MemcachedReflection

  • MSSQLReflection

  • NetBIOSReflection

  • NTPReflection

  • PortMapper

  • RequestFlood

  • RIPReflection

  • SNMPReflection

  • SSDPReflection

  • SYNFlood

  • UDPFragment

  • UDPTraffic

  • UDPReflection

缓解指标

Shield Advanced 在 AWS/DDoSProtection 命名空间中提供了以下缓解指标和维度。

缓解指标
指标 描述
VolumePacketsPerSecond 为响应检测到的事件而部署的缓解措施每秒丢弃或通过的数据包数量。

单位:数据包

缓解维度
维度 描述

ResourceArn

Amazon 资源名称 (ARN)

MitigationAction

应用缓解措施的结果。可能的值为 PassDrop

排名靠前的贡献者指标

Shield Advanced 在 AWS/DDoSProtection 命名空间中提供了以下缓解指标和维度。

排名靠前的贡献者指标
指标 描述
VolumePacketsPerSecond 排名靠前的贡献者的每秒数据包数。

单位:数据包

VolumeBitsPerSecond 排名靠前的贡献者的每秒比特数。

单位:位

Shield Advanced 按代表事件贡献者的维度组合发布排名靠前的贡献者的指标。您能够将以下维度组合作为排名靠前的贡献者的指标使用:

  • ResourceArn, Protocol

  • ResourceArn, Protocol, SourcePort

  • ResourceArn, Protocol, DestinationPort

  • ResourceArn, Protocol, SourceIp

  • ResourceArn, Protocol, SourceAsn

  • ResourceArn, TcpFlags

排名靠前的贡献者维度
维度 描述

ResourceArn

Amazon 资源名称(ARN)。

Protocol

IP 协议名称,TCPUDP

SourcePort

源 TCP 或 UDP 端口。

DestinationPort

目标 TCP 或 UDP 端口。

SourceIp

源 IP 地址

SourceAsn

源自治系统号(ASN)。

TcpFlags

TCP 数据包中存在的标志组合,用短划线 (-) 分隔。受监控的标志是 ACKFINRSTSYN。此维度值始终按字母顺序显示。例如:ACK-FIN-RST-SYNACK-SYNFIN-RST

Amazon Firewall Manager 通知

Amazon Firewall Manager不记录指标,因此您无法专门为 Firewall Manager 创建亚马逊 CloudWatch 警报。但是,您可以配置 Amazon SNS 通知以提醒您有潜在攻击。要在 Firewall Manager 中创建 Amazon SNS 通知,请参阅 步骤 4:配置亚马逊 SNS 通知和亚马逊警报 CloudWatch