

**引入全新的主机体验 AWS WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# 开始使用 AWS WAF
<a name="getting-started"></a>

 入门 AWS WAF 取决于你使用的主机体验。两种体验都提供对相同核心 AWS WAF 功能的访问权限，但在配置和管理 Web 应用程序保护的方式上有所不同。

 AWS WAF 提供了两个使用控制台的选项：

 **新控制台**旨在简化标准控制台工作流程所需的 web ACL 配置过程。您可以使用指导式工作流程，通过保护包简化 web ACL 的创建和管理过程。保护包可以更轻松地在控制台 ACLs 中使用和管理 Web，但在功能上与 Web ACL 并无区别。除改进的保护配置过程以外，新控制台还通过安全控制面板增强对保护的可见性，从而可以更轻松地在 AWS WAF 控制台中监控您的安全状况。

 **标准 AWS WAF 控制台**提供了一种使用 Web 配置 Web 应用程序防火墙保护的传统方法 ACLs。它提供对单个规则和规则组的精细控制，现有 AWS WAF 用户很熟悉。使用此控制台，您可以详细控制保护配置，以便精确地自定义安全设置。

**提示**  
 选择最适合您需求的控制台体验。如果您不熟悉 AWS WAF 或想开始根据 AWS 建议配置保护，我们建议您从全新的主机体验开始。但是，您始终可以通过控制台的导航窗格打开标准体验。

 以下各节提供两种控制台体验的入门指南。查看每种方法，并选择与安全要求和操作偏好最相符的方法：

**Topics**
+ [开始 AWS WAF 使用全新的主机体验](setup-iap-console.md)
+ [开始 AWS WAF 使用标准主机体验](setup-existing-console.md)

# 开始 AWS WAF 使用全新的主机体验
<a name="setup-iap-console"></a>

本节将指导您 AWS WAF 使用新的控制台体验进行设置，该体验提供了简化的配置工作流程和增强的安全管理功能。

## 访问新的控制台体验
<a name="accessing-iap-console"></a>

要访问全新的 AWS WAF 主机体验，请执行以下操作：

登录新版 AWS 管理控制台 并通过 [https://console.aws.amazon.com/waf](https://console.aws.amazon.com/wafv2-pro) v2-pro 打开 AWS WAF 控制台。
+ 在导航窗格中，查找并选择**尝试新体验**。

**注意**  
您可随时通过导航窗格中的链接在不同控制台体验之间切换。

## 开始使用保护包（web ACL）
<a name="getting-started-protection-packs"></a>

本教程向您展示如何创建和配置保护包（web ACL）以保护您的应用程序。保护包 (Web ACLs) 提供针对特定工作负载类型量身定制的预配置安全规则。

在本教程中，您将学习如何：
+ 创建保护包（web ACL）
+ 配置特定于应用程序的保护设置
+ 添加要保护的 AWS 资源
+ 选择和自定义规则
+ 配置日志记录和监控

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

### 第 1 步：设置 AWS WAF
<a name="getting-started-prerequisites"></a>

如果您尚未按照 [设置您的账户以使用服务](setting-up-waf.md) 中的常规设置步骤操作，请立即执行操作。

### 步骤 2：创建保护包（web ACL）
<a name="getting-started-create-protection-pack"></a>

在此步骤中，您将创建保护包（web ACL），并配置其基本设置，以匹配您的应用程序类型。

1. 登录新版 AWS 管理控制台 并通过 [https://console.aws.amazon.com/waf](https://console.aws.amazon.com/wafv2-pro) v2-pro 打开 AWS WAF 控制台。

1. 在导航窗格中，选择**资源和保护包 (Web ACLs)**。

1. 在**资源和保护包 (Web ACLs)** 页面上，选择**添加保护包 (Web ACL)**。

1. 在**向我们介绍您的应用程序**下，对于**应用程序类别**，选择一个或多个最能描述您应用程序的应用程序类别。

1. 对于**流量来源**，选择应用程序处理的流量类型：
   + **API**：适用于仅限 API 的应用程序
   + **Web**：适用于仅限 web 的应用程序
   + **API 和 Web**：适用于同时处理这两种流量的应用程序

### 步骤 3：添加要保护的资源
<a name="getting-started-add-resources"></a>

现在，您将指定要使用保护包（Web ACL）保护哪些 AWS 资源。

1. 在**要保护的资源**下，选择**添加资源**。

1. 选择要与此保护包关联的 AWS 资源类别（Web ACL）：
   + 亚马逊配 CloudFront 送
   + 区域性资源

   有关资源类型的更多信息，请参阅 [将保护与资源关联 AWS](web-acl-associating.md)。

### 步骤 4：选择初始保护
<a name="getting-started-configure-protection"></a>

在此步骤中，您将为保护包（web ACL）选择规则。对于首次使用的用户，我们建议选择**推荐**选项。

AWS WAF 根据您在 “向**我们介绍您的应用程序” 部分中所做的选择，为您**生成 “**推荐**”。这些包为您的应用程序类型实施安全性最佳实践。
+  选择**下一步**，继续设置保护包（web ACL）。

**注意**  
如果您有兴趣创建自定义规则或使用**自行构建**选项，我们建议您先积累使用预配置选项的经验。有关创建自定义保护包 (Web ACLs) 和规则的更多信息，请参阅[在中创建保护包 (Web ACL) AWS WAF](web-acl-creating.md)。

### 步骤 5：自定义保护包（web ACL）设置
<a name="getting-started-customize-settings"></a>

现在，您将配置其他设置，例如默认操作、速率限制和日志记录。

1. 在**名称和描述**下，为您的保护包（web ACL）输入名称。（可选）输入描述。
**注意**  
保护包（web ACL）在创建之后无法更改名称。

1. 在**自定义保护包（web ACL）**下，配置以下设置：

   1. 在**默认规则操作**下，选择不匹配任何规则的请求默认操作。有关更多信息，请参阅 [自定义的 Web 请求和响应 AWS WAF](waf-custom-request-response.md)。

   1. 在**规则配置**下，自定义以下设置：
      + **默认速率限制**-设置限制以防御 DDo S 攻击
      + **IP 地址**-配置 IP allow/block 列表
      + **国家/地区特定来源**：按国家/地区管理访问权限

   1. 在**日志记录目标**中，配置要存储日志的位置。有关更多信息，请参阅 [AWS WAF 登录目的地](logging-destinations.md)。

1. 查看您的设置，并选择**添加保护包（web AC）**。

### 步骤 6：清除资源
<a name="getting-started-clean-up"></a>

现在您已成功完成了教程。为了防止您的账户产生额外 AWS WAF 费用，您应该删除您创建的保护包 (Web ACL)，或者对其进行修改以满足您的生产需求。

**删除您的保护包（web ACL）**

1. 在导航窗格中，选择**资源和保护包 (Web ACLs)**。

1. 选择您创建的保护包（web ACL）。

1. 选择垃圾桶图标，然后键入“删除”确认删除。

**注意**  
如果您计划在生产环境中使用此保护包（web ACL），则应查看并调整保护设置，而不是将其删除，以满足应用程序的安全要求。

# 开始 AWS WAF 使用标准主机体验
<a name="setup-existing-console"></a>

 AWS WAF 控制台将指导您完成配置过程， AWS WAF 以根据您指定的标准（例如请求来源的 IP 地址或请求中的值）阻止或允许 Web 请求。在此步骤中，您将创建一个保护包（web ACL）。有关 AWS WAF 保护包 (Web ACLs) 的更多信息，请参阅[在中配置保护 AWS WAF](web-acl.md)。

本教程介绍如何使用 AWS WAF 来执行以下任务：
+ 设置 AWS WAF。
+ 使用控制 AWS WAF 台中的向导创建 Web 访问控制列表 (Web ACL)。

**创建 web ACL**

  1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

  1. 在 AWS WAF 主页上，选择**创建 Web ACL**。

  1. 对于 **名称**，输入要用于标识此 web ACL 的名称。
**注意**  
web ACL 在创建之后无法更改名称。

  1. （可选）对于 **描述 - 可选**，如果需要，请输入 web ACL 的较长描述。

  1. 对于 **CloudWatch metric name (CloudWatch 指标名称)**，更改默认名称（如果适用）。按照控制台上的指导进行有效字符操作。该名称不能包含为 AWS WAF保留的特殊字符、空格或指标名称，包括“All”和“Default\$1Action”。
**注意**  
创建 Web ACL 后，您无法更改 CloudWatch 指标名称。

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

  1. （可选）对于**关联 AWS 资源-可选**，选择**添加 AWS 资源**。在对话框中，选择要关联的资源，然后选择**添加**。 AWS WAF 返回到**描述 web ACL 和关联的 AWS 资源**页面。

  1. 选择**下一步**。

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

## 第 1 步：设置 AWS WAF
<a name="getting-started-aws-account"></a>

如果您尚未按照 [设置您的账户以使用服务](setting-up-waf.md) 中的常规设置步骤操作，请立即执行操作。

## 步骤 2：创建 web ACL
<a name="getting-started-wizard-create-web-acl"></a>

 AWS WAF 控制台将指导您完成配置过程， AWS WAF 以根据您指定的标准（例如请求来源的 IP 地址或请求中的值）阻止或允许 Web 请求。在此步骤中，您将创建一个 web ACL。有关 AWS WAF Web 的更多信息 ACLs，请参阅[在中配置保护 AWS WAF](web-acl.md)。

**创建 web ACL**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

1. 在 AWS WAF 主页上，选择**创建 Web ACL**。

1. 对于 **名称**，输入要用于标识此 web ACL 的名称。
**注意**  
web ACL 在创建之后无法更改名称。

1. （可选）对于 **描述 - 可选**，如果需要，请输入 web ACL 的较长描述。

1. 对于 **CloudWatch metric name (CloudWatch 指标名称)**，更改默认名称（如果适用）。按照控制台上的指导进行有效字符操作。该名称不能包含为 AWS WAF保留的特殊字符、空格或指标名称，包括“All”和“Default\$1Action”。
**注意**  
创建 Web ACL 后，您无法更改 CloudWatch 指标名称。

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

1. （可选）对于**关联 AWS 资源-可选**，选择**添加 AWS 资源**。在对话框中，选择要关联的资源，然后选择**添加**。 AWS WAF 返回到**描述 web ACL 和关联的 AWS 资源**页面。

1. 选择**下一步**。

## 步骤 3：添加字符串匹配规则
<a name="getting-started-wizard-create-string-condition"></a>

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

此语句类型在 web 请求组件上运行，需要以下请求组件设置：
+ **请求组件**：web 请求中要检查的部分，例如查询字符串或正文。
**警告**  
如果您检查请求组件 B **ody**、**JSON 正**文、**Header** **s 或 Cookie**，请阅读有关内容 AWS WAF 可检查数量的限制[中的 Web 请求组件过大 AWS WAF](waf-oversize-request-components.md)。

  有关请求组件的更多信息，请参阅 [在中调整规则语句设置 AWS WAF](waf-rule-statement-fields.md)。
+ **可选的文本转换**-在检查请求组件之前 AWS WAF 要对其执行的转换。例如，您可以将空格转换为小写或标准化空格。如果您指定了多个转换，则按列出的顺序 AWS WAF 处理它们。有关信息，请参阅[在中使用文本转换 AWS WAF](waf-rule-statement-transformation.md)。

有关 AWS WAF 规则的更多信息，请参阅[AWS WAF 规则](waf-rules.md)。

**创建字符串匹配规则语句**

1. 在 **添加规则和规则组** 页面上，选择 **添加规则**、**添加我自己的规则和规则组**、**规则生成器**，然后选择 **规则可视化编辑器**。
**注意**  
控制台提供 **规则可视化编辑器** 和 **规则 JSON 编辑器**。JSON 编辑器使您可以轻松地在 Web ACLs 之间复制配置，对于更复杂的规则集（例如具有多个嵌套级别的规则集）来说，这是必需的。  
此过程使用 **规则可视化编辑器**。

1. 对于 **名称**，输入要用于标识此规则的名称。

1. 对于 **类型**，选择 **常规规则**。

1. 对于 **如果请求**，选择 **与语句匹配**。

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

1. 在 St **at** ement 中，对于 **Inspect**，打开下拉列表并选择 AWS WAF 要检查的 Web 请求组件。对于此示例，选择**单个标头**。

   选择**单个标头**时，还可以指定希望 AWS WAF 检查的标头。输入 **User-Agent**。此值不区分大小写。

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

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

1. 对于 **要匹配的字符串**，请指定希望 AWS WAF 搜索的字符串。**要匹配的字符串** 的最大长度是 200 个字符。如果您要指定 base64 编码值，您可以指定最多 200 个字符（编码前）。

   对于此示例，请输入**MyAgent**。 AWS WAF 将检查 Web 请求中的`User-Agent`标头以获取值`MyAgent`。

1. 将 **文本转换** 保留设置为 **无**。

1. 对于**操作**，选择您希望规则在与 web 请求匹配时执行的操作。在此示例中，选择**计数**，其他选项保持不变。计数操作会为与规则匹配的 web 请求创建指标，但不会影响请求是允许还是阻止。有关操作选择的更多信息，请参阅 [在中使用规则操作 AWS WAF](waf-rule-action.md) 和 [设置规则优先级](web-acl-processing-order.md)。

1. 选择**添加规则**。

## 步骤 4：添加 AWS 托管规则规则组
<a name="getting-started-wizard-add-rule-group"></a>

AWS 托管规则提供了一组托管规则组供您使用，其中大部分对 AWS WAF 客户免费。有关规则组的更多信息，请参阅 [AWS WAF 规则组](waf-rule-groups.md)。我们将向此 Web ACL 添加 AWS 托管规则组。

**添加 AWS 托管规则规则组**

1. 在 **添加规则和规则组** 页面上，选择 **添加规则**，然后选择 **添加托管规则组**。

1. 在**添加托管规则组**页面上，展开 **AWS 托管规则组**。（您还将看到为 AWS Marketplace 卖家提供的商品。 您可以订阅他们的产品，然后按照与 AWS 托管规则组相同的方式使用它们。）

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

   1. 在**操作**列中，打开**添加到 web ACL**切换选项。

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

   1. 选择**保存规则**。

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

## 步骤 5：完成 web ACL 配置
<a name="getting-started-wizard-finish-webacl-options"></a>

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

**完成 web ACL 配置**

1. 在 **添加规则和规则组** 页面上，选择 **下一步**。

1. 在**设置规则优先级**页面上，您可以看到 Web ACL 中规则和规则组的处理顺序。 AWS WAF 从列表顶部开始处理它们。您可以通过上下移动规则来更改处理顺序。要执行此操作，请在列表中选择一个，然后选择 **上移** 或 **下移**。有关规则优先级的更多信息，请参阅 [设置规则优先级](web-acl-processing-order.md)。

1. 选择**下一步**。

1. 在**配置指标**页面上，对于**亚马逊 CloudWatch指标**，您可以查看规则和规则组的计划指标，也可以查看网络请求采样选项。有关查看采样请求的信息，请参阅 [查看 web 请求示例](web-acl-testing-view-sample.md)。有关 Amazon CloudWatch 指标的信息，请参阅[使用 Amazon 进行监控 CloudWatch](monitoring-cloudwatch.md)。

   您可以在 AWS WAF 控制台的 Web ACL 页面的 “流量**概述” 选项卡下访问 Web 流量**指标摘要。控制台控制面板提供网络 ACL 的 Amazon CloudWatch 指标的近乎实时的摘要。有关更多信息，请参阅 [保护包的流量概述仪表板 (Web ACLs)](web-acl-dashboards.md)。

1. 选择**下一步**。

1. 在 **审核和创建 web ACL** 页面上，查看您的设置，然后选择 **创建 web ACL**。

该向导将返回到 **web ACL** 页面，其中列出了您的新 web ACL。

## 步骤 6：清除资源
<a name="getting-started-wizard-clean-up"></a>

现在您已成功完成了教程。为防止您的账户产生额外 AWS WAF 费用，请清理您创建的 AWS WAF 对象。或者，您可以更改配置以匹配您真正想要管理的 Web 请求 AWS WAF。

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

**删除 AWS WAF 收取费用的对象**

1. 在 **web ACL** 页面中，从列表中选择您的 web ACL，然后选择**编辑**。

1. 在**关联 AWS 资源**选项卡上，对于每个关联的资源，选择资源名称旁边的单选按钮，然后选择**取消关联**。这会断开 Web ACL 与您的 AWS 资源的关联。

1. 在以下每个屏幕中，选择**下一步**，直到您返回到 **web ACL** 页面。

   在 **web ACL** 页面中，从列表中选择您的 web ACL，然后选择**删除**。

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