

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

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

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

# 教程：使用分层规则创建 AWS Firewall Manager 策略
<a name="hierarchical-rules"></a>

**警告**  
AWS WAF Classic 正在经历一个有计划的 end-of-life流程。有关您所在地区的里程碑和日期，请参阅您的 AWS Health 控制面板。

**注意**  
这是 **AWS WAF Classic** 文档。只有在 2019 年 11 月 AWS WAF 之前创建了诸如规则和 Web ACLs 之类的 AWS WAF 资源，并且尚未将其迁移到最新版本时，才应使用此版本。要迁移您的网站 ACLs，请参阅[将您的 AWS WAF 经典资源迁移到 AWS WAF](waf-migrating-from-classic.md)。  
**有关的最新版本 AWS WAF，**请参阅[AWS WAF](waf-chapter.md)。

使用 AWS Firewall Manager，您可以创建和应用包含分层规则的 AWS WAF 经典保护策略。也就是说，您可以集中创建和实施某些规则，但将特定于账户的规则的创建和维护委派给其他人。您可以监控集中应用（常见）的规则，以防止意外删除或误操作，从而确保一致地应用它们。特定于账户的规则可根据各个团队的需求添加进一步的保护。

**注意**  
在的最新版本中 AWS WAF，此功能是内置的，不需要任何特殊处理。如果您尚未使用 AWS WAF Classic，请改用最新版本。请参阅[为创建 AWS Firewall Manager 策略 AWS WAF](create-policy.md#creating-firewall-manager-policy-for-waf)。

以下教程介绍如何创建一组分层的保护规则。

**Topics**
+ [步骤 1：指定 Firewall Manager 管理员账户](#hierarchical-rules-set-firewall-administrator)
+ [步骤 2：使用 Firewall Manager 管理员账户创建规则组](#hierarchical-rules-create-a-rule-group)
+ [步骤 3：创建 Firewall Manager 策略并附加通用规则组](#hierarchical-rules-create-policy)
+ [步骤 4：添加特定于账户的规则](#hierarchical-rules-add-account-specific-rules)
+ [结论](#hierarchical-rules-conclusion)

## 步骤 1：指定 Firewall Manager 管理员账户
<a name="hierarchical-rules-set-firewall-administrator"></a>

要使用 AWS Firewall Manager，您必须将组织中的一个帐户指定为 Firewall Manager 管理员帐户。该账户可以是管理账户，也可以是该组织中的成员账户。

您可以使用 Firewall Manager 管理员账户来创建一组通用规则，以便应用于组织中的其他账户。组织中的其他账户无法更改这些集中应用的规则。

要将账户指定为 Firewall Manager 管理员账户并完成使用 Firewall Manager 的其他先决条件，请参阅 [AWS Firewall Manager 先决条件](fms-prereq.md) 中的说明。如果您已经完成了先决条件，则可以跳到本教程的步骤 2。

在本教程中，我们将管理员账户称为 **Firewall-Administrator-Account**。

## 步骤 2：使用 Firewall Manager 管理员账户创建规则组
<a name="hierarchical-rules-create-a-rule-group"></a>

接下来，使用 **Firewall-Administrator-Account** 创建规则组。此规则组包含您将应用于由您在下一步中创建的策略控制的所有成员账户的通用规则。仅 **Firewall-Administrator-Account** 可以对这些规则和容器规则组进行更改。

在本教程中，我们将此容器规则组称为 **Common-Rule-Group**。

要创建规则组，请参阅[创建 AWS WAF 经典规则组](classic-create-rule-group.md)中的说明。请记得在遵循这些说明时使用您的 Firewall Manager 管理员账户 (**Firewall-Administrator-Account**) 登录控制台。

## 步骤 3：创建 Firewall Manager 策略并附加通用规则组
<a name="hierarchical-rules-create-policy"></a>

使用 **Firewall-Administrator-Account**，创建 Firewall Manager 策略 在创建此策略时，您必须执行以下操作：
+ 将 **Common-Rule-Group** 添加到新策略。
+ 在组织中包含您希望 **Common-Rule-Group** 应用到的所有账户。
+ 添加您希望 **Common-Rule-Group** 应用到的所有资源。

有关创建策略的说明，请参阅[创建 AWS Firewall Manager 策略](create-policy.md)。

这会在每个指定的账户中创建一个 Web ACL，并**Common-Rule-Group**向每个账户添加一个 Web ACL ACLs。创建策略后，此 web ACL 和通用规则将部署到所有指定的账户。

在本教程中，我们将此 web ACL 称为 **Administrator-Created-ACL**。现在，组织的每个指定成员账户中都存在唯一的 **Administrator-Created-ACL**。

## 步骤 4：添加特定于账户的规则
<a name="hierarchical-rules-add-account-specific-rules"></a>

组织中的每个成员账户现在都可以将自己的特定于账户的规则添加到其账户中存在的 **Administrator-Created-ACL**。已有的通用规则以及针对特定账户的新规则**Administrator-Created-ACL**继续适用。 AWS WAF 根据规则在 Web ACL 中出现的顺序检查 Web 请求。这适用于 **Administrator-Created-ACL** 和特定于账户的规则。

要向 **Administrator-Created-ACL** 中添加规则，请参阅 [在中编辑保护包 (Web ACL) AWS WAF](web-acl-editing.md)。

## 结论
<a name="hierarchical-rules-conclusion"></a>

您现在拥有一个 web ACL，其中包含由 Firewall Manager 管理员账户管理的通用规则以及每个成员账户维护的特定于账户的规则。

每个账户中的 **Administrator-Created-ACL** 都引用单个 **Common-Rule-Group**。因此，Firewall Manager 管理员账户在未来对 **Common-Rule-Group** 进行的更改将立即在每个成员账户中生效。

成员账户无法更改或删除 **Common-Rule-Group** 中的通用规则。

特定于账户的规则不影响其他账户。