

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

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

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

# 中的标签语法和命名要求 AWS WAF
<a name="waf-rule-label-requirements"></a>

本节介绍如何构造 AWS WAF 标签并与之匹配。

标签是由前缀、可选命名空间和名称组成的字符串。标签的组成部分用冒号分隔。标签具有以下要求和特征：
+ 标签区分大小写。
+ 每个标签命名空间或标签名称最多可包含 128 个字符。
+ 您最多可以在标签中指定 5 个命名空间。
+ 标签的组成部分用冒号 (`:`) 分隔。
+ 不能在为标签指定的命名空间或名称中使用以下保留字符串：`awswaf`、`aws`、`waf`、`rulegroup`、`webacl`、`regexpatternset`、`ipset` 和 `managed`。

## 标签语法
<a name="waf-rule-label-syntax"></a>

完全限定的标签具有前缀、可选命名空间和标签名称。前缀用于标识添加标签的规则的规则组或保护包（web ACL）上下文。命名空间可用于为标签添加更多上下文。标签名称提供了标签的最低详细级别。它通常表示在请求中添加标签的特定规则。

标签前缀因其来源而异。
+ **您的标签**：以下内容显示了您在保护包（web ACL）和规则组规则中所创建标签的完整标签语法。实体类型为 `rulegroup` 和 `webacl`。

  ```
  awswaf:<entity owner account id>:<entity type>:<entity name>:<custom namespace>:...:<label name>
  ```
  + 标签命名空间前缀：`awswaf:<entity owner account id>:<entity type>:<entity name>:`
  + 添加的自定义命名空间：`<custom namespace>:…:`

  在规则组或保护包（web ACL）中为规则定义标签时，您可以控制自定义命名空间字符串和标签名称。其余的由你生成 AWS WAF。 AWS WAF 自动在所有标签前加`awswaf`上账户和保护包 (Web ACL) 或规则组实体设置。
+ **托管规则组标签**：以下内容显示了由托管规则组中的规则创建的标签的完整标签语法。

  ```
  awswaf:managed:<vendor>:<rule group name>:<custom namespace>:...:<label name>
  ```
  + 标签命名空间前缀：`awswaf:managed:<vendor>:<rule group name>:`
  + 添加的自定义命名空间：`<custom namespace>:…:`

  所有 AWS 托管规则规则组都会添加标签。有关托管规则组的信息，请参阅 [在中使用托管规则组 AWS WAF](waf-managed-rule-groups.md)。
+ **来自其他 AWS 进程的标签**- AWS 托管规则规则组使用这些进程，因此您可以看到它们已添加到使用托管规则组评估的 Web 请求中。下面显示了由托管规则组调用的进程所创建的标签的完整标签语法。

  ```
  awswaf:managed:<process>:<custom namespace>:...:<label name>
  ```
  + 标签命名空间前缀：`awswaf:managed:<process>:`
  + 添加的自定义命名空间：`<custom namespace>:…:`

  这种类型的标签是为调用 AWS 进程的托管规则组而列出的。有关托管规则组的信息，请参阅 [在中使用托管规则组 AWS WAF](waf-managed-rule-groups.md)。

## 为您的规则添加标签的示例
<a name="waf-rule-label-examples-rules"></a>

以下示例标签由属于账户 111122223333 的名为 `testRules` 的规则组中的规则定义。

```
awswaf:111122223333:rulegroup:testRules:testNS1:testNS2:LabelNameA
```

```
awswaf:111122223333:rulegroup:testRules:testNS1:LabelNameQ
```

```
awswaf:111122223333:rulegroup:testRules:LabelNameZ
```

下面的列表显示了 JSON 中的示例标签规范。这些标签名称在结尾标签名称之前包含自定义命名空间字符串。

```
Rule: {
    Name: "label_rule",
    Statement: {...}
    RuleLabels: [
        Name: "header:encoding:utf8",
        Name: "header:user_agent:firefox"
    ],
    Action: { Count: {} }
}
```

**注意**  
您可以通过规则 JSON 编辑器在控制台中访问此类列表。

如果您在与前面的标签示例相同的规则组和账户中运行上述规则，则将生成以下完全限定标签：

```
awswaf:111122223333:rulegroup:testRules:header:encoding:utf8
```

```
awswaf:111122223333:rulegroup:testRules:header:user_agent:firefox
```

## 托管规则组的标签示例
<a name="waf-rule-label-examples-rule-groups"></a>

以下显示了 AWS 托管规则组及其调用的流程的示例标签。

```
awswaf:managed:aws:core-rule-set:NoUserAgent_Header
```

```
awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments
```

```
awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials
```

```
awswaf:managed:token:accepted
```