一般性问题
全部打开Amazon WAF 是一款 Web 应用程序防火墙,它允许您根据您定义的条件配置规则,以允许、阻止或监控(计数)Web 请求,从而帮助保护 Web 应用程序免受攻击。这些条件包括 IP 地址、HTTP 标头、HTTP 主体、URI 字符串、SQL 注入和跨站点脚本。
当底层服务收到对您的网站的请求时,会将这些请求转发给 Amazon WAF,以根据您的规则执行检查。一旦请求满足您的规则中定义的条件,Amazon WAF 会根据您定义的操作指示底层服务阻止或允许请求。
Amazon WAF 与Application Load Balancer (ALB)、Amazon API Gateway 和 Amazon AppSync 紧密集成,亚马逊云科技客户通常使用这些服务为自己的网站和应用程序提供内容。当您在区域性服务(例如 Application Load Balancer、Amazon API Gateway 和 Amazon AppSync)上使用 Amazon WAF 时,您的规则将在区域中运行,并能够保护面向互联网的资源和内部资源。
Amazon WAF 可以帮助保护您的网站免受 SQL 注入和跨站点脚本 (XSS) 等常见技术的攻击。此外,您还可以创建规则,以阻止来自特定用户代理、恶意机器人或内容抓取程序的攻击。有关示例,请参阅《Amazon WAF 开发人员指南》。
可以。要获取对您的账户发起的所有 Amazon WAF API 调用的历史记录,您只需打开 Amazon CloudTrail。
是,Amazon WAF 支持 IPv6,因此能够检查来自 IPv6 和 IPv4 地址的 HTTP/S 请求。
是,您可以根据本文档为新建和现有的 WebACL 设置新的 IPv6 匹配条件。
可以。在适当的情况下,采样的请求会显示 IPv6 地址。
可以。您可以将所有的现有功能用于 IPv6 和 IPv4 上的流量,而不会导致服务的性能、可扩展性或可用性出现任何明显变化。
Amazon WAF 可以部署在 Application Load Balancer (ALB)、Amazon API Gateway 和 Amazon AppSync 上。作为 Application Load Balancer 的一部分,它可以保护在 ALB 后台运行的源 Web 服务器。作为 Amazon API Gateway 的一部分,它可以帮助保护您的 REST API。作为 Amazon AppSync 的一部分,它可以帮助保护您的 GraphQL API。
Amazon WAF 根据您创建的 Web 访问控制列表 (Web ACL) 的数量、您为每个 Web ACL 添加的规则数量以及您收到的 Web 请求数量进行收费。无预先承诺。除了 Application Load Balancer (ALB) 定价、Amazon API Gateway 定价和/或亚马逊 AppSync 定价以外,还包括亚马逊 WAF 费用。
基于速率的规则是指可以在 Amazon WAF 中配置的规则类型,您可以通过它们指定在持续更新的 5 分钟时段后客户端 IP 允许的 Web 请求数量。如果 IP 地址违反了所配置的限制,将阻止新的请求,直到请求速率低于所配置的阈值。
基于速率的规则类似于常规规则,但具有一项新增功能:它能够配置基于速率的阈值。例如,如果将基于速率的规则阈值设置为 2,000,此规则将阻止所有在过去的 5 分钟间隔内发起超过 2,000 个请求的 IP。基于速率的规则还可以包含任何其他可用于常规规则的 Amazon WAF 条件。
基于速率的规则的费用与常规 Amazon WAF 规则的费用相同。
以下是客户可以使用基于速率的规则解决的一些常见使用案例:
- 我希望在 IP 地址超过所配置的阈值速率(可配置为 5 分钟时段后的 Web 请求数量)时,阻止或统计 IP 地址
- 我想知道当前有哪些 IP 地址由于超过所配置的阈值速率而被阻止
- 我希望在已添加到阻止列表中的 IP 地址不再违反所配置的阈值速率时,自动将它们移除
- 我希望豁免某些高流量源 IP 范围被基于速率的规则阻止
可以。基于速率的规则与现有的 Amazon WAF 匹配条件兼容。这样,您就可以进一步优化匹配条件,并将基于速率的缓解措施限制为网站的特定 URL 或来自特定引用站点(或用户代理)的流量,或者添加其他的自定义匹配条件。
可以。这种新的规则类型旨在保护您免受 Web 层 DDoS 攻击、暴力登录尝试和恶意机器人等使用案例的侵害。
基于速率的规则支持常规 Amazon WAF 规则中当前可用的所有可见性功能。此外,它们还会查看基于速率的规则阻止的 IP 地址。
可以。下面是一个示例。假设您希望限制对网站登录页面的请求。为此,您可以将如下字符串匹配条件添加到基于速率的规则中:
请求中要用作筛选依据的部分是“URI”。
Match Type(匹配类型)为 Starts with(开头为)。
要匹配的值是“/login”(必须是能够在 Web 请求中的 URI 部分中识别登录页面的任何内容)
此外,您还可以将 Rate Limit(速率限制)指定为每 5 分钟 15,000 个请求等数值。将这个基于速率的规则添加到 Web ACL 会限制每个 IP 地址对登录页面的请求数量,但不会影响站点的其他部分。
可以。为此,您可以设置一个单独的 IP 匹配条件,以便在基于速率的规则中允许请求。
IP 地址与国家/地区查找数据库之间的映射准确性因地区而异。根据最近的测试,我们的 IP 地址与国家/地区之间的映射的整体准确性高达 99.8%。
Amazon WAF 的托管规则
全部打开托管规则是一种简单的方法,用于部署预配置的规则,以防止您的应用程序遭受常见的威胁,例如 OWASP 等应用程序漏洞。Amazon WAF 的托管规则由亚马逊云科技托管。
是,您可以将托管规则与自定义的 Amazon WAF 规则结合使用。您可以将托管规则添加到可能已为其添加规则的现有 Amazon WAF Web ACL 中。
托管规则中的规则数量不计入您的限制。但添加到 Web ACL 的每个托管规则将计为 1 条规则。
您可以随时将托管规则添加到 Web ACL 或者将其从 Web ACL 中移除。取消一条托管规则与任何 Web ACL 的关联之后,会禁用此托管规则。
Amazon WAF 允许您为托管规则配置“计数”操作,此操作会统计与托管规则内的规则匹配的 Web 请求数量。您可以查看所统计的 Web 请求数量,以估计如果启用托管规则,会阻止多少个 Web 请求。
Amazon WAF 配置
全部打开在初始设置之后,添加或更改的规则通常需要大约一分钟的时间,才能在全球范围内传播。
Amazon WAF 可通过三种不同的方式了解您的网站如何受到保护:CloudWatch 中提供的 1 分钟指标、Amazon WAF API 或管理控制台中提供的采样 Web 请求以及通过 Amazon Kinesis Firehose 进行登录。您可以通过这些方式查看哪些请求被阻止、允许或计数,以及与给定的请求匹配的规则(即由于 IP 地址条件等原因,此 Web 请求被阻止)。有关更多信息,请参阅《Amazon WAF 开发人员指南》。
Amazon WAF 允许您为规则配置“计数”操作,此操作会统计符合规则条件的 Web 请求数量。您可以查看所统计的 Web 请求数量,以估计如果启用规则,会阻止或允许多少个 Web 请求。
实时指标存储在 Amazon CloudWatch 中。使用 Amazon CloudWatch,您可以配置要使事件过期的时间段。采样 Web 请求最多可存储 2 小时。
可以。Amazon WAF 有助于保护应用程序,并检查通过 HTTP 或 HTTPS 传输的 Web 请求。