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

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

开始使用 Amazon WAF

本教程介绍如何使用 Amazon WAF 执行以下任务:

  • 设置 Amazon WAF。

  • 使用 Amazon WAF 控制台中的向导创建 Web 访问控制列表 (Web ACL)。

  • 选择希望 Amazon WAF 检查其 Web 请求的 Amazon 资源。本教程介绍 Amazon CloudFront 的步骤。Amazon API Gateway REST API、Application Load Balancer 或Amazon AppSyncGraphQL API。

  • 添加要用于筛选 Web 请求的规则和规则组。例如,您可以指定请求的来源 IP 地址以及请求中仅由攻击者使用的值。对于每个规则,您可以指定是要阻止匹配的 Web 请求还是允许它们。在规则组内定义的规则在规则组内定义其操作。

  • 指定 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

  1. 登录到Amazon Web Services Management Console并打开Amazon WAF控制台https://console.aws.amazon.com/wafv2/.

  2. 从Amazon WAF主页中,选择创建 Web ACL.

  3. 对于 Name (名称),输入要用于标识此 Web ACL 的名称。

    注意

    Web ACL 在创建之后无法更改名称。

  4. (可选)对于 Description - optional (描述 - 可选),如果需要,请输入 Web ACL 的较长描述。

  5. 适用于CloudWatch 指标名称,更改默认名称(如果适用)。按照控制台上的指导进行有效字符操作。该名称不能包含为 Amazon WAF 保留的特殊字符、空格或指标名称,包括“All”和“Default_Action”。

    注意

    Web ACL 在创建之后,无法更改 CloudWatch 指标名称。

  6. 对于 Resource type (资源类型),请选择 CloudFront distributions (CloudFront 分发)。该 Region (区域) 会自动填充到 Global (CloudFront) (全球 (CloudFront)),以便进行 CloudFront 分发。

  7. (可选)用于关联Amazon资源-可选中,选择AddAmazonresources. 在对话框中,选择要关联的资源,然后选择Add.Amazon WAF将返回描述 Web ACL 和相关联的Amazonresources页.

  8. 选择 Next (下一步)

第 3 步:添加字符串匹配规则

字符串匹配规则语句标识您希望 Amazon WAF 在请求中搜索的字符串(如标头或查询字符串中的指定值)。字符串通常由可打印 ASCII 字符组成,但您可以指定从十六进制 0x00 到 0xFF (十进制 0 到 255) 的任何字符。在此步骤中,您将使用字符串匹配语句创建规则,并指示如何处理匹配请求。有关的信息Amazon WAF规则,请参阅Amazon WAF 规则.

创建字符串匹配规则语句

  1. 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 (规则可视化编辑器)

  2. 对于 Name (名称),输入要用于标识此规则的名称。

  3. 对于 Type (类型),选择 Regular rule (常规规则)

  4. 对于 If a request (如果请求),选择 matches the statement (与语句匹配)

    其他选项将逻辑语句类型用于规则,从而允许您合并或否定规则语句结果。

  5. Statement (语句) 上,对于 Inspect (检查),打开下拉列表并选择希望 Amazon WAF 在其中查找字符串的 Web 请求组件。对于此示例,选择 Header

    选择 Header (标头) 时,还可以指定希望 Amazon WAF 检查的标头。输入 User-Agent。此值不区分大小写。

  6. 对于 Match type (匹配类型),选择指定的字符串必须出现在 User-Agent 标头中的位置。

    在此示例中,选择 Exactly matches string (完全匹配字符串)。这表示 Amazon WAF 检查每个 Web 请求中的用户代理标头是否存在与您指定的字符串相同的字符串。

  7. 对于 String to match (要匹配的字符串),请指定希望 Amazon WAF 搜索的字符串。String to match (要匹配的字符串) 的最大长度是 200 个字符。如果您要指定 base64 编码值,您可以指定最多 200 个字符(编码前)。

    在此示例中,输入我的代理.Amazon WAF将检查User-Agent标头中的值MyAgent.

  8. Text transformation (文本转换) 保留设置为 None (无)

  9. 适用于操作中,选择您希望规则在与 Web 请求匹配时执行的操作。在此示例中,选择计数并保留其他选择,因为它们是。计数操作会为与规则匹配的 Web 请求创建指标,但不会影响请求是允许还是阻止。有关操作选择的更多信息,请参阅Amazon WAF 规则操作Web ACL 规则和规则组评估.

  10. 选择 Add rule

第 4 步:添加Amazon托管规则组规则组

Amazon托管规则提供了一组托管规则组供您使用,其中大部分是免费用于Amazon WAF客户。有关规则组的更多信息,请参阅规则组。我们将添加Amazon托管规则组添加到此 Web ACL。

添加Amazon托管规则组规则组

  1. Add rules and rule groups (添加规则和规则组) 页面上,选择 Add rules (添加规则),然后选择 Add managed rule groups (添加托管规则组)

  2. 在存储库的添加托管规则组页面上,展开Amazon托管规则组. (您还将看到为提供的列示Amazon Web Services Marketplace卖方。 您可以订阅他们的产品,然后以与Amazon托管规则组规则组。)

  3. 对于要添加的规则组,执行以下操作:

    1. 操作列中,打开添加到 Web ACL切换。

    2. Select编辑,并在规则组的Rule列表中,打开将所有规则操作设置为计数切换。这会将规则组中所有规则的操作设置为仅计数。这使您可以在使用其中的任何规则之前查看规则组中的所有规则对 Web 请求的行为。

    3. 选择保存规则.

  4. 添加托管规则组页面上,选择添加规则. 这将返回添加规则和规则组页.

第 5 步:完成 Web ACL 配置

完成向 Web ACL 配置中添加规则和规则组后,通过管理 Web ACL 中规则的优先级并配置诸如指标、标记和日志记录之类的设置来结束。

完成 Web ACL 配置

  1. Add rules and rule groups (添加规则和规则组) 页面上,选择 Next (下一步)

  2. Set rule priority (设置规则优先级) 页面上,您可以看到 Web ACL 中规则和规则组的处理顺序。Amazon WAF 从顶部开始处理它们。您可以通过上下移动来更改处理顺序。要执行此操作,请在列表中选择一个,然后选择 Move up (上移)Move down (下移)

  3. 选择 Next (下一步)

  4. 在存储库的配置指标页面,对于Amazon CloudWatch 指标,您可以查看规则和规则组的计划指标,并可查看 Web 请求采样选项。有关 Amazon CloudWatch 指标的信息,请参阅使用 Amazon CloudWatch 进行监控. 有关查看抽样请求的信息,请参阅查看 Web 请求示例.

  5. 选择 Next (下一步)

  6. Review and create web ACL (审核和创建 Web ACL) 页面上,查看您的设置,然后选择 Create web ACL (创建 Web ACL)

该向导将返回到 Web ACL 页面,其中列出了您的新 Web ACL。

第 6 步:清除 资源

现在您已成功完成了教程。为了防止您的账户产生额外的 Amazon WAF 费用,需要清除所创建的 Amazon WAF 对象。或者,您可以更改配置以便与您确实要进行允许、阻止和计数的 Web 请求匹配。

注意

对于在本教程中创建的资源,Amazon 向您收取的费用通常少于每日 0.25 美元。完成后,建议您删除资源以防止产生不必要的费用。

删除 Amazon WAF 进行收费的对象

  1. Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 Edit (编辑)

  2. 在 上关联Amazon资源 — 可选,选择所有关联资源,然后选择Remove. 这将使 Web ACL 与您的 Amazon 资源取消关联。

  3. 在以下每个屏幕中,选择 Next (下一步),直到您返回到 Web ACL 页面。

    Web ACL 页面中,从列表中选择您的 Web ACL,然后选择 Delete (删除)

规则和规则语句不存在于规则组和 Web ACL 定义之外。如果您删除某个 Web ACL,则会删除您在该 Web ACL 中定义的所有单独规则。从 Web ACL 中删除规则组时,您只需删除对它的引用即可。