设置 AWS WAF 及其组件 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

设置 AWS WAF 及其组件

本教程展示了如何使用 AWS WAF 执行以下任务:

  • 设置 AWS WAF.

  • 使用中的向导创建 Web 访问控制列表 (WebACL) AWS WAF console。

  • 选择 AWS 你想要的资源 AWS WAF 来检查 Web 请求。本教程介绍了 Amazon 的操作步骤 CloudFront。Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQLAPI,一个亚马逊 Cognito 用户池,一个 AWS App Runner 服务,或 AWS 已验证访问实例。

  • 添加要用于筛选 Web 请求的规则和规则组。例如,您可以指定请求的来源 IP 地址以及请求中仅由攻击者使用的值。对于每个规则,您可以指定如何处理匹配的 Web 请求。你可以做一些事情,比如屏蔽或计数,也可以运行机器人挑战,比如CAPTCHA。您可以为在 Web 中定义的每条规则ACL以及您在规则组中定义的每条规则定义一个操作。

  • 为 Web 指定默认操作ACL,或者 Block 或者 Allow。 这个动作是 AWS WAF 当网络中的规则ACL没有明确允许或阻止请求时,会接受请求。

注意

AWS 对于您在本教程中创建的资源,每天向您收取的费用通常少于 0.25 美元。当您完成本教程时,建议您删除资源以避免产生不必要的费用。

步骤 1:设置 AWS WAF

如果您尚未按照 设置您的账户以使用服务 中的常规设置步骤操作,请立即执行操作。

步骤 2:创建网站 ACL

这些区域有: AWS WAF 控制台将引导您完成配置过程 AWS WAF 根据您指定的标准(例如请求来源的 IP 地址或请求中的值)阻止或允许 Web 请求。在此步骤中,您将创建一个网站ACL。有关 AWS WAF 网页ACLs,请参阅ACLs在 web 中使用 AWS WAF

创建网站 ACL
  1. 登录 AWS Management Console 然后打开 AWS WAF 控制台位于https://console.aws.amazon.com/wafv2/

  2. 来自 AWS WAF 主页,选择创建网页ACL

  3. 在 “名称” 中,输入您要用来识别此网站的名称ACL。

    注意

    创建网站后,您无法更改名称ACL。

  4. (可选)在 “描述-可选” 中,根据ACL需要输入较长的网络描述。

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

    注意

    创建网站后,您无法更改 CloudWatch 指标名称ACL。

  6. 对于资源类型,选择CloudFront分配区域会自动填充到 Gl obal (CloudFront) 以进行 CloudFront 分配。

  7. (可选)适用于关联公司 AWS 资源-可选,选择添加 AWS 资源。在对话框中,选择要关联的资源,然后选择添加。 AWS WAF 将您返回到 Desc ribe Web ACL 并关联的 AWS 资源页面。

  8. 选择下一步

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

在此步骤中,您将使用字符串匹配语句创建规则,并指示如何处理匹配请求。字符串匹配规则语句可识别你想要的字符串 AWS WAF 在请求中搜索。通常,字符串由可打印的字符组成,但您可以指定从十六进制 0x00 到 0xFF(十进制 0 到 255)之间的任何ASCII字符。除了指定要搜索的字符串外,您还可以指定要搜索的 Web 请求组件,例如标头、查询字符串或请求正文。

此语句类型在 Web 请求组件上运行,需要以下请求组件设置:

  • 请求组件 – Web 请求中要检查的部分,例如查询字符串或正文。

    警告

    如果您检查请求组件 B ody、b JSONodyHeader s 或 Cookie,请阅读内容数量的限制 AWS WAF 可以在在中处理超大的 Web 请求组件 AWS WAF

    有关请求组件的更多信息,请参阅 在中调整规则语句设置 AWS WAF

  • 可选的文本转换-你想要的转换 AWS WAF 在检查请求组件之前对其执行。例如,您可以将空格转换为小写或标准化空格。如果您指定了多个转换, AWS WAF 按列出的顺序处理它们。有关信息,请参阅在中使用文本转换 AWS WAF

有关以下内容的更多信息 AWS WAF 规则,请参阅使用 AWS WAF 规则

创建字符串匹配规则语句
  1. 添加规则和规则组 页面上,选择 添加规则添加我自己的规则和规则组规则生成器,然后选择 规则可视化编辑器

    注意

    控制台提供规则可视化编辑器和规则JSON编辑器。JSON编辑器使您可以轻松地在 Web ACLs 之间复制配置,对于更复杂的规则集(例如具有多个嵌套级别的规则集)来说,该编辑器是必需的。

    此过程使用 规则可视化编辑器

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

  3. 对于 类型,选择 常规规则

  4. 对于 如果请求,选择 与语句匹配

    其他选项适用于逻辑规则语句类型。您可以使用它们来组合或否定其他规则语句的结果。

  5. 在 St atem ent 中,在 Insp ect 中,打开下拉列表并选择你想要的 Web 请求组件 AWS WAF 去检查。在本示例中,选择单标题

    选择 “单标题” 时,还要指定想要哪个标题 AWS WAF 去检查。输入 User-Agent。此值不区分大小写。

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

    在此示例中,选择 完全匹配字符串。这表明 AWS WAF 检查每个 Web 请求中的用户代理标头,寻找与您指定的字符串相同的字符串。

  7. 对于要匹配的字符串,请指定所需的字符串 AWS WAF 来搜索。要匹配的字符串 的最大长度是 200 个字符。如果您要指定 base64 编码值,您可以指定最多 200 个字符(编码前)。

    在此示例中,请输入 MyAgent。 AWS WAF 将检查 Web 请求中的User-Agent标头以获取值MyAgent

  8. 文本转换 保留设置为

  9. 对于操作,选择您希望规则在与 Web 请求匹配时执行的操作。在此示例中,选择计数,其他选项保持不变。计数操作会为与规则匹配的 Web 请求创建指标,但不会影响请求是允许还是阻止。有关操作选择的更多信息,请参阅 在中使用规则操作 AWS WAF使用ACLs带有规则和规则组的 Web AWS WAF

  10. 选择 添加规则

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

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

要添加 AWS 托管规则规则组
  1. 添加规则和规则组 页面上,选择 添加规则,然后选择 添加托管规则组

  2. 添加托管规则组页面上,展开列表 AWS 托管规则组。(您还将看到提供的房源 AWS Marketplace 卖家。您可以订阅他们的产品,然后以与之相同的方式使用它们 AWS 托管规则规则组。)

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

    1. 在 “操作” 列中,打开 “添加到网页 ACL” 开关。

    2. 选择 “编辑”,然后在规则组的 “规则” 列表中打开 “覆盖所有规则操作” 下拉列表并选择 Count。 这会将规则组中所有规则的操作设置为仅计数。这样,您就可以在使用规则组中的所有规则之前,查看其中的任何规则其对 Web 请求的行为。

    3. 选择保存规则

  4. 选择添加规则,然后选择 添加托管规则组。这样,您将返回到添加规则和规则组页面。

第 5 步:完成网页ACL配置

在 Web ACL 配置中添加完规则和规则组后,通过管理 Web 中规则的优先级ACL并配置指标、标记和日志记录等设置来完成。

完成您的 Web ACL 配置
  1. 添加规则和规则组 页面上,选择 下一步

  2. 设置规则优先级页面上,您可以看到网络中规则和规则组的处理顺序ACL。 AWS WAF 从列表顶部开始处理它们。您可以通过上下移动规则来更改处理顺序。要执行此操作,请在列表中选择一个,然后选择 上移下移。有关规则优先级的更多信息,请参阅 在 Web 中设置规则优先级 ACL

  3. 选择下一步

  4. 配置指标页面上,对于亚马逊 CloudWatch指标,您可以查看规则和规则组的计划指标,也可以查看网络请求采样选项。有关查看采样请求的信息,请参阅 查看 Web 请求示例。有关 Amazon CloudWatch 指标的信息,请参阅使用 Amazon 进行监控 CloudWatch

    您可以在网页上访问网页上ACL的 Web 流量指标摘要 AWS WAF 控制台,在 “流量概述” 选项卡下。控制台控制面板提供网络上的 Amazon CloudWatch 指标的近乎实时ACL的摘要。有关更多信息,请参阅 Web ACL 流量概述控制面板

  5. 选择下一步

  6. 查看并创建ACL网页上,查看您的设置,然后选择创建网页ACL。

向导会将您返回到网ACL页,其中列出了您的新网ACL页。

步骤 6:清除资源

现在您已成功完成了教程。为了防止您的账户累积额外资金 AWS WAF 充电,清理 AWS WAF 您创建的对象。或者,您可以使用更改配置以匹配您真正想要管理的 Web 请求 AWS WAF.

注意

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

要删除以下对象 AWS WAF 收费
  1. ACL网页中,ACL从列表中选择您的网站,然后选择编辑

  2. 关于美联社 AWS 资源选项卡,对于每个关联的资源,选择资源名称旁边的单选按钮,然后选择取消关联。这会断开网络与你的ACL关联 AWS 资源的费用。

  3. 在以下每个屏幕中,选择 “下一步”,直到返回网ACL页。

    ACL网页中,ACL从列表中选择您的网站,然后选择删除

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