

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

# 创建账户范围的数据保护策略
<a name="mask-sensitive-log-data-accountlevel"></a>

您可以使用 CloudWatch 日志控制台或 AWS CLI 命令创建数据保护策略，以屏蔽您账户中所有日志组的敏感数据。这样做会同时影响当前的日志组和将来创建的日志组。

**重要**  
将敏感数据摄入日志组时会进行检测并屏蔽。设置数据保护策略时，不会屏蔽在该时间之前摄入到日志组的日志事件。

**Topics**
+ [控制台](#mask-sensitive-log-data-accountlevel-console)
+ [AWS CLI](#mask-sensitive-log-data-accountlevel-cli)

## 控制台
<a name="mask-sensitive-log-data-accountlevel-console"></a>

**使用控制台创建账户范围数据保护策略**

1. 打开 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)。

1.  在导航窗格中，选择**设置**。它位于列表底部附近。

1. 选择**日志**选项卡。

1. 选择**配置**。

1. 对于**托管数据标识符**，选择要为所有日志组审计和屏蔽的数据类型。您可以在选择框中键入以查找所需的标识符。

   建议您仅选择与您的日志数据和业务相关的数据标识符。选择多种类型的数据可能会导致误报。

   有关您可以保护的数据类型的详细信息，请参阅 [您可以保护的数据类型](protect-sensitive-log-data-types.md)。

1. （可选）如果您想使用自定义数据标识符审核和屏蔽其他类型的数据，请选择**添加自定义数据标识符**。然后输入数据类型的名称和用于在日志事件中搜索该类型数据的正则表达式。有关更多信息，请参阅 [自定义数据标识符](CWL-custom-data-identifiers.md)。

   单个数据保护策略最多可包含 10 个自定义数据标识符。定义自定义数据标识符的每个正则表达式不得超过 200 个字符。

1. （可选）选择要将审核结果发送到的一项或多项服务。即使您选择不将审计结果发送到任何这些服务，您选择的敏感数据类型也仍将屏蔽。

1. 选择 **Activate data protection**（激活数据保护）。

## AWS CLI
<a name="mask-sensitive-log-data-accountlevel-cli"></a>

**使用 AWS CLI 来创建数据保护策略**

1. 使用文本编辑器创建名为 `DataProtectionPolicy.json` 的策略文件。有关策略语法的信息，请参阅以下部分。

1. 输入以下命令：

   ```
   aws logs put-account-policy \
   --policy-name TEST_POLICY --policy-type "DATA_PROTECTION_POLICY" \
   --policy-document file://policy.json \
   --scope "ALL" \
   --region us-west-2
   ```

### AWS CLI 或 API 操作的数据保护策略语法
<a name="mask-sensitive-log-data-policysyntax-account"></a>

当您创建用于 AWS CLI 命令或 API 操作的 JSON 数据保护策略时，该策略必须包含两个 JSON 块：
+ 第一个块必须包含 `DataIdentifer` 数组和带有 `Audit` 操作的 `Operation` 属性。`DataIdentifer` 数组列出要屏蔽的敏感数据类型。有关可用选项的更多信息，请参阅[您可以保护的数据类型](protect-sensitive-log-data-types.md)。

  需要带有 `Audit` 操作的 `Operation` 属性才能找到敏感数据项。此 `Audit` 操作必须包含一个 `FindingsDestination` 对象。您可以选择使用该 `FindingsDestination` 对象列出要将审计结果报告发送到的一个或多个目标。如果指定日志组、Amazon Data Firehose 流和 S3 存储桶等目标，则它们必须已经存在。有关审计结果报告的示例，请参阅 [审计结果报告](mask-sensitive-log-data-audit-findings.md)。
+ 第二个块必须包含 `DataIdentifer` 数组和带有 `Deidentify` 操作的 `Operation` 属性。`DataIdentifer` 数组必须与策略第一个块中的 `DataIdentifer` 数组完全匹配。

  带有 `Deidentify` 操作的 `Operation` 属性实际上是屏蔽数据的属性，它必须包含 ` "MaskConfig": {}` 对象。` "MaskConfig": {}` 对象必须为空。

下面是仅使用托管数据标识符的数据保护策略示例。此策略屏蔽电子邮件地址和美国驾驶执照。

有关指定自定义数据标识符的策略信息，请参阅 [在数据保护策略中使用自定义数据标识符](CWL-custom-data-identifiers.md#using-custom-data-identifiers)。

```
{
    "Name": "data-protection-policy",
    "Description": "test description",
    "Version": "2021-06-01",
    "Statement": [{
            "Sid": "audit-policy",
            "DataIdentifier": [
                "arn:aws:dataprotection::aws:data-identifier/EmailAddress",
                "arn:aws:dataprotection::aws:data-identifier/DriversLicense-US"
            ],
            "Operation": {
                "Audit": {
                    "FindingsDestination": {
                        "CloudWatchLogs": {
                            "LogGroup": "EXISTING_LOG_GROUP_IN_YOUR_ACCOUNT,"
                        },
                        "Firehose": {
                            "DeliveryStream": "EXISTING_STREAM_IN_YOUR_ACCOUNT"
                        },
                        "S3": {
                            "Bucket": "EXISTING_BUCKET"
                        }
                    }
                }
            }
        },
        {
            "Sid": "redact-policy",
            "DataIdentifier": [
                "arn:aws:dataprotection::aws:data-identifier/EmailAddress",
                "arn:aws:dataprotection::aws:data-identifier/DriversLicense-US"
            ],
            "Operation": {
                "Deidentify": {
                    "MaskConfig": {}
                }
            }
        }
    ]
}
```