本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 AWS WAF 及其组件
本教程介绍如何使用 AWS WAF 来执行以下任务:
设置 AWS WAF。
-
使用控制 AWS WAF 台中的向导创建 Web 访问控制列表 (Web ACL)。
-
选择 AWS WAF 要检查的 Web 请求的 AWS 资源。本教程介绍了 Amazon 的操作步骤 CloudFront。Amazon API Gateway REST API、应用程序负载均衡器、 AWS AppSync GraphQL API、Amazon Cognito 用户池、服务或 AWS 已验证访问 AWS App Runner 实例的过程基本相同。
-
添加要用于筛选 Web 请求的规则和规则组。例如,您可以指定请求的来源 IP 地址以及请求中仅由攻击者使用的值。对于每个规则,您可以指定如何处理匹配的 Web 请求。您可以采取阻止或计算等操作,也可以运行像验证码这样的机器人质询。您可以为在 Web ACL 中定义的每条规则以及您在规则组中定义的每条规则定义操作。
为 Web ACL 指定默认操作,或者 Block 或 Allow。 当 Web ACL 中的规则未明确允许或阻止请求时,这是对请求采取的操作。 AWS WAF
注意
AWS 对于您在本教程中创建的资源,每天向您收取的费用通常少于 0.25 美元。当您完成本教程时,建议您删除资源以避免产生不必要的费用。
第 1 步:设置 AWS WAF
如果您尚未按照 设置您的账户以使用服务 中的常规设置步骤操作,请立即执行操作。
步骤 2:创建 Web ACL
AWS WAF 控制台将指导您完成配置过程, AWS WAF 以根据您指定的标准(例如请求来源的 IP 地址或请求中的值)阻止或允许 Web 请求。在此步骤中,您将创建一个 Web ACL。有关 AWS WAF Web 的更多信息 ACLs,请参阅 ACLs 在 web 中使用 AWS WAF。
创建 Web ACL
登录 AWS Management Console 并打开 AWS WAF 控制台,网址为https://console.aws.amazon.com/wafv2/
。 -
在 AWS WAF 主页上,选择创建 Web ACL。
-
对于 名称,输入要用于标识此 Web ACL 的名称。
注意
Web ACL 在创建之后无法更改名称。
-
(可选)对于 描述 - 可选,如果需要,请输入 Web ACL 的较长描述。
-
对于 CloudWatch metric name (CloudWatch 指标名称),更改默认名称(如果适用)。按照控制台上的指导进行有效字符操作。该名称不能包含为 AWS WAF保留的特殊字符、空格或指标名称,包括“All”和“Default_Action”。
注意
创建 Web ACL 后,您无法更改 CloudWatch 指标名称。
-
对于资源类型,选择CloudFront分配。区域会自动填充到 Gl obal (CloudFront) 以进行 CloudFront 分配。
-
(可选)对于关联 AWS 资源-可选,选择添加 AWS 资源。在对话框中,选择要关联的资源,然后选择添加。 AWS WAF 返回到描述 Web ACL 和关联的 AWS 资源页面。
-
选择下一步。
步骤 3:添加字符串匹配规则
在此步骤中,您将使用字符串匹配语句创建规则,并指示如何处理匹配请求。字符串匹配规则语句标识您希望 AWS WAF 在请求中搜索的字符串。字符串通常由可打印 ASCII 字符组成,但您可以指定从十六进制 0x00 到 0xFF (十进制 0 到 255) 的任何字符。除了指定要搜索的字符串外,您还可以指定要搜索的 Web 请求组件,例如标头、查询字符串或请求正文。
此语句类型在 Web 请求组件上运行,需要以下请求组件设置:
请求组件 – Web 请求中要检查的部分,例如查询字符串或正文。
警告
如果您检查请求组件 B ody、JSON 正文、Header s 或 Cookie,请阅读有关内容 AWS WAF 可检查数量的限制中的 Web 请求组件过大 AWS WAF。
有关请求组件的更多信息,请参阅 在中调整规则语句设置 AWS WAF。
可选的文本转换-在检查请求组件之前 AWS WAF 要对其执行的转换。例如,您可以将空格转换为小写或标准化空格。如果您指定了多个转换,则按列出的顺序 AWS WAF 处理这些转换。有关信息,请参阅在中使用文本转换 AWS WAF。
有关 AWS WAF 规则的更多信息,请参阅AWS WAF 规则。
创建字符串匹配规则语句
-
在 添加规则和规则组 页面上,选择 添加规则、添加我自己的规则和规则组、规则生成器,然后选择 规则可视化编辑器。
注意
控制台提供 规则可视化编辑器 和 规则 JSON 编辑器。JSON 编辑器使您可以轻松地在 Web ACLs 之间复制配置,对于更复杂的规则集(例如具有多个嵌套级别的规则集)来说,这是必需的。
此过程使用 规则可视化编辑器。
-
对于 名称,输入要用于标识此规则的名称。
-
对于 类型,选择 常规规则。
-
对于 如果请求,选择 与语句匹配。
其他选项适用于逻辑规则语句类型。您可以使用它们来组合或否定其他规则语句的结果。
-
在 St at ement 中,对于 Inspect,打开下拉列表并选择 AWS WAF 要检查的 Web 请求组件。对于此示例,选择单个标头。
选择单个标头时,还可以指定希望 AWS WAF 检查的标头。输入
User-Agent
。此值不区分大小写。 -
对于 匹配类型,选择指定的字符串必须出现在
User-Agent
标头中的位置。在此示例中,选择 完全匹配字符串。这表示 AWS WAF 检查每个 Web 请求中的用户代理标头,寻找与您指定的字符串相同的字符串。
-
对于 要匹配的字符串,请指定希望 AWS WAF 搜索的字符串。要匹配的字符串 的最大长度是 200 个字符。如果您要指定 base64 编码值,您可以指定最多 200 个字符(编码前)。
对于此示例,请输入MyAgent。 AWS WAF 将检查 Web 请求中的
User-Agent
标头以获取值MyAgent
。 -
将 文本转换 保留设置为 无。
-
对于操作,选择您希望规则在与 Web 请求匹配时执行的操作。在此示例中,选择计数,其他选项保持不变。计数操作会为与规则匹配的 Web 请求创建指标,但不会影响请求是允许还是阻止。有关操作选择的更多信息,请参阅 在中使用规则操作 AWS WAF 和 使用 ACLs 带有规则和规则组的 Web AWS WAF。
-
选择 添加规则。
步骤 4:添加 AWS 托管规则规则组
AWS 托管规则提供了一组托管规则组供您使用,其中大部分对 AWS WAF 客户免费。有关规则组的更多信息,请参阅AWS WAF 规则组。我们将向此 Web ACL 添加 AWS 托管规则组。
添加 AWS 托管规则规则组
-
在 添加规则和规则组 页面上,选择 添加规则,然后选择 添加托管规则组。
-
在添加托管规则组页面上,展开 AWS 托管规则组。(您还将看到为 AWS Marketplace 卖家提供的商品。 您可以订阅他们的产品,然后按照与 AWS 托管规则组相同的方式使用它们。)
-
对要添加的每个规则组执行以下操作:
-
在操作列中,打开添加到 Web ACL切换选项。
-
选择 “编辑”,然后在规则组的 “规则” 列表中打开 “覆盖所有规则操作” 下拉列表并选择 Count。 这会将规则组中所有规则的操作设置为仅计数。这样,您就可以在使用规则组中的所有规则之前,查看其中的任何规则其对 Web 请求的行为。
-
选择保存规则。
-
-
选择添加规则,然后选择 添加托管规则组。这样,您将返回到添加规则和规则组页面。
步骤 5:完成 Web ACL 配置
完成向 Web ACL 配置中添加规则和规则组后,通过管理 Web ACL 中规则的优先级并配置诸如指标、标记和日志记录之类的设置来结束。
完成 Web ACL 配置
-
在 添加规则和规则组 页面上,选择 下一步。
-
在设置规则优先级页面上,您可以看到 Web ACL 中规则和规则组的处理顺序。 AWS WAF 从列表顶部开始处理它们。您可以通过上下移动规则来更改处理顺序。要执行此操作,请在列表中选择一个,然后选择 上移 或 下移。有关规则优先级的更多信息,请参阅 在 Web ACL 中设置规则优先级。
-
选择下一步。
-
在配置指标页面上,对于亚马逊 CloudWatch指标,您可以查看规则和规则组的计划指标,也可以查看网络请求采样选项。有关查看采样请求的信息,请参阅 查看 Web 请求示例。有关 Amazon CloudWatch 指标的信息,请参阅使用 Amazon 进行监控 CloudWatch。
您可以在 AWS WAF 控制台的 Web ACL 页面的 “流量概述” 选项卡下访问 Web 流量指标摘要。控制台控制面板提供网络 ACL 的 Amazon CloudWatch 指标的近乎实时的摘要。有关更多信息,请参阅 Web ACL 流量概述控制面板。
-
选择下一步。
-
在 审核和创建 Web ACL 页面上,查看您的设置,然后选择 创建 Web ACL。
该向导将返回到 Web ACL 页面,其中列出了您的新 Web ACL。
步骤 6:清除资源
现在您已成功完成了教程。为防止您的账户产生额外 AWS WAF 费用,请清理您创建的 AWS WAF 对象。或者,您可以更改配置以匹配您真正想要管理的 Web 请求 AWS WAF。
注意
AWS 对于您在本教程中创建的资源,每天向您收取的费用通常少于 0.25 美元。完成后,建议您删除资源以防止产生不必要的费用。
删除 AWS WAF 收取费用的对象
-
在 Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 编辑。
-
在关联 AWS 资源选项卡上,对于每个关联的资源,选择资源名称旁边的单选按钮,然后选择取消关联。这会断开 Web ACL 与您的 AWS 资源的关联。
-
在以下每个屏幕中,选择 下一步,直到您返回到 Web ACL 页面。
在 Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 删除。
规则和规则语句不存在于规则组和 Web ACL 定义之外。如果您删除某个 Web ACL,则会删除您在该 Web ACL 中定义的所有单独规则。从 Web ACL 中删除规则组时,您只需删除对它的引用即可。