

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

# 为单个日志组创建数据保护策略
<a name="mask-sensitive-log-data-start"></a>

您可以使用 CloudWatch 日志控制台或 Amazon CLI 命令创建数据保护策略来屏蔽敏感数据。

您可以为每个日志组分配一个数据保护策略。每个数据保护策略都可以对多种类型的信息进行审核。每个数据保护策略可以包含一条审核语句。

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

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

**使用控制台创建数据保护策略**

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

1.  在导航窗格中，依次选择**日志**和**日志组**。

1. 选择日志组的名称。

1. 选择 **Actions**（操作）、**Create data protection policy**（创建数据保护策略）。

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

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

   有关可以使用托管数据标识符保护哪些类型的数据的详细信息，请参阅 [您可以保护的数据类型](protect-sensitive-log-data-types.md)。

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

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

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

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

## Amazon CLI
<a name="mask-sensitive-log-data-start-cli"></a>

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

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

1. 输入以下命令：

   ```
   aws logs put-data-protection-policy --log-group-identifier "{{my-log-group}}" --policy-document file:///Path/DataProtectionPolicy.json --region {{us-west-2}}
   ```

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

当您创建用于 Amazon 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": {}` 对象必须为空。

以下是屏蔽电子邮件地址和美国驾驶执照的数据保护策略示例。

```
{
    "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": {}
                }
            }
        }
    ]
}
```