本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon WAF 入门
本教程介绍如何使用 Amazon WAF 执行以下任务:
设置 Amazon WAF。
-
使用 Amazon WAF 控制台中的向导创建 Web 访问控制列表 (Web ACL)。
-
选择希望 Amazon WAF 检查其 Web 请求的 Amazon 资源。本教程介绍了亚马逊的步骤 CloudFront. Amazon API Gateway REST API、Application LApplication Load Balancer ancer 和Amazon AppSyncGraphQL API,或Amazon Cognito 用户池。
-
添加要用于筛选 Web 请求的规则和规则组。例如,您可以指定请求源自的 IP 地址,并在请求中指定仅供攻击者使用的值。对于每个规则,您可以指定如何处理匹配的 Web 请求。你可以屏蔽它们、允许它们、计算它们或者插入CAPTCHA对他们进行核对。您可以为在 Web ACL 中定义的每条规则和在规则组中定义的每条规则定义一个操作。
为 Web ACL 指定默认操作
Block要么Allow. 这是 Amazon WAF 在 Web 请求不与任何规则匹配时执行的操作。
对于在本教程中创建的资源,Amazon 向您收取的费用通常少于每日 0.25 美元。当您完成本教程时,建议您删除资源以避免产生不必要的费用。
主题
第 1 步:设置 Amazon WAF
如果你已经注册了Amazon Web Services 账户并创建了一个 IAM 用户,如中所述设置,转到第 2 步:创建 Web ACL.
如果未执行这些操作,请转到设置并至少执行前两个步骤。(您可以暂时跳过下载工具,因为本入门主题侧重于使用 Amazon WAF 控制台。)
第 2 步:创建 Web ACL
这些区域有:Amazon WAF控制台将引导您完成配置过程Amazon WAF根据指定的标准(如请求源自的 IP 地址或请求中的值)阻止或允许 Web 请求。在此步骤中,您将创建一个 Web ACL。有关以下内容的更多信息Amazon WAFWeb ACL,请参阅Web 访问控制列表 (Web ACL).
创建 Web ACL
登录Amazon Web Services Management Console然后打开Amazon WAF控制台位于https://console.aws.amazon.com/wafv2/
. -
来自的Amazon WAF主页,选择创建 Web ACL.
-
对于 Name (名称),输入要用于标识此 Web ACL 的名称。
注意 Web ACL 在创建之后无法更改名称。
-
(可选)对于 Description - optional (描述 - 可选),如果需要,请输入 Web ACL 的较长描述。
-
对于 CloudWatch metric name (CloudWatch 指标名称),更改默认名称(如果适用)。按照控制台上的指导进行有效字符操作。该名称不能包含为 Amazon WAF 保留的特殊字符、空格或指标名称,包括“All”和“Default_Action”。
注意 不能更改 CloudWatch 创建 Web ACL 之后的指标名称。
-
对于资源类型,选择CloudFront分布. 这些区域有:区域自动填充到全球(CloudFront)为了 CloudFront 分配。
-
(可选)关联Amazon资源-可选,选择AddAmazon资源. 在对话框中,选择您要关联的资源,然后选择Add.Amazon WAF让你回到描述 Web ACL 和关联的Amazon资源页面
-
选择 Next(下一步)。
第 3 步:添加字符串匹配规则
在此步骤中,您将使用字符串匹配语句创建规则,并指示如何处理匹配请求。字符串匹配规则语句标识你想要的字符串Amazon WAF在请求中进行搜索。字符串通常由可打印 ASCII 字符组成,但您可以指定从十六进制 0x00 到 0xFF (十进制 0 到 255) 的任何字符。除了指定要搜索的字符串外,您还可以指定要搜索的 Web 请求组件,例如标头、查询字符串或请求正文。
此语句类型在 Web 请求组件上运行,需要以下请求组件设置:
请求组件— Web 请求中要检查的部分,例如查询字符串或正文。
警告 如果你检查请求组件Body,JSON 正文,标头,或Cookies,请阅读有关内容量限制的信息Amazon WAF在处登录请求组件的处理量过大.
有关 Web 请求组件的信息,请参见Web 请求组件.
可选的文本转换— 你想要的转换Amazon WAF在检查请求组件之前对其执行。例如,您可以转换为小写或标准化空格。如果您指定多个转换,Amazon WAF以所列顺序处理它们。有关信息,请参阅文本转换。
有关的更多信息Amazon WAF规则,请参阅规则.
创建字符串匹配规则语句
-
在 Add rules and rule groups (添加规则和规则组) 页面上,选择 Add rules (添加规则)、Add my own rules and rule groups (添加我自己的规则和规则组)、Rule builder (规则生成器),然后选择 Rule visual editor (规则可视化编辑器)。
注意 控制台提供 Rule visual editor (规则可视化编辑器) 和 Rule JSON editor (规则 JSON 编辑器)。JSON 编辑器使您可以轻松地在 Web ACL 之间复制配置,并且对于更复杂的规则集(如那些具有多个嵌套级别的规则集)是必需的。
此过程使用 Rule visual editor (规则可视化编辑器)。
-
对于 Name (名称),输入要用于标识此规则的名称。
-
对于 Type (类型),选择 Regular rule (常规规则)。
-
对于 If a request (如果请求),选择 matches the statement (与语句匹配)。
其他选项适用于逻辑规则语句类型。您可以使用它们来合并或否定其他规则语句的结果。
-
开启Statement,对于检查,打开下拉列表并选择你想要的 Web 请求组件Amazon WAF去检查。对于此示例,选择 Header。
选择 Header (标头) 时,还可以指定希望 Amazon WAF 检查的标头。输入
User-Agent。此值不区分大小写。 -
对于 Match type (匹配类型),选择指定的字符串必须出现在
User-Agent标头中的位置。在此示例中,选择 Exactly matches string (完全匹配字符串)。这表示 Amazon WAF 检查每个 Web 请求中的用户代理标头是否存在与您指定的字符串相同的字符串。
-
对于 String to match (要匹配的字符串),请指定希望 Amazon WAF 搜索的字符串。String to match (要匹配的字符串) 的最大长度是 200 个字符。如果您要指定 base64 编码值,您可以指定最多 200 个字符(编码前)。
对于此示例,请输入MyAgent.Amazon WAF将检查
User-AgentWeb 请求值中的标头MyAgent. -
将 Text transformation (文本转换) 保留设置为 None (无)。
-
对于操作,选择您希望规则在匹配 Web 请求时采取的操作。对于此示例,选择计数并保持其他选择不变。计数操作会为符合规则的 Web 请求创建指标,但不影响请求是被允许还是被阻止。有关操作选择的信息,请参阅Amazon WAF 规则操作和Web ACL 规则和规则组评估.
-
选择 Add rule。
第 4 步:添加一个Amazon托管式规则
Amazon托管规则提供了一组托管规则组供您使用,其中大多数是免费的Amazon WAF顾客。有关规则组的更多信息,请参阅规则组。我们将添加一个Amazon此 Web ACL 的托管规则组。
要添加一个Amazon托管式规则
-
在 Add rules and rule groups (添加规则和规则组) 页面上,选择 Add rules (添加规则),然后选择 Add managed rule groups (添加托管规则组)。
-
在添加托管规则组页面,展开列表Amazon托管规则组. (您还将看到提供的房源Amazon Web Services Marketplace卖家们。 你可以订阅他们的产品,然后用与之相同的方式使用它们Amazon托管规则规则组。)
-
对于要添加的规则组,执行以下操作:
-
在里面操作 column, turn on the 添加到Web ACL切换。
-
Select编辑和,在规则组中Rule列表,打开将所有规则操作设置为计数切换。这会将规则组中所有规则的操作设置为仅计数。这允许您在使用任何规则之前,查看规则组中所有规则对您的 Web 请求的行为。
-
选择保存规则.
-
-
在里面添加托管规则组页面,选择添加规则. 这会将你带回到添加规则和规则组页面
第 5 步:完成您的 Web ACL 配置
完成向 Web ACL 配置中添加规则和规则组后,通过管理 Web ACL 中规则的优先级并配置诸如指标、标记和日志记录之类的设置来结束。
完成 Web ACL 配置
-
在 Add rules and rule groups (添加规则和规则组) 页面上,选择 Next (下一步)。
-
在设置规则优先级页面上,您可以在 Web ACL 中看到规则和规则组的处理顺序。Amazon WAF从列表的顶部开始处理它们。您可以通过向上或向下移动规则来更改处理顺序。要执行此操作,请在列表中选择一个,然后选择 Move up (上移) 或 Move down (下移)。有关规则优先级的更多信息,请参阅 Web ACL 中规则和规则组的处理顺序。
-
选择 Next(下一步)。
-
在配置指标page,for亚马逊 CloudWatch 指标,您可以查看规则和规则组的计划指标,也可以看到 Web 请求采样选项。有关亚马逊的信息 CloudWatch 指标,请参阅通过Amazon 监控 CloudWatch. 有关查看示例请求的信息,请参阅查看 Web 请求示例.
-
选择 Next(下一步)。
-
在 Review and create web ACL (审核和创建 Web ACL) 页面上,查看您的设置,然后选择 Create web ACL (创建 Web ACL)。
该向导将返回到 Web ACL 页面,其中列出了您的新 Web ACL。
第 6 步:清除 资源
现在您已成功完成了教程。为了防止您的账户产生额外的 Amazon WAF 费用,需要清除所创建的 Amazon WAF 对象。或者,您可以使用更改配置以匹配您真正想要管理的 Web 请求Amazon WAF.
对于在本教程中创建的资源,Amazon 向您收取的费用通常少于每日 0.25 美元。完成后,建议您删除资源以防止产生不必要的费用。
删除 Amazon WAF 进行收费的对象
-
在 Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 Edit (编辑)。
-
在关联的Amazon资源选项卡,对于每个关联资源,选择资源名称旁边的单选按钮,然后选择解除关联. 这将使 Web ACL 与您的 Amazon 资源取消关联。
-
在以下每个屏幕中,选择 Next (下一步),直到您返回到 Web ACL 页面。
在 Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 Delete (删除)。
规则和规则语句不存在于规则组和 Web ACL 定义之外。如果您删除某个 Web ACL,则会删除您在该 Web ACL 中定义的所有单独规则。从 Web ACL 中删除规则组时,您只需删除对它的引用即可。