

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

# 使用日志组和日志流
<a name="Working-with-log-groups-and-streams"></a>

 日志流是共享同一来源的一系列日志事件。Logs 中每个单独的 CloudWatch 日志源构成一个单独的日志流。

 日志组是一组具有相同保留期、监控和访问控制设置的日志流。您可以定义日志组并指定向各组中放入哪些流。对可属于一个日志组的日志流数没有限制。

对于需要整合来自多个账户和地区的日志数据的组织，您可以使用 CloudWatch 日志集中将日志组自动复制到中央账户。有关更多信息，请参阅 [跨账户跨区域日志集中化](CloudWatchLogs_Centralization.md)。

 您可以使用本部分中的过程处理日志组和日志流。

## 在日志中创建 CloudWatch 日志组
<a name="Create-Log-Group"></a>

当您按照《Amazon CloudWatch 日志用户指南》前几节中的步骤在 Amazon CloudWatch EC2 实例上安装日志代理时，将在该过程中创建日志组。您也可以直接在 CloudWatch 控制台中创建日志组。

**创建日志组**

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

1.  在导航窗格中，选择**日志管理**。

1.  选择**操作**，然后选择**创建日志组**。

1.  输入日志组的名称，然后选择**创建日志组**。

**提示**  
 您可以通过导航窗格中的 ***Favorites and recents***（收藏夹和最近记录）菜单收藏日志组以及控制面板和警报。在 ***Recently visited***（最近访问）列中，将鼠标悬停在您想要收藏的日志组上，然后选择旁边的星形符号。

## 将日志发送到日志组
<a name="SendingLogData"></a>

CloudWatch 日志会自动接收来自多个 AWS 服务的日志事件。您也可以使用以下方法之一将其他 CloudWatch 日志事件发送到 Logs：
+ **CloudWatch 代理** — 统一 CloudWatch 代理可以将指标和日志发送到 CloudWatch 日志。有关安装和使用 CloudWatch 代理的信息，请参阅《亚马逊* CloudWatch 用户指南*》中的使用[ CloudWatch 代理从 Amazon EC2 实例和本地服务器收集指标和日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)。
+ **AWS CLI**— 将成批的日志事件[put-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/put-log-events.html)上传到 CloudWatch 日志。
+ **以编程方式** — [PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)API 使您能够以编程方式将成批的日志事件上传到 CloudWatch 日志。

## 查看发送到日志的 CloudWatch 日志数据
<a name="ViewingLogData"></a>

您可以 stream-by-stream根据日志代理发送到 Logs 的日志数据来 CloudWatch 查看和滚动浏览 CloudWatch 日志数据。您可以指定要查看的日志数据的时间范围。

**查看日志数据**

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

1. 在导航窗格中，选择**日志管理**。

1. 对于 **Log Groups（日志组）**，选择日志组以查看日志流。

1. 在日志组列表中，选择要查看的日志组的名称。

1. 从日志流列表中，选择要查看的日志流的名称。

1. 要更改日志数据的显示方式，请执行下列操作之一：
   + 要展开单个日志事件，请选择该日志事件旁边的箭头。
   + 要展开所有日志事件并以纯文本形式查看它们，请在日志事件列表上方选择 **Text**。
   + 要筛选日志事件，请在搜索字段中键入所需的搜索筛选条件。有关更多信息，请参阅 [使用筛选条件从日志事件创建指标](MonitoringLogData.md)。
   + 要查看指定日期和时间范围的日志数据，请在搜索筛选条件旁边，选择日期和时间旁的箭头。要指定日期和时间范围，请选择 **Absolute（绝对）**。要选择预定义的分钟数、小时数、天数或周数，请选择 **Relative（相对）**。还可以在 UTC 和本地时区之间切换。

# 使用筛选条件模式搜索日志数据
<a name="SearchDataFilterPattern"></a>

可以使用 [指标筛选条件、订阅筛选条件、筛选日志事件和 Live Tail 的筛选条件模式语法](FilterAndPatternSyntax.md) 搜索日志数据。您可以搜索日志组中的所有日志流， AWS CLI 也可以使用搜索特定的日志流。每次搜索运行时，都会返回到所找到数据的第一页，并且使用令牌来检索下一页数据或继续搜索。如果没有返回任何结果，可以继续搜索。

您可以设置要查询的时间范围来限制搜索范围。您可以从较大范围开始，看看感兴趣的日志行在何处，然后缩短时间范围在相应时间范围内查看您感兴趣的日志。

您还可以通过从日志提取的指标直接定向至相应日志。

如果您登录的账户设置为 CloudWatch 跨账户可观察性监控账户，则可以搜索和筛选与该监控账户关联的源账户中的日志事件。有关更多信息，请参阅 [CloudWatch 跨账户可观测性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)。

## 使用控制台搜索日志条目
<a name="search-log-entries"></a>

您可以使用控制台搜索满足指定条件的日志条目。

**使用控制台搜索日志**

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

1. 在导航窗格中，选择**日志管理**。

1. 对于 **Log Groups**，选择包含要搜索的日志流的日志组的名称。

1. 对于 **Log Streams**，选择要搜索的日志流的名称。

1. 在 **Log events（日志事件）**下，输入要使用的筛选条件语法。

**使用控制台搜索某个时间范围的所有日志条目**

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

1. 在导航窗格中，选择 “**日志管理**”。

1. 对于 **Log Groups**，选择包含要搜索的日志流的日志组的名称。

1. 选择 **Search log group（搜索日志组）**。

1. 对于 **Log events（日志事件）**，请选择日期和时间范围，然后输入筛选条件语法。

## 使用搜索日志条目 AWS CLI
<a name="search-log-entries-cli"></a>

您可以使用搜索符合指定条件的日志条目 AWS CLI。

**要使用搜索日志条目 AWS CLI**  
在命令提示符处，运行以下 [filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html) 命令。使用 `--filter-pattern` 将结果限制为指定的筛选条件模式，并使用 `--log-stream-names` 将结果限制为指定的日志流。

```
aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] [--filter-pattern VALID_METRIC_FILTER_PATTERN]
```

**要使用搜索给定时间范围内的日志条目 AWS CLI**  
在命令提示符处，运行以下[filter-log-events](https://docs.aws.amazon.com/cli/latest/reference/logs/filter-log-events.html)命令：

```
aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] [--start-time 1482197400000] [--end-time 1482217558365] [--filter-pattern VALID_METRIC_FILTER_PATTERN]
```

## 从指标定向至日志
<a name="pivot-metrics-logs"></a>

您可以从控制台的其他部分转到特定的日志条目。

**从控制面板小部件转到日志**

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

1. 在导航窗格中，选择 **Dashboards（控制面板）**。

1. 选择控制面板。

1. 在小部件上，选择 **View logs** 图标，然后选择 **View logs in this time range**。如果存在多个指标筛选条件，请从列表中选择一个。如果有更多指标筛选条件，超出列表中可以显示的数量，请选择 **More metric filters**，然后选择或搜索指标筛选条件。

**从指标转到日志**

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

1. 在导航窗格中，选择 **Metrics（指标）**。

1. 在 **All metrics（所有指标）**选项卡上的搜索字段中，键入指标的名称，然后按 Enter。

1. 从搜索结果中选择一个或多个指标。

1. 选择 **Actions（操作）**、**View logs（查看日志）**。如果存在多个指标筛选条件，请从列表中选择一个。如果有更多指标筛选条件，超出列表中可以显示的数量，请选择 **More metric filters**，然后选择或搜索指标筛选条件。

## 问题排查
<a name="search-filter-troubleshooting"></a>

**搜索耗时太长**

如果有大量日志数据，搜索可能需要很长时间才能完成。要提高搜索速度，可以执行以下操作：
+ 如果您使用的是 AWS CLI，则可以将搜索范围限制为仅搜索您感兴趣的日志流。例如，如果您的日志组有 1000 个日志流，但您只想查看三个已知相关的日志流，则可以使用将搜索限制 AWS CLI 为仅搜索日志组中的这三个日志流。
+ 使用更短、更细粒度的时间范围，从而减少搜索的数据量和加快查询速度。

## 更改日志中的 CloudWatch 日志数据保留期
<a name="SttingLogRetention"></a>

默认情况下，日志数据无限期地存储在 CloudWatch 日志中。但是，您可以配置要在日志组中存储日志数据多长时间。存储时间超过当前保留期设置的所有数据将被删除。您可以随时更改每个日志组的日志保留期。

**注意**  
CloudWatch Logs 不会在日志事件达到保留设置时立即将其删除。此后通常需要 72 小时才能删除日志事件，但在极少数情况下可能需要更长时间。  
这意味着，如果将日志组更改为具有更长的保留期设置，而该日志组包含已过期但实际上尚未删除的日志事件，则在达到新保留日期后，这些日志事件最多需要 72 小时才能被删除。要确保永久删除日志数据，请将日志组保留在较低的保留期设置，直到上一个保留期结束后 72 小时过去，或者您确认已删除较早的日志事件。  
当日志事件达到其保留设置时，这些日志事件将被标记为待删除。在被标记为待删除后，即使它们要等到以后才真正被删除，也不会再增加您的档案存储成本。当您使用 API 检索 `storedBytes` 值以查看日志组存储了多少字节时，这些标记为待删除的日志事件也不包括在内。

**更改日志保留期设置**

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

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

1. 找到要更新的日志组。

1. 在该日志组的**保留**列中，选择当前保留期设置，例如 **Never Expire**。

1. 在**保留设置**中，对于**事件过期时间**，选择日志保留值，然后选择**保存**。

## 保护日志组不被删除
<a name="protecting-log-groups-from-deletion-overview"></a>

您可以选择启用删除保护，以防止意外删除重要的日志组。有关删除保护的详细信息，请参阅[保护日志组不被删除](protecting-log-groups-from-deletion.md)。

# 保护日志组不被删除
<a name="protecting-log-groups-from-deletion"></a>

## 启用删除保护
<a name="enabling-deletion-protection"></a>

您可以在创建新日志组时或在现有日志组上启用删除保护。在创建日志组期间，选择 “已启用删除保护” 或传递参数`--deletion-protection-enabled`。默认情况下，删除保护未启用。

**在现有日志组上启用或禁用删除保护（控制台）**

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

1. 在导航窗格中，选择 “**日志管理**”。

1. 选择要保护的日志组。

1. 选择**操作**、**编辑删除保护**。

1. 在对话框中，查看并提交更改。

如果使用 AWS CLI，要对现有日志组启用删除保护，请执行以下操作：

```
aws logs put-log-group-deletion-protection \
--log-group-identifier "/my-application/logs" \
--deletion-protection-enabled
```

要删除现有日志组的删除保护，请执行以下操作：

```
aws logs put-log-group-deletion-protection \
--log-group-identifier "/my-application/logs" \
--no-deletion-protection-enabled
```

### 错误处理
<a name="deletion-protection-error-handling"></a>

如果您尝试删除启用了删除保护的日志组，则会收到一条`ValidationException`消息：“启用了删除保护后无法删除日志组。请先禁用删除保护。”

## 在 Amazon 日志中标记 CloudWatch 日志组
<a name="log-group-tagging"></a>

您可以将自己的元数据以*标签*的形式分配给您在 Amazon Logs 中创建的 CloudWatch 日志组。标签是您为日志组定义的键值对。使用标签是一种管理 AWS 资源和整理数据（包括账单数据）的简单而强大的方法。

**注意**  
您可以使用标签来控制对 CloudWatch 日志资源的访问权限，包括日志组和目标。由于日志组和日志流之间存在分层关系，因此在日志组级别控制对日志流的访问。有关使用标签控制访问的更多信息，请参阅[使用标签控制对 Amazon Web Services 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)。

**Topics**
+ [有关标签的基本知识](#tagging-basics)
+ [使用标签跟踪成本](#tagging-billing)
+ [标签限制](#tagging-restrictions)
+ [使用标记日志组 AWS CLI](#log-group-tagging-cli)
+ [使用日志 API 标记 CloudWatch 日志组](#log-group-tagging-api)

### 有关标签的基本知识
<a name="tagging-basics"></a>

您可以使用或 AWS CloudFormation AWS CLI日 CloudWatch 志 API 来完成以下任务：
+ 在创建日志组时向其添加标签。
+ 向现有日志组添加标签。
+ 列出日志组的标签。
+ 从日志组删除标签。

您可以使用标签对日志组进行分类。例如，您可以按用途、所有者或环境对它们进行分类。由于您定义每个标签的键和值，因此您可以创建一组自定义类别来满足您的特定需求。例如，您可以定义一组标签来帮助您按所有者和关联应用程序跟踪日志组。以下几个标签示例：
+ 项目：项目名称
+ 所有者：名称
+ 用途：负载测试
+ 应用程序：应用程序名称
+ 环境：生产

### 使用标签跟踪成本
<a name="tagging-billing"></a>

您可以使用标签对 AWS 费用进行分类和跟踪。当您将标签应用于 AWS 资源（包括日志组）时，您的 AWS 成本分配报告包括按标签汇总的使用量和成本。您可以设置代表业务类别（例如成本中心、应用程序名称或所有者）的标签，以便整理多种服务的成本。有关更多信息，请参阅 *AWS Billing 用户指南*中的[对自定义账单报告使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

### 标签限制
<a name="tagging-restrictions"></a>

以下限制适用于标签。

**基本限制**
+ 每个日志组的最大标签数为 50。
+ 标签键和值区分大小写。
+ 无法更改或编辑已删除日志组的标签。

**标签键限制**
+ 每个标签键必须是唯一的。如果您添加的标签具有已使用的键，则您的新标签将覆盖现有键值对。
+ 标签密钥不能以开头，`aws:`因为此前缀已保留供使用 AWS。 AWS 代表您创建以此前缀开头的标签，但您无法对其进行编辑或删除。
+ 标签键的长度必须介于 1 和 128 个 Unicode 字符之间。
+ 标签键必须包含以下字符：Unicode 字母、数字、空格和以下特殊字符：`_ . / = + - @`。

**标签值限制**
+ 标签值的长度必须介于 0 和 255 个 Unicode 字符之间。
+ 标签值可以为空。另外，它们必须包含以下字符：Unicode 字母、数字、空格和以下任意特殊字符：`_ . / = + - @`。

### 使用标记日志组 AWS CLI
<a name="log-group-tagging-cli"></a>

您可以使用 AWS CLI添加、列出和删除标签。有关示例，请参阅以下文档：

[create-log-group](https://docs.aws.amazon.com/cli/latest/reference/logs/create-log-group.html)  
创建日志组。您可以选择在创建日志组时添加标签。

[tag-resource](https://docs.aws.amazon.com/cli/latest/reference/logs/tag-resource.html)  
为指定 CloudWatch 的 Logs 资源分配一个或多个标签（键值对）。

[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/logs/list-tags-for-resource.html)  
显示与 CloudWatch 日志资源关联的标签。

[untag-resource](https://docs.aws.amazon.com/cli/latest/reference/logs/untag-log-group.html)  
从指定的 L CloudWatch ogs 资源中移除一个或多个标签。

### 使用日志 API 标记 CloudWatch 日志组
<a name="log-group-tagging-api"></a>

您可以使用 CloudWatch 日志 API 添加、列出和移除标签。有关示例，请参阅以下文档：

[CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)  
创建日志组。您可以选择在创建日志组时添加标签。

[TagResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TagResource.html)  
为指定 CloudWatch 的 Logs 资源分配一个或多个标签（键值对）。

[ListTagsForResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_ListTagsForResource.html)  
显示与 CloudWatch 日志资源关联的标签。

[UntagResource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_UntagLogGroup.html)  
从指定的 L CloudWatch ogs 资源中移除一个或多个标签。

# 使用加密日志中的 CloudWatch 日志数据 AWS Key Management Service
<a name="encrypt-log-data-kms"></a>

日志组数据始终在 CloudWatch 日志中加密。默认情况下， CloudWatch Logs 使用具有 256 位高级加密标准 Galois/Counter 模式 (AES-GCM) 的服务器端加密来加密静态日志数据。此外，您也可以使用 AWS Key Management Service 进行这一加密。如果这样做，则使用密 AWS KMS 钥进行加密。在日志组级别启用加密，方法 AWS KMS 是在创建日志组时或日志组存在之后，将 KMS 密钥与日志组关联起来。

**重要**  
CloudWatch 日志现在支持加密上下文，使用`kms:EncryptionContext:aws:logs:arn`作为密钥，使用日志组的 ARN 作为该密钥的值。如果您的日志组已使用 KMS 密钥加密，并且您希望将密钥限制在单个账户和日志组中使用，则应分配一个新的 KMS 密钥，该 KMS 密钥在 IAM policy 中包含一个条件。有关更多信息，请参阅 [AWS KMS 密钥和加密上下文](#encrypt-log-data-kms-policy)。

**重要**  
CloudWatch Log `kms:ViaService` s 现在支持允许日志代表您 AWS KMS 拨打电话。您应该将其添加到在密钥策略或 IA CloudWatch M 中调用 Logs 的角色中。有关更多信息，请参阅 [kms: ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service)。

将 KMS 密钥与日志组关联后，该日志组所有新摄取的数据都将使用该密钥加密。这些数据在整个保留期内以加密格式存储。 CloudWatch 只要有请求，日志就会解密这些数据。 CloudWatch 每当请求加密数据时，日志都必须具有 KMS 密钥的权限。

如果您稍后解除 KMS 密钥与日志组的关联，Logs 将使用 CloudWatch CloudWatch 日志默认加密方法对新摄取的数据进行加密。之前采集的所有使用 KMS 密钥加密的数据仍使用 KMS 密钥进行加密。 CloudWatch 解除关联 KMS 密钥后，日志仍然可以返回该数据，因为 CloudWatch 日志仍然可以继续引用该密钥。但是，如果密钥稍后被禁用，则 CloudWatch Logs 将无法读取使用该密钥加密的日志。

**重要**  
CloudWatch 日志仅支持对称 KMS 密钥。请勿使用非对称密钥对日志组中的数据进行加密。有关更多信息，请参阅[使用对称和非对称密钥](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)。

## 限制
<a name="encryption-limits"></a>
+ 要执行下列步骤，您必须具有以下权限：`kms:CreateKey`、`kms:GetKeyPolicy` 和 `kms:PutKeyPolicy`。
+ 将密钥与日志组关联或解除关联后，最多可能需要五分钟时间，此操作才能生效。
+ 如果您撤消 CloudWatch 日志对关联密钥的访问权限或删除关联的 KMS 密钥，则无法再检索 CloudWatch 日志中的加密数据。
+ 您无法使用 CloudWatch 控制台将 KMS 密钥与现有日志组关联。

## 步骤 1：创建 AWS KMS 密钥
<a name="create-cmk"></a>

要创建 KMS 密钥，请使用以下 [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html) 命令：

```
aws kms create-key
```

输出包含密钥的密钥 ID 和 Amazon 资源名称（ARN）。下面是示例输出：

```
{
    "KeyMetadata": {
        "Origin": "AWS_KMS",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Description": "",
        "KeyManager": "CUSTOMER",
        "Enabled": true,
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "CreationDate": 1478910250.94,
        "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59",
        "AWSAccountId": "123456789012",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```

## 步骤 2：设置 KMS 密钥的权限
<a name="cmk-permissions-lg"></a>

默认情况下，所有 AWS KMS 密钥都是私有的。只有资源所有者可以使用它来加密和解密数据。但是，资源拥有者可以将 KMS 密钥的访问权限授予其他用户和资源。通过此步骤，您可以授予 CloudWatch 日志服务主体和呼叫者角色使用密钥的权限。此服务主体必须位于存储 KMS 密钥的同一 AWS 区域。

作为最佳实践，我们建议您将 KMS 密钥的使用限制在您指定的 AWS 账户或日志组中。

首先，`policy.json`使用以下[get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)命令保存 KMS 密钥的默认策略：

```
aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json
```

在文本编辑器中打开 `policy.json` 文件，然后从以下语句之一中添加粗体的部分。使用逗号将现有语句与新语句分隔。这些语句使用`Condition`章节来增强 AWS KMS 密钥的安全性。有关更多信息，请参阅 [AWS KMS 密钥和加密上下文](#encrypt-log-data-kms-policy)。

本示例中的 `Condition` 部分将密钥限制为单个日志组 ARN。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::123456789012:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name"
                }
            }
        }
    ]
}
```

------

本示例中的 `Condition` 部分对 AWS KMS 密钥的使用进行限制，只有指定账户才能使用该密钥，但该密钥可用于任何日志组。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::123456789012:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal": {
            "Service": "logs.us-east-1.amazonaws.com"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Resource": "*",
            "Condition": {
                "ArnLike": {
                "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

接下来，为将调用 CloudWatch 日志的角色添加权限。为此，您可以向 AWS KMS 密钥策略添加其他声明，也可以通过 IAM 对角色本身进行说明。 CloudWatch 记录`kms:ViaService`用户 AWS KMS 代表客户拨打电话。有关更多信息，请参阅 [kms: ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service)。

要在 AWS KMS 密钥策略中添加权限，请在密钥策略中添加以下附加声明。如果您使用此方法，则作为最佳实践，请将策略范围仅限于将与 AWS KMS 加密日志组交互的角色。

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::account_id:role/role_name"
  },
  "Action": [
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt",
    "kms:GenerateDataKey*",
    "kms:Describe*"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
        "logs.region.amazonaws.com"
      ]
    }
  }
}
```

或者，如果您想在 IAM 中管理角色权限，则可以通过以下策略添加等效权限。您可以将此策略添加到现有角色策略中，也可以将其作为单独的额外策略附加到角色。如果您使用此方法，则作为最佳实践，请将策略范围仅限于将用于日志加密的 AWS KMS 密钥。有关更多信息，请参阅[编辑 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:ReEncrypt*",
                "kms:Decrypt",
                "kms:GenerateDataKey*",
                "kms:Describe*"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "logs.us-east-1.amazonaws.com"
                    ]
                }
            },
            "Resource": "arn:aws:kms:us-east-1:444455556666:key/key_id"
        }
    ]
}
```

------

最后，使用以下[put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)命令添加更新的策略：

```
aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json
```

## 步骤 3：将日志组与 KMS 密钥关联
<a name="associate-cmk"></a>

可以在创建日志组时或创建完成后将 KMS 密钥与它关联。

要查看日志组是否已关联了 KMS 密钥，请使用以下[describe-log-groups](https://docs.aws.amazon.com/cli/latest/reference/logs/describe-log-groups.html)命令：

```
aws logs describe-log-groups --log-group-name-prefix "log-group-name-prefix"
```

如果输出包含 `kmsKeyId` 字段，则日志组将与该字段值所对应的键相关联。

**在创建日志组时将 KMS 密钥与它关联**  
按以下方式使用 [create-log-group](https://docs.aws.amazon.com/cli/latest/reference/logs/create-log-group.html) 命令：

```
aws logs create-log-group --log-group-name my-log-group --kms-key-id "key-arn"
```

**将 KMS 密钥与现有日志组关联**  
按以下方式使用 [associate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/associate-kms-key.html) 命令：

```
aws logs associate-kms-key --log-group-name my-log-group --kms-key-id "key-arn"
```

## 步骤 4：取消日志组与密钥的关联
<a name="disassociate-cmk"></a>

要取消与日志组关联的 KMS 密钥的关联，请使用以下[disassociate-kms-key](https://docs.aws.amazon.com/cli/latest/reference/logs/disassociate-kms-key.html)命令：

```
aws logs disassociate-kms-key --log-group-name my-log-group
```

## AWS KMS 密钥和加密上下文
<a name="encrypt-log-data-kms-policy"></a>

为了增强 AWS Key Management Service 密钥和加密日志组的安全性，Lo CloudWatch gs 现在将日志组 ARNs 作为*加密上下文*的一部分，用于加密您的日志数据。加密上下文是一组用作附加的经身份验证的数据的键值对。加密上下文允许您使用 IAM 策略条件来限制 AWS 账户和日志组对 AWS KMS 密钥的访问权限。有关更多信息，请参阅[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)和 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

我们建议您为每个加密的日志组使用不同的 KMS 密钥。

如果您有以前加密的日志组，但现在希望将日志组更改为使用仅适用于该日志组的新 KMS 密钥，请按照下列步骤操作。

**将加密的日志组转换为使用某个 KMS 密钥，并且有策略将此 KMS 密钥设置为仅限于该日志组使用**

1. 输入以下命令以查找该日志组的当前密钥的 ARN：

   ```
   aws logs describe-log-groups
   ```

   输出包括以下行。记录 ARN。您需要在步骤 7 中使用它。

   ```
   ...
   "kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef"
   ...
   ```

1. 输入以下命令以创建新的 KMS 密钥：

   ```
   aws kms create-key
   ```

1. 输入以下命令以将新密钥的策略保存到 `policy.json` 文件中：

   ```
   aws kms get-key-policy --key-id new-key-id --policy-name default --output text > ./policy.json
   ```

1. 使用文本编辑器打开 `policy.json` 并向策略添加 `Condition` 表达式：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-default-1",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Principal": {
               "Service": "logs.us-east-1.amazonaws.com"
               },
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:Describe*"
               ],
               "Resource": "*",
               "Condition": {
                   "ArnLike": {
                   "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:LOG-GROUP-NAME"
                   }
               }
           }
       ]
   }
   ```

------

1. 输入以下命令以将更新的策略添加到新的 KMS 密钥：

   ```
   aws kms put-key-policy --key-id new-key-ARN --policy-name default --policy file://policy.json
   ```

1. 输入以下命令以将策略与日志组关联：

   ```
   aws logs associate-kms-key --log-group-name my-log-group --kms-key-id new-key-ARN
   ```

   CloudWatch Logs 现在使用新密钥对所有新数据进行加密。

1. 接下来，从旧的密钥撤销除 `Decrypt` 之外的所有其他权限。首先，输入以下命令以检索旧策略：

   ```
   aws kms get-key-policy --key-id old-key-ARN --policy-name default --output text > ./policy.json
   ```

1. 使用文本编辑器打开 `policy.json` 并从 `Action` 列表中删除所有值，但 `kms:Decrypt` 除外

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "key-default-1",
       "Statement": [
           {
               "Sid": "Enable IAM User Permissions",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "kms:*",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "logs.region.amazonaws.com"
               },
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 输入以下命令以将更新的策略添加到旧的密钥：

   ```
   aws kms put-key-policy --key-id old-key-ARN --policy-name default --policy file://policy.json
   ```

# 通过屏蔽帮助保护敏感的日志数据
<a name="mask-sensitive-log-data"></a>

您可以使用 CloudWatch 日志组数据保护*策略来帮助保护 Logs 摄取的敏感数据*。使用这些策略可以审核和屏蔽账户中日志组提取的日志事件中出现的敏感数据。

创建数据保护策略时，默认情况下，与您选择的数据标识符匹配的敏感数据将在所有出口点被屏蔽，包括 Lo CloudWatch gs Insights、指标筛选器和订阅筛选器。只有拥有 `logs:Unmask` IAM 权限的用户才能查看未屏蔽的数据。

您可以为账户中所有日志组创建数据保护策略，也可以为各个日志组创建数据保护策略。当为整个账户创建策略时，它既适用于现有日志组，也适用于将来创建的日志组。

如果为整个账户创建了数据保护策略，并且还为单个日志组创建了策略，则这两个策略都适用于该日志组。任一策略中指定的所有托管数据标识符都会在该日志组中进行审核和屏蔽。

**注意**  
标准和不频繁访问日志类中的日志组都支持屏蔽敏感数据。有关日志类的更多信息，请参阅 [日志类](CloudWatch_Logs_Log_Classes.md)。

每个日志组只能有一个日志组级别的数据保护策略，但是该策略可以指定许多要审核和屏蔽的托管数据标识符。数据保护策略的限制为 30,720 个字符。

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

CloudWatch 日志支持许多*托管数据标识符*，这些标识符提供了预配置的数据类型，您可以选择这些数据类型来保护财务数据、个人健康信息 (PHI) 和个人身份信息 (PII)。 CloudWatch 日志数据保护允许您利用模式匹配和机器学习模型来检测敏感数据。对于某些类型的托管数据标识符，检测还取决于是否找到与敏感数据接近的某些关键字。您还可以使用自定义数据标识符来创建针对特定使用场景量身定制的数据标识符。

当检测到与您选择的数据标识符匹配的敏感数据 CloudWatch 时，就会发出一个指标。这是**LogEventsWithFindings**指标，它在 **AWS/** Logs 命名空间中发布。您可以使用此指标来创建 CloudWatch 警报，也可以在图表和仪表板中将其可视化。数据保护发出的指标是出售的指标，是免费的。有关 CloudWatch 日志发送到的指标的更多信息 CloudWatch，请参阅[使用 CloudWatch 指标进行监控](CloudWatch-Logs-Monitoring-CloudWatch-Metrics.md)。

每个托管数据标识符都旨在检测特定类型的敏感数据，例如信用卡号、 AWS 秘密访问密钥或特定国家或地区的护照号码。创建数据保护策略时，您可以将其配置为使用这些标识符来分析通过日志组摄取的日志，并在检测到敏感数据时采取措施。

CloudWatch 日志数据保护可以使用托管数据标识符检测以下类别的敏感数据：
+ 证书，例如私钥或私有访问 AWS 密钥 
+ 财务信息，例如信用卡号
+ 个人身份信息（PII），例如驾驶执照或社会安全号码
+ 受保护健康信息（PHI），例如健康保险或医疗识别号码
+ 设备标识符，例如 IP 地址或 MAC 地址

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

**Contents**
+ [了解数据保护策略](cloudwatch-logs-data-protection-policies.md)
  + [什么是数据保护策略？](cloudwatch-logs-data-protection-policies.md#what-are-data-protection-policies)
  + [数据保护策略采用什么结构？](cloudwatch-logs-data-protection-policies.md#overview-of-data-protection-policies)
    + [数据保护策略的 JSON 属性](cloudwatch-logs-data-protection-policies.md#data-protection-policy-json-properties)
    + [策略语句的 JSON 属性](cloudwatch-logs-data-protection-policies.md#policy-statement-json-properties)
    + [策略语句操作的 JSON 属性](cloudwatch-logs-data-protection-policies.md#statement-operation-json-properties)
+ [创建或使用数据保护策略所需的 IAM 权限](data-protection-policy-permissions.md)
  + [账户级数据保护策略所需的权限](data-protection-policy-permissions.md#data-protection-policy-permissions-accountlevel)
  + [单个日志组的数据保护策略所需的权限](data-protection-policy-permissions.md#data-protection-policy-permissions-loggroup)
  + [数据保护策略示例](data-protection-policy-permissions.md#data-protection-policy-sample)
+ [创建账户范围的数据保护策略](mask-sensitive-log-data-accountlevel.md)
  + [控制台](mask-sensitive-log-data-accountlevel.md#mask-sensitive-log-data-accountlevel-console)
  + [AWS CLI](mask-sensitive-log-data-accountlevel.md#mask-sensitive-log-data-accountlevel-cli)
    + [AWS CLI 或 API 操作的数据保护策略语法](mask-sensitive-log-data-accountlevel.md#mask-sensitive-log-data-policysyntax-account)
+ [为单个日志组创建数据保护策略](mask-sensitive-log-data-start.md)
  + [控制台](mask-sensitive-log-data-start.md#mask-sensitive-log-data-start-console)
  + [AWS CLI](mask-sensitive-log-data-start.md#mask-sensitive-log-data-start-cli)
    + [AWS CLI 或 API 操作的数据保护策略语法](mask-sensitive-log-data-start.md#mask-sensitive-log-data-policysyntax)
+ [查看未屏蔽的数据](mask-sensitive-log-data-viewunmasked.md)
+ [审计结果报告](mask-sensitive-log-data-audit-findings.md)
  + [将审计结果发送到受保护的存储桶所需的密钥策略 AWS KMS](mask-sensitive-log-data-audit-findings.md#mask-sensitive-log-data-audit-findings-kms)
+ [您可以保护的数据类型](protect-sensitive-log-data-types.md)
  + [CloudWatch 记录敏感数据类型的托管数据标识符](CWL-managed-data-identifiers.md)
    + [凭据](protect-sensitive-log-data-types-credentials.md)
      + [凭证数据 ARNs 类型的数据标识符](protect-sensitive-log-data-types-credentials.md#cwl-data-protection-credentials-arns)
    + [设备标识符](protect-sensitive-log-data-types-device.md)
      + [设备数据类型的数据 ARNs 标识符](protect-sensitive-log-data-types-device.md#cwl-data-protection-devices-arns)
    + [财务信息](protect-sensitive-log-data-types-financial.md)
      + [财务数据类型的数据 ARNs 标识符](protect-sensitive-log-data-types-financial.md#cwl-data-protection-financial-arns)
    + [受保护健康信息（PHI）](protect-sensitive-log-data-types-health.md)
      + [受保护 ARNs 的健康信息数据类型 (PHI) 的数据标识符](protect-sensitive-log-data-types-health.md#cwl-data-protection-phi-arns)
    + [个人身份信息（PII）](protect-sensitive-log-data-types-pii.md)
      + [驾驶执照识别号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-dl-keywords)
      + [国民身份证号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-natlid-keywords)
      + [护照号码的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-passport-keywords)
      + [纳税人识别号和参考号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-financial-tin-keywords)
      + [个人身份信息 (PII) 的数据标识符 ARNs](protect-sensitive-log-data-types-pii.md#CWL-data-protection-pii-arns)
  + [自定义数据标识符](CWL-custom-data-identifiers.md)
    + [什么是自定义数据标识符？](CWL-custom-data-identifiers.md#what-are-custom-data-identifiers)
    + [自定义数据标识符限制](CWL-custom-data-identifiers.md#custom-data-identifiers-constraints)
    + [在控制台中使用自定义数据标识符](CWL-custom-data-identifiers.md#using-custom-data-identifiers-console)
    + [在数据保护策略中使用自定义数据标识符](CWL-custom-data-identifiers.md#using-custom-data-identifiers)

# 了解数据保护策略
<a name="cloudwatch-logs-data-protection-policies"></a>

**Topics**
+ [什么是数据保护策略？](#what-are-data-protection-policies)
+ [数据保护策略采用什么结构？](#overview-of-data-protection-policies)

## 什么是数据保护策略？
<a name="what-are-data-protection-policies"></a>

CloudWatch 日志使用**数据保护策略**来选择要扫描的敏感数据，以及为保护这些数据而要采取的操作。要选择感兴趣的敏感数据，请使用[数据标识符](CWL-managed-data-identifiers.md)。 CloudWatch 记录数据保护，然后使用机器学习和模式匹配来检测敏感数据。要对找到的数据标识符采取操作，您可以定义**审计**和**去身份识别**操作。利用这些操作，您可以记录已找到（或未找到）的敏感数据，并在查看日志事件时屏蔽敏感数据。

## 数据保护策略采用什么结构？
<a name="overview-of-data-protection-policies"></a>

如下图所示，数据保护策略文档包含以下元素：
+ 文档顶部的可选策略范围信息
+ 一个定义审计和去身份识别操作的语句

每个 Lo CloudWatch gs 日志组只能定义一个数据保护策略。数据保护策略可以有一个或多个拒绝或去身份识别语句，但只能有一个审计语句。

### 数据保护策略的 JSON 属性
<a name="data-protection-policy-json-properties"></a>

数据保护策略需要以下基本策略信息用于识别：
+ **Name**（名称）– 策略名称。
+ **描述**（可选）：策略描述。
+ **Version**（版本）– 策略语言版本。当前版本为 2021-06-01。
+ **Statement**（语句）– 指定数据保护策略操作的语句列表。

```
{
  "Name": "CloudWatchLogs-PersonalInformation-Protection",
  "Description": "Protect basic types of sensitive data",
  "Version": "2021-06-01",
  "Statement": [
        ...
  ]
}
```

### 策略语句的 JSON 属性
<a name="policy-statement-json-properties"></a>

策略语句设置数据保护操作的检测上下文。
+ **Sid**（可选）– 语句标识符。
+ **DataIdentifier**— CloudWatch 日志应扫描的敏感数据。例如，姓名、地址或电话号码。
+ **操作**-后续操作，可以是 “**审计**” 或 “**取消**标识”。 CloudWatch 日志在发现敏感数据时会执行这些操作。

```
{
  ...
  "Statement": [
    {
      "Sid": "audit-policy",
      "DataIdentifier": [
        "arn:aws:dataprotection::aws:data-identifier/Address"
      ],
      "Operation": {
        "Audit": {
          "FindingsDestination": {}
        }
      }
    },
```

### 策略语句操作的 JSON 属性
<a name="statement-operation-json-properties"></a>

策略语句设置以下数据保护操作之一。
+ **审计**：在不中断日志记录的情况下发出指标和结果报告。匹配的字符串会增加 L CloudWatch ogs 发布到 **AWS/Logs 命名空间的**LogEventsWithFindings**指标。** CloudWatch您可以使用这些指标创建警报。

  有关结果报告的示例，请参阅 [审计结果报告](mask-sensitive-log-data-audit-findings.md)。

  有关 CloudWatch 日志发送到的指标的更多信息 CloudWatch，请参阅[使用 CloudWatch 指标进行监控](CloudWatch-Logs-Monitoring-CloudWatch-Metrics.md)。
+ **去身份识别** – 在不中断日志记录的情况下屏蔽敏感数据。

# 创建或使用数据保护策略所需的 IAM 权限
<a name="data-protection-policy-permissions"></a>

为了能够使用日志组的数据保护策略，您必须具有下表所示的特定权限。账户范围的数据保护策略和适用于单个日志组的数据保护策略的权限不同。

## 账户级数据保护策略所需的权限
<a name="data-protection-policy-permissions-accountlevel"></a>

**注意**  
如果您在 Lambda 函数内执行任何此类操作，则 Lambda 执行角色和权限边界还必须包含以下权限。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/logs/data-protection-policy-permissions.html)

如果已经将任何数据保护审计日志发送到目标，则将日志发送到同一目标的其他策略只需要 `logs:PutDataProtectionPolicy` 和 `logs:CreateLogDelivery` 权限。

## 单个日志组的数据保护策略所需的权限
<a name="data-protection-policy-permissions-loggroup"></a>

**注意**  
如果您在 Lambda 函数内执行任何此类操作，则 Lambda 执行角色和权限边界还必须包含以下权限。


| 操作 | 所需的 IAM 权限 | 资源 | 
| --- | --- | --- | 
|  创建没有审计目标的数据保护策略  |  `logs:PutDataProtectionPolicy`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*`  | 
|  创建以 CloudWatch 日志为审计目标的数据保护策略  |  `logs:PutDataProtectionPolicy` `logs:CreateLogDelivery` `logs:PutResourcePolicy` `logs:DescribeResourcePolicies` `logs:DescribeLogGroups`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*` `*` `*` `*` `*`  | 
|  将 Firehose 作为审计目标来创建数据保护策略  |  `logs:PutDataProtectionPolicy` `logs:CreateLogDelivery` `firehose:TagDeliveryStream`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*` `*` `arn:aws:logs:::deliverystream/YOUR_DELIVERY_STREAM`  | 
|  将 Amazon S3 作为审计目标来创建数据保护策略  |  `logs:PutDataProtectionPolicy` `logs:CreateLogDelivery` `s3:GetBucketPolicy` `s3:PutBucketPolicy`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*` `*` `arn:aws:s3:::YOUR_BUCKET` `arn:aws:s3:::YOUR_BUCKET`  | 
|  对已屏蔽的日志事件取消屏蔽  |  `logs:Unmask`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*`  | 
|  查看现有数据保护策略  |  `logs:GetDataProtectionPolicy`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*`  | 
|  删除数据保护策略  |  `logs:DeleteDataProtectionPolicy`  |  `arn:aws:logs:::log-group:YOUR_LOG_GROUP:*`  | 

如果已经将任何数据保护审计日志发送到目标，则将日志发送到同一目标的其他策略只需要 `logs:PutDataProtectionPolicy` 和 `logs:CreateLogDelivery` 权限。

## 数据保护策略示例
<a name="data-protection-policy-sample"></a>

以下示例策略允许用户创建、查看和删除数据保护策略，这些策略可以将审计调查发现发送到所有三种类型的审计目标。它不允许用户查看未屏蔽的数据。

------
#### [ JSON ]

****  

```
 
    {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowLogDeliveryConfiguration",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeLogGroups",
                "logs:DescribeResourcePolicies"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowDataProtectionAndBucketConfiguration",
            "Effect": "Allow",
            "Action": [
                "logs:GetDataProtectionPolicy",
                "logs:DeleteDataProtectionPolicy",
                "logs:PutDataProtectionPolicy",
                "s3:PutBucketPolicy",
                "firehose:TagDeliveryStream",
                "s3:GetBucketPolicy"
            ],
            "Resource": [
            "arn:aws:firehose:us-east-1:111122223333:deliverystream/delivery-stream-name",
            "arn:aws:s3:::amzn-s3-demo-destination-bucket",
            "arn:aws:logs:us-east-1:111122223333:log-group:log-group-name:*"
            ]
        }
    ]
}
```

------

# 创建账户范围的数据保护策略
<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": {}
                }
            }
        }
    ]
}
```

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

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

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

**Topics**
+ [控制台](#mask-sensitive-log-data-start-console)
+ [AWS 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.aws.amazon.com/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**（激活数据保护）。

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

**使用 AWS 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
   ```

### AWS CLI 或 API 操作的数据保护策略语法
<a name="mask-sensitive-log-data-policysyntax"></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": {}` 对象必须为空。

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

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

# 查看未屏蔽的数据
<a name="mask-sensitive-log-data-viewunmasked"></a>

要查看未屏蔽的数据，用户必须具有 `logs:Unmask` 权限。具有此权限的用户可通过以下方式查看未屏蔽的数据：
+ 查看日志流中的事件时，选择 **Display**（显示）、**Unmask**（取消屏蔽）。
+ 使用包含**取消屏蔽 (@message)** 命令的 L CloudWatch ogs Insights 查询。以下示例查询显示流中未屏蔽的 20 个最新日志事件：

  ```
  fields @timestamp, @message, unmask(@message)
  | sort @timestamp desc
  | limit 20
  ```

  有关 CloudWatch Logs Insights 命令的更多信息，请参阅[CloudWatch 日志见解语言查询语法](CWL_QuerySyntax.md)。
+ 将[ GetLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html)或[ FilterLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html)运算与`unmask`参数一起使用。

该**CloudWatchLogsFullAccess**策略包括`logs:Unmask`权限。要向没有 IAM 策略的用户授权 `logs:Unmask` **CloudWatchLogsFullAccess**，您可以向该用户附加自定义 IAM 策略。有关更多信息，请参阅[向用户添加权限（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

# 审计结果报告
<a name="mask-sensitive-log-data-audit-findings"></a>

如果您将 CloudWatch 日志数据保护审计策略设置为将审计报告写入 CloudWatch 日志、Amazon S3 或 Firehose，则这些发现报告与以下示例类似。 CloudWatch 日志会为每个包含敏感数据的日志事件写入一份发现报告。

```
{
    "auditTimestamp": "2023-01-23T21:11:20Z",
    "resourceArn": "arn:aws:logs:us-west-2:111122223333:log-group:/aws/lambda/MyLogGroup:*",
    "dataIdentifiers": [
        {
            "name": "EmailAddress",
            "count": 2,
            "detections": [
                {
                    "start": 13,
                    "end": 26
                },
{
                    "start": 30,
                    "end": 43
                }
            ]
        }
    ]
}
```

报告中的字段如下：
+ `resourceArn` 字段显示发现敏感数据的日志组。
+ `dataIdentifiers` 对象显示有关您正在审计的一种敏感数据的发现结果的信息。
+ `name` 字段标识此部分报告的敏感数据类型。
+ `count` 字段显示此类敏感数据在日志事件中出现的次数。
+ `start` 和 `end` 字段按字符计数显示日志事件中每次出现敏感数据的位置。

前面的示例显示了在一个日志事件中找到两个电子邮件地址的报告。第一个电子邮件地址从日志事件的第 13 个字符开始，到第 26 个字符结束。第二个电子邮件地址从第 30 个字符到第 43 个字符。即使此日志事件有两个电子邮件地址，`LogEventsWithFindings` 指标的值也只递增一，因为该指标计算包含敏感数据的日志事件的数量，而不是敏感数据的出现次数。

## 将审计结果发送到受保护的存储桶所需的密钥策略 AWS KMS
<a name="mask-sensitive-log-data-audit-findings-kms"></a>

您可以通过启用 Amazon S3 托管式密钥的服务器端加密（SSE-S3）或 KMS 密钥的服务器端加密（SSE-KMS）来保护 Amazon S3 存储桶中的数据。有关详情，请参阅《Amazon S3 用户指南》中的[使用服务器端加密保护数据](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

如果将审计调查结果发送到 SSE-S3 保护的存储桶，则不需要额外的配置。Amazon S3 处理加密密钥。

如果将审计调查发现发送到 SSE-KMS 保护的存储桶，则您必须更新 KMS 密钥的密钥政策，以确保日志传输账户可以写入您的 S3 存储桶。有关与 SSE-KMS 一起使用的所需密钥策略的更多信息，请参阅 Amazon L CloudWatch ogs 用户指南[Amazon S3 存储桶服务器端加密](AWS-logs-infrastructure-S3.md#AWS-logs-SSE-KMS-S3)中的。

# 您可以保护的数据类型
<a name="protect-sensitive-log-data-types"></a>

本节包含有关您可以在 CloudWatch 日志数据保护策略中保护的数据类型的信息。 CloudWatch 日志托管数据标识符提供预配置的数据类型，用于保护财务数据、个人健康信息 (PHI) 和个人身份信息 (PII)。您还可以使用自定义数据标识符来创建针对特定使用场景量身定制的数据标识符。

**Contents**
+ [CloudWatch 记录敏感数据类型的托管数据标识符](CWL-managed-data-identifiers.md)
  + [凭据](protect-sensitive-log-data-types-credentials.md)
    + [凭证数据 ARNs 类型的数据标识符](protect-sensitive-log-data-types-credentials.md#cwl-data-protection-credentials-arns)
  + [设备标识符](protect-sensitive-log-data-types-device.md)
    + [设备数据类型的数据 ARNs 标识符](protect-sensitive-log-data-types-device.md#cwl-data-protection-devices-arns)
  + [财务信息](protect-sensitive-log-data-types-financial.md)
    + [财务数据类型的数据 ARNs 标识符](protect-sensitive-log-data-types-financial.md#cwl-data-protection-financial-arns)
  + [受保护健康信息（PHI）](protect-sensitive-log-data-types-health.md)
    + [受保护 ARNs 的健康信息数据类型 (PHI) 的数据标识符](protect-sensitive-log-data-types-health.md#cwl-data-protection-phi-arns)
  + [个人身份信息（PII）](protect-sensitive-log-data-types-pii.md)
    + [驾驶执照识别号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-dl-keywords)
    + [国民身份证号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-natlid-keywords)
    + [护照号码的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-pii-passport-keywords)
    + [纳税人识别号和参考号的关键字](protect-sensitive-log-data-types-pii.md#CWL-managed-data-identifiers-financial-tin-keywords)
    + [个人身份信息 (PII) 的数据标识符 ARNs](protect-sensitive-log-data-types-pii.md#CWL-data-protection-pii-arns)
+ [自定义数据标识符](CWL-custom-data-identifiers.md)
  + [什么是自定义数据标识符？](CWL-custom-data-identifiers.md#what-are-custom-data-identifiers)
  + [自定义数据标识符限制](CWL-custom-data-identifiers.md#custom-data-identifiers-constraints)
  + [在控制台中使用自定义数据标识符](CWL-custom-data-identifiers.md#using-custom-data-identifiers-console)
  + [在数据保护策略中使用自定义数据标识符](CWL-custom-data-identifiers.md#using-custom-data-identifiers)

# CloudWatch 记录敏感数据类型的托管数据标识符
<a name="CWL-managed-data-identifiers"></a>

本节包含有关可使用托管数据标识符保护的数据类型的信息，以及哪些国家和地区与每种类型的数据相关。

对于某些类型的敏感数据， CloudWatch Logs Data Protection 会扫描数据附近的关键字，并仅在找到该关键字时才会找到匹配项。如果关键字必须靠近特定类型的数据，则该关键字通常必须在 30 个字符以内（含）数据。

如果关键字包含空格，则 CloudWatch 日志数据保护会自动匹配缺少空格或包含下划线 (`_`) 或连字符 (`-`) 而不是空格的关键字变体。在某些情况下， CloudWatch Logs 还会扩展或缩写关键字以解决关键字的常见变体。

下表列出了 CloudWatch 日志可以使用托管数据标识符检测到的凭证、设备、财务、医疗和受保护健康信息 (PHI) 的类型。除了特定类型的数据之外，这些数据可能也符合个人身份信息（PII）的条件。

**与语言和地区无关的受支持的标识符**


| 标识符 | 类别 | 
| --- | --- | 
|  `Address`  |  个人  | 
|  `AwsSecretKey`  |  凭据  | 
|  `CreditCardExpiration`  |  财务  | 
|  `CreditCardNumber`  |  财务  | 
|  `CreditCardSecurityCode`  |  财务  | 
|  `EmailAddress`  |  个人  | 
|  `IpAddress`  |  个人  | 
|  `LatLong`  |  个人  | 
|  `Name`  |  个人  | 
|  `OpenSshPrivateKey`  |  凭据  | 
|  `PgpPrivateKey`  |  凭据  | 
|  `PkcsPrivateKey`  |  凭据  | 
|  `PuttyPrivateKey`  |  凭据  | 
|  `VehicleIdentificationNumber`  |  个人  | 

区域相关数据标识符必须包含标识符名称，然后是连字符，最后是两个字母（ISO 3166-1 alpha-2）代码。例如 `DriversLicense-US`。

**支持的标识符，必须包含两个字母的国家或地区代码**


| 标识符 | 类别 | 国家/地区和语言 | 
| --- | --- | --- | 
| BankAccountNumber | 财务 |  DE、ES、FR、GB、IT、US  | 
|  CepCode  |  个人  |  BR  | 
|  Cnpj  |  个人  |  BR  | 
|  CpfCode  |  个人  |  BR  | 
|  DriversLicense  |  个人  |  AT、AU、BE、BG、CA、CY、CZ、DE、DK、EE、ES、FI、FR、GB、GR、HR、HU、IE、IT、LT、LU、LV、MT、NL、PL、PT、RO、SE、SI、SK、US  | 
|  DrugEnforcementAgencyNumber  |  健康  |  美国  | 
|  ElectoralRollNumber  |  个人  |  GB  | 
|  HealthInsuranceCardNumber  |  健康  |  EU  | 
|  HealthInsuranceClaimNumber  |  健康  |  美国  | 
|  HealthInsuranceNumber  |  健康  |  FR  | 
|  HealthcareProcedureCode  |  健康  |  美国  | 
|  IndividualTaxIdentificationNumber  |  个人  |  美国  | 
|  InseeCode  |  个人  |  FR  | 
|  MedicareBeneficiaryNumber  |  健康  |  美国  | 
|  NationalDrugCode  |  健康  |  美国  | 
|  NationalIdentificationNumber  |  个人  |  DE、ES、IT  | 
|  NationalInsuranceNumber  |  个人  |  GB  | 
|  NationalProviderId  |  健康  |  美国  | 
|  NhsNumber  |  健康  |  GB  | 
|  NieNumber  |  个人  |  ES  | 
|  NifNumber  |  个人  |  ES  | 
|  PassportNumber  |  个人  |  CA、DE、ES、FR、GB、IT、US  | 
|  PermanentResidenceNumber  |  个人  |  CA  | 
|  PersonalHealthNumber  |  健康  |  CA  | 
|  PhoneNumber  |  个人  |  BR、DE、ES、FR、GB、IT、US  | 
|  PostalCode  |  个人  |  CA  | 
|  RgNumber  |  个人  |  BR  | 
|  SocialInsuranceNumber  |  个人  |  CA  | 
|  Ssn  |  个人  |  ES、US  | 
|  TaxId  |  个人  |  DE、ES、FR、GB  | 
|  ZipCode  |  个人  |  美国  | 

# 凭据
<a name="protect-sensitive-log-data-types-credentials"></a>

CloudWatch 日志数据保护可以找到以下类型的凭据。


| 数据类型 | 数据标识符 ID | 所需关键字 | 国家和地区 | 
| --- | --- | --- | --- | 
|  AWS 秘密访问密钥 |  `AwsSecretKey`  |  `aws_secret_access_key`, `credentials`, `secret access key`, `secret key`, `set-awscredential`  |  全部  | 
|  OpenSSH 私有密钥 |  `OpenSSHPrivateKey`  |  无  |  全部  | 
|  PGP 私有密钥 |  `PgpPrivateKey`  |  无  |  全部  | 
|  Pkcs 私有密钥 |  `PkcsPrivateKey` |  无  |  全部  | 
|  PuTTY 私有密钥 |  `PuttyPrivateKey` |  无  |  全部  | 

## 凭证数据 ARNs 类型的数据标识符
<a name="cwl-data-protection-credentials-arns"></a>

以下列出了您可以添加到数据保护策略中的数据标识符的 Amazon 资源名称 (ARNs)。


| 凭证数据标识符 ARNs | 
| --- | 
| arn:aws:dataprotection::aws:data-identifier/AwsSecretKey | 
| arn:aws:dataprotection::aws:data-identifier/OpenSshPrivateKey | 
| arn:aws:dataprotection::aws:data-identifier/PgpPrivateKey | 
| arn:aws:dataprotection::aws:data-identifier/PkcsPrivateKey | 
| arn:aws:dataprotection::aws:data-identifier/PuttyPrivateKey | 

# 设备标识符
<a name="protect-sensitive-log-data-types-device"></a>

CloudWatch 日志数据保护可以找到以下类型的设备标识符。


| 数据类型 | 数据标识符 ID | 所需关键字 | 国家和地区 | 
| --- | --- | --- | --- | 
|  IP 地址 |  `IpAddress`  |  无  |  全部  | 

## 设备数据类型的数据 ARNs 标识符
<a name="cwl-data-protection-devices-arns"></a>

以下列出了您可以添加到数据保护策略中的数据标识符的 Amazon 资源名称 (ARNs)。


| 设备数据标识符 ARN | 
| --- | 
| arn:aws:dataprotection::aws:data-identifier/IpAddress | 

# 财务信息
<a name="protect-sensitive-log-data-types-financial"></a>

CloudWatch 日志数据保护可以找到以下类型的财务信息。

如果您设置了数据保护策略，则无论 CloudWatch 日志组位于哪个地理位置，日志都会扫描您指定的数据标识符。此表中 **Countries and regions**（国家和地区）列中的信息指定是否必须在数据标识符后附加两个字母的国家/地区代码，以检测这些国家和地区的相应关键字。


| 数据类型 | 数据标识符 ID | 所需关键字 | 国家和地区 | 注意 | 
| --- | --- | --- | --- | --- | 
|  银行账户 |  `BankAccountNumber`  |  可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Keywords for bank account numbers**（银行账号的关键字）表。  |  法国、德国、意大利、西班牙、英国、美国  | 包括由最多 34 个字母数字字符组成的国际银行账号 (IBANs)，包括国家/地区代码等元素。 | 
|  信用卡到期日期 |  `CreditCardExpiration`  |  `exp d`, `exp m`, `exp y`, `expiration`, `expiry`  |  全部  |  | 
|  信用卡号 |  `CreditCardNumber`  |  `account number`, `american express`, `amex`, `bank card`, `card`, `card number`, `card num`, `cc #`, `ccn`, `check card`, `credit`, `credit card#`, `dankort`, `debit`, `debit card`, `diners club`, `discover`, `electron`, `japanese card bureau`, `jcb`, `mastercard`, `mc`, `pan`, `payment account number`, `payment card number`, `pcn`, `union pay`, `visa`  |  全部  | 检测要求数据为符合卢恩支票公式的13-19位数序列，并对以下任何类型的信用卡使用标准卡号前缀：美国运通、Dankort、Diner's Club、Discover、Electron、日本信用卡局（JCB）、万事达卡和Visa。 UnionPay | 
|  信用卡验证码 |  `CreditCardSecurityCode`  |  `card id`, `card identification code`, `card identification number`, `card security code`, `card validation code`, `card validation number`, `card verification data`, `card verification value`, `cvc`, `cvc2`, `cvv`, `cvv2`, `elo verification code`  |  全部  |  | 

**银行账号的关键字**

使用以下关键字来获取银行账号。这包括由最多 34 个字母数字字符组成的国际银行账号 (IBANs)，包括国家/地区代码等元素。


| 国家/地区 | 关键词 | 
| --- | --- | 
|  法国 |  `account code`, `account number`, `accountno#`, `accountnumber#`, `bban`, `code bancaire`, `compte bancaire`, `customer account id`, `customer account number`, `customer bank account id`, `iban`, `numéro de compte`  | 
|  德国 |  `account code`, `account number`, `accountno#`, `accountnumber#`, `bankleitzahl`, `bban`, `customer account id`, `customer account number`, `customer bank account id`, `geheimzahl`, `iban`, `kartennummer`, `kontonummer`, `kreditkartennummer`, `sepa`  | 
|  意大利 |  `account code`, `account number`, `accountno#`, `accountnumber#`, `bban`, `codice bancario`, `conto bancario`, `customer account id`, `customer account number`, `customer bank account id`, `iban`, `numero di conto`  | 
|  西班牙 |  `account code`, `account number`, `accountno#`, `accountnumber#`, `bban`, `código cuenta`, `código cuenta bancaria`, `cuenta cliente id`, `customer account ID`, `customer account number`, `customer bank account id`, `iban`, `número cuenta bancaria cliente`, `número cuenta cliente`  | 
|  英国 |  `account code`, `account number`, `accountno#`, `accountnumber#`, `bban`, `customer account ID`, `customer account number`, `customer bank account id`, `iban`, `sepa`  | 
|  美国 |  `bank account`, `bank acct`, `checking account`, `checking acct`, `deposit account`, `deposit acct`, `savings account`, `savings acct`, `chequing account`, `chequing acct`  | 

CloudWatch 日志不会报告以下序列的出现情况，信用卡发卡机构已保留这些顺序供公开测试。

```
122000000000003, 2222405343248877, 2222990905257051, 2223007648726984, 2223577120017656, 
30569309025904, 34343434343434, 3528000700000000, 3530111333300000, 3566002020360505, 36148900647913, 
36700102000000, 371449635398431, 378282246310005, 378734493671000, 38520000023237, 4012888888881881, 
4111111111111111, 4222222222222, 4444333322221111, 4462030000000000, 4484070000000000, 4911830000000, 
4917300800000000, 4917610000000000, 4917610000000000003, 5019717010103742, 5105105105105100, 
5111010030175156, 5185540810000019, 5200828282828210, 5204230080000017, 5204740009900014, 5420923878724339, 
5454545454545454, 5455330760000018, 5506900490000436, 5506900490000444, 5506900510000234, 5506920809243667, 
5506922400634930, 5506927427317625, 5553042241984105, 5555553753048194, 5555555555554444, 5610591081018250, 
6011000990139424, 6011000400000000, 6011111111111117, 630490017740292441, 630495060000000000, 
6331101999990016, 6759649826438453, 6799990100000000019, and 76009244561.
```

## 财务数据类型的数据 ARNs 标识符
<a name="cwl-data-protection-financial-arns"></a>

以下列出了您可以添加到数据保护策略中的数据标识符的 Amazon 资源名称 (ARNs)。


| 财务数据标识符 ARNs | 
| --- | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-DE | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-FR | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-IT | 
| arn:aws:dataprotection::aws:data-identifier/BankAccountNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/CreditCardExpiration | 
| arn:aws:dataprotection::aws:data-identifier/CreditCardNumber | 
| arn:aws:dataprotection::aws:data-identifier/CreditCardSecurityCode | 

# 受保护健康信息（PHI）
<a name="protect-sensitive-log-data-types-health"></a>

CloudWatch 日志数据保护可以找到以下类型的受保护健康信息 (PHI)。

如果您设置了数据保护策略，则无论 CloudWatch 日志组位于哪个地理位置，日志都会扫描您指定的数据标识符。此表中 **Countries and regions**（国家和地区）列中的信息指定是否必须在数据标识符后附加两个字母的国家/地区代码，以检测这些国家和地区的相应关键字。


| 数据类型 | 数据标识符 ID | 所需关键字 | 国家和地区 | 
| --- | --- | --- | --- | 
|  毒品管理局（DEA, Drug Enforcement Agency）注册号 |  `DrugEnforcementAgencyNumber`  |  `dea number`, `dea registration`  |  美国  | 
|  健康保险卡号（EHIC） |  `HealthInsuranceCardNumber`  |  `assicurazione sanitaria numero`, `carta assicurazione numero`, `carte d’assurance maladie`, `carte européenne d'assurance maladie`, `ceam`, `ehic`, `ehic#`, `finlandehicnumber#`, `gesundheitskarte`, `hälsokort`, `health card`, `health card number`, `health insurance card`, `health insurance number`, `insurance card number`, `krankenversicherungskarte`, `krankenversicherungsnummer`, `medical account number`, `numero conto medico`, `numéro d’assurance maladie`, `numéro de carte d’assurance`, `numéro de compte medical`, `número de cuenta médica`, `número de seguro de salud`, `número de tarjeta de seguro`, `sairaanhoitokortin`, `sairausvakuutuskortti`, `sairausvakuutusnumero`, `sjukförsäkring nummer`, `sjukförsäkringskort`, `suomi ehic-numero`, `tarjeta de salud`, `terveyskortti`, `tessera sanitaria assicurazione numero`, `versicherungsnummer`  |  欧盟  | 
|  健康保险索赔编号（HICN） |  `HealthInsuranceClaimNumber`  |  `health insurance claim number`, `hic no`, `hic no.`, `hic number`, `hic#`, `hicn`, `hicn#`, `hicno#`  |  美国  | 
|  健康保险或医疗识别号 |  `HealthInsuranceNumber`  |  `carte d'assuré social`, `carte vitale`, `insurance card`   |  法国  | 
|  医疗保健通用程序编码系统（HCPCS）代码 |  `HealthcareProcedureCode` |  `current procedural terminology`, `hcpcs`, `healthcare common procedure coding system`   |  美国  | 
|  医疗保险受益人号码（MBN） |  `MedicareBeneficiaryNumber` |  `mbi`, `medicare beneficiary`  |  美国  | 
|  国家药品编码（NDC） |  `NationalDrugCode` |  `national drug code`, `ndc`  |  美国  | 
|  国家提供商识别码（NPI） |  `NationalProviderId` |  `hipaa`, `n.p.i.`, `national provider`, `npi`  |  美国  | 
|  国家健康服务（NHS, National Health Service）号码 |  `NhsNumber` |  `national health service`, `NHS`  |  英国  | 
|  个人健康号码 |  `PersonalHealthNumber` |  `canada healthcare number`, `msp number`, `care number`, `phn`, `soins de santé`   |  加拿大  | 

## 受保护 ARNs 的健康信息数据类型 (PHI) 的数据标识符
<a name="cwl-data-protection-phi-arns"></a>

下面列出了可在受保护的健康信息 (PHIARNs) 数据保护策略中使用的数据标识符 Amazon 资源名称 ()。


| PHI 数据标识符 ARNs | 
| --- | 
| arn:aws:dataprotection::aws:data-identifier/DrugEnforcementAgencyNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/HealthcareProcedureCode-US | 
| arn:aws:dataprotection::aws:data-identifier/HealthInsuranceCardNumber-EU | 
| arn:aws:dataprotection::aws:data-identifier/HealthInsuranceClaimNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/HealthInsuranceNumber-FR | 
| arn:aws:dataprotection::aws:data-identifier/MedicareBeneficiaryNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/NationalDrugCode-US | 
| arn:aws:dataprotection::aws:data-identifier/NationalInsuranceNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/NationalProviderId-US | 
| arn:aws:dataprotection::aws:data-identifier/NhsNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/PersonalHealthNumber-CA | 

# 个人身份信息（PII）
<a name="protect-sensitive-log-data-types-pii"></a>

CloudWatch 日志数据保护可以找到以下类型的个人身份信息 (PII)。

如果您设置了数据保护策略，则无论 CloudWatch 日志组位于哪个地理位置，日志都会扫描您指定的数据标识符。此表中 **Countries and regions**（国家和地区）列中的信息指定是否必须在数据标识符后附加两个字母的国家/地区代码，以检测这些国家和地区的相应关键字。


| 数据类型 | 数据标识符 ID | 所需关键字 | 国家和地区 | 注意 | 
| --- | --- | --- | --- | --- | 
|  出生日期 |  `DateOfBirth`  |  `dob`, `date of birth`, `birthdate`, `birth date`, `birthday`, `b-day`, `bday`  |  任何  | 支持包括大多数日期格式，例如所有数字以及数字和月份名称的组合。日期组件可以用空格、斜杠（/）或连字符（-）分隔。 | 
|  Código de Endereçamento Postal (CEP) |  `CepCode`  |  `cep`, `código de endereçamento postal`, `codigo de endereçamento postal`  |  巴西  |  | 
|  Cadastro Nacional da Pessoa Jurídica (CNPJ) |  `Cnpj`  |  `cadastro nacional da pessoa jurídica`, `cadastro nacional da pessoa juridica`, `cnpj`  |  巴西  |  | 
|  Cadastro de Pessoas Físicas (CPF) |  `CpfCode`  |  `Cadastro de pessoas fisicas`, `cadastro de pessoas físicas`, `cadastro de pessoa física`, `cadastro de pessoa fisica`, `cpf`  |  巴西  |  | 
|  驾驶执照识别号 |  `DriversLicense`  |  可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Drivers license identification numbers**（驾驶执照识别号）表。  |  许多国家/地区。有关详细信息，请参阅 **Drivers license identification numbers**（驾驶执照识别号）表。  |  | 
|  选民名册编号 |  `ElectoralRollNumber`  |  `electoral #`, `electoral number`, `electoral roll #`, `electoral roll no.`, `electoral roll number`, `electoralrollno`  |  英国  |  | 
|  个人纳税人识别号 |  `IndividualTaxIdenticationNumber`  |  可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Individual taxpayer identification numbers**（个人纳税人识别号）表。  |  巴西、法国、德国、西班牙、英国  |  | 
|  国家统计与经济研究所（INSEE） |  `InseeCode`  |  可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Keywords for national identification numbers**（国民身份证号的关键字）表。  |  法国  |  | 
|  国民身份证号码 |  `NationalIdentificationNumber`  |  可以。有关详细信息，请参阅本节后面的 **Keywords for national identification numbers**（国民身份证号的关键字）表。  |  德国、意大利、西班牙  | 这包括 Documento Nacional de Identidad（DNI）识别号（西班牙）、Codice fiscale codes（意大利）和国民身份证号（德国）。 | 
| 国民保险号码（NINO） |  `NationalInsuranceNumber`  | insurance no., insurance number,  insurance\$1, national insurance number, nationalinsurance\$1, nationalinsurancenumber, nin, nino | 英国 | – | 
| Número de identidad de extranjero (NIE) |  `NieNumber`  | 可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Individual taxpayer identification numbers**（个人纳税人识别号）表。 | 西班牙 |  | 
| Número de Identificación Fiscal (NIF) |  `NifNumber`  | 可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Individual taxpayer identification numbers**（个人纳税人识别号）表。 | 西班牙 |  | 
| 护照编号 |  `PassportNumber`  | 可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的**护照号码的关键字**表。 | 加拿大、法国、德国、意大利、西班牙、英国、美国 |  | 
| 永久居留号码 |  `PermanentResidenceNumber`  | carte résident permanent, numéro carte résident permanent, numéro résident permanent, permanent resident card, permanent resident card number, permanent resident no,  permanent resident no., permanent resident number, pr no, pr no., pr non, pr number, résident permanent no., résident permanent non | 加拿大 |  | 
| Phone number（电话号码） |  `PhoneNumber`  |  巴西：关键字还包括：`cel`、`celular`、`fone`、`móvel`、`número residencial`、`numero residencial`、`telefone` 其他：`cell`、`contact`、`fax`、`fax number`、`mobile`、`phone`、`phone number`、`tel`、`telephone`、`telephone number`  | 巴西、加拿大、法国、德国、意大利、西班牙、英国、美国 | 这包括美国的免费电话号码和传真号码。如果关键字靠近数据，则数字不必包含国家/地区代码。如果关键字并不靠近数据，则数字必须包含国家/地区代码。 | 
| 邮政编码 |  `PostalCode`  | 无 | 加拿大 |  | 
| Registro Geral (RG) |  `RgNumber`  | 可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Individual taxpayer identification numbers**（个人纳税人识别号）表。 | 巴西 |  | 
| 社会保险号码（SIN） |  `SocialInsuranceNumber`  | canadian id, numéro d'assurance sociale, social insurance number, sin | 加拿大 |  | 
| 社会保障号码（SSN） |  `Ssn`  | 西班牙：`número de la seguridad social`、`social security no.`、`social security no`、`número de la seguridad social`、`social security number`、`socialsecurityno#`、`ssn`、`ssn#` 美国：`social security`、`ss#`、`ssn`  | 西班牙、美国 |  | 
| 纳税人识别号或参考号 |  `TaxId`  | 可以。不同的关键字适用于不同的国家/地区。有关详细信息，请参阅本节后面的 **Individual taxpayer identification numbers**（个人纳税人识别号）表。. | 法国、德国、西班牙、英国 | 这包括 TIN（法国）；Steueridentifikationsnummer（德国）；CIF（西班牙）；以及 TRN、UTR（英国）。 | 
| 邮政编码 |  `ZipCode`  | zip code, zip\$14 | 美国 | 美国邮政编码。 | 
| 邮寄地址 |  `Address`  | 无 | 澳大利亚、加拿大、法国、德国、意大利、西班牙、英国、美国 | 尽管关键字并非必需，但检测过程要求地址包含城市或地点的名称以及邮政编码。 | 
| 电子邮件地址 |  `EmailAddress`  | 无 | 任何 |  | 
| 全球定位系统（GPS） |  `LatLong`  | coordinate, coordinates, lat long,  latitude longitude, location, position | 任何 | CloudWatch 如果纬度和经度坐标成对存储并且采用十进制 (DD) 格式，例如 41.948614、-87.655311，则日志可以检测 GPS 坐标。不支持采用度十进制分（DDM）格式的坐标，例如 41°56.9168'N 87°39.3187'W，也不支持度分秒（DMS）格式的坐标，例如 41°56'55.0104"N 87°39'19.1196"W。 | 
| 全名 |  `Name`  | 无 | 任何 | CloudWatch 日志只能检测全名。只支持拉丁字符集。 | 
| 车辆识别号码（VIN, Vehicle Identification Number） |  `VehicleIdentificationNumber`  | Fahrgestellnummer, niv, numarul de identificare, numarul seriei de sasiu, serie sasiu, numer VIN, Número de Identificação do Veículo,  Número de Identificación de Automóviles, numéro d'identification du véhicule, vehicle identification number, vin, VIN numeris | 任何 | CloudWatch 日志 VINs 可以检测包含 17 个字符的序列并符合 ISO 3779 和 3780 标准的日志。这些标准旨在供全球使用。 | 

## 驾驶执照识别号的关键字
<a name="CWL-managed-data-identifiers-pii-dl-keywords"></a>

为了检测各种类型的驾驶执照识别码， CloudWatch Logs 要求关键字与数字相近。下表列出了 CloudWatch Logs 识别的特定国家和地区的关键字。


| 国家或地区 | 关键词 | 
| --- | --- | 
| 澳大利亚 | dl\$1 dl:, dl :, dlno\$1 driver licence, driver license, driver permit, drivers lic., drivers licence, driver's licence, drivers license, driver's license, drivers permit, driver's permit, drivers permit number, driving licence, driving license, driving permit | 
| 奥地利 | führerschein, fuhrerschein, führerschein republik österreich, fuhrerschein republik osterreich | 
| 比利时 | fuehrerschein, fuehrerschein- nr, fuehrerscheinnummer, fuhrerschein, führerschein, fuhrerschein- nr, führerschein- nr, fuhrerscheinnummer, führerscheinnummer, numéro permis conduire, permis de conduire, rijbewijs, rijbewijsnummer | 
| 保加利亚 | превозно средство, свидетелство за управление на моторно, свидетелство за управление на мпс, сумпс, шофьорска книжка | 
| 加拿大 | dl\$1, dl:, dlno\$1, driver licence, driver licences, driver license, driver licenses, driver permit, drivers lic., drivers licence, driver's licence, drivers licences, driver's licences, drivers license, driver's license, drivers licenses, driver's licenses, drivers permit, driver's permit, drivers permit number, driving licence, driving license, driving permit, permis de conduire | 
| 克罗地亚 | vozačka dozvola | 
| 塞浦路斯 | άδεια οδήγησης | 
| 捷克共和国 | číslo licence, císlo licence řidiče, číslo řidičského průkazu, ovladače lic., povolení k jízdě, povolení řidiče, řidiči povolení, řidičský prúkaz, řidičský průkaz | 
| 丹麦 | kørekort, kørekortnummer | 
| 爱沙尼亚 | juhi litsentsi number, juhiloa number, juhiluba, juhiluba number | 
| 芬兰 | ajokortin numero, ajokortti, förare lic., körkort, körkort nummer, kuljettaja lic., permis de conduire | 
| 法国 | permis de conduire | 
| 德国 | fuehrerschein, fuehrerschein- nr, fuehrerscheinnummer, fuhrerschein, führerschein, fuhrerschein- nr, führerschein- nr, fuhrerscheinnummer, führerscheinnummer | 
| 希腊 | δεια οδήγησης, adeia odigisis | 
| 匈牙利 | illesztőprogramok lic, jogosítvány, jogsi, licencszám, vezető engedély, vezetői engedély | 
| 爱尔兰 | ceadúnas tiomána | 
| 意大利 | patente di guida, patente di guida numero, patente guida, patente guida numero | 
| 拉脱维亚 | autovadītāja apliecība, licences numurs, vadītāja apliecība, vadītāja apliecības numurs, vadītāja atļauja, vadītāja licences numurs, vadītāji lic. | 
| 立陶宛 | vairuotojo pažymėjimas | 
| 卢森堡 | fahrerlaubnis, führerschäin | 
| 马耳他 | liċenzja tas-sewqan | 
| 荷兰 | permis de conduire, rijbewijs, rijbewijsnummer | 
| 波兰 | numer licencyjny, prawo jazdy, zezwolenie na prowadzenie | 
| 葡萄牙 | carta de condução, carteira de habilitação, carteira de motorist, carteira habilitação, carteira motorist, licença condução, licença de condução, número de licença, número licença, permissão condução, permissão de condução | 
| 罗马尼亚 | numărul permisului de conducere, permis de conducere | 
| 斯洛伐克 | číslo licencie, číslo vodičského preukazu, ovládače lic., povolenia vodičov, povolenie jazdu, povolenie na jazdu, povolenie vodiča, vodičský preukaz | 
| 斯洛文尼亚 | vozniško dovoljenje | 
| 西班牙 | carnet conducer, el carnet de conducer, licencia conducer, licencia de manejo, número carnet conducer, número de carnet de conducer, número de permiso conducer, número de permiso de conducer, número licencia conducer, número permiso conducer, permiso conducción, permiso conducer, permiso de conducción | 
| 瑞典 |  ajokortin numero, dlno\$1 ajokortti, drivere lic., förare lic., körkort, körkort nummer, körkortsnummer, kuljettajat lic.  | 
| 英国 | dl\$1, dl:, dlno\$1, driver licence, driver licences, driver license, driver licenses, driver permit, drivers lic., drivers licence, driver's licence, drivers licences, driver's licences, drivers license, driver's license, drivers licenses, driver's licenses, drivers permit, driver's permit, drivers permit number, driving licence, driving license, driving permit | 
| 美国 | dl\$1, dl:, dlno\$1, driver licence, driver licences, driver license, driver licenses, driver permit, drivers lic., drivers licence, driver's licence, drivers licences, driver's licences, drivers license, driver's license, drivers licenses, driver's licenses, drivers permit, driver's permit, drivers permit number, driving licence, driving license, driving permit | 

## 国民身份证号的关键字
<a name="CWL-managed-data-identifiers-pii-natlid-keywords"></a>

为了检测各种类型的国民身份证号码， CloudWatch Logs 要求关键字与这些数字非常接近。这包括 Documento Nacional de Identidad（DNI）标识符（西班牙）、French National Institute for Statistics and Economic Studies（INSEE）代码、德国国民身份证号码，以及注册总署（RG）号码（巴西）。

下表列出了 CloudWatch Logs 识别的特定国家和地区的关键字。


| 国家或地区 | 关键词 | 
| --- | --- | 
| 巴西 | registro geral, rg | 
| 法国 | assurance sociale, carte nationale d’identité, cni, code sécurité sociale, French social security number, fssn\$1, insee, insurance number, national id number, nationalid\$1, numéro d'assurance, sécurité sociale, sécurité sociale non., sécurité sociale numéro, social, social security, social security number, socialsecuritynumber, ss\$1, ssn, ssn\$1 | 
| 德国 | ausweisnummer, id number, identification number, identity number, insurance number, personal id, personalausweis | 
| 意大利 | codice fiscal, dati anagrafici, ehic, health card, health insurance card, p. iva, partita i.v.a., personal data, tax code, tessera sanitaria | 
| 西班牙 | dni, dni\$1, dninúmero\$1, documento nacional de identidad, identidad único, identidadúnico\$1, insurance number, national identification number, national identity, nationalid\$1, nationalidno\$1, número nacional identidad, personal identification number, personal identity no, unique identity number, uniqueid\$1 | 

## 护照号码的关键字
<a name="CWL-managed-data-identifiers-pii-passport-keywords"></a>

要检测各种类型的护照号码， CloudWatch Logs 要求关键字与护照号码相近。下表列出了 CloudWatch Logs 识别的特定国家和地区的关键字。


| 国家或地区 | 关键词 | 
| --- | --- | 
| 加拿大 | passeport, passeport\$1, passport, passport\$1, passportno, passportno\$1 | 
| 法国 | numéro de passeport, passeport, passeport\$1, passeport \$1, passeportn °, passeport n °, passeportNon, passeport non | 
| 德国 | ausstellungsdatum, ausstellungsort, geburtsdatum, passport, passports, reisepass, reisepass–nr, reisepassnummer | 
| 意大利 | italian passport number, numéro passeport, numéro passeport italien, passaporto, passaporto italiana, passaporto numero, passport number, repubblica italiana passaporto | 
| 西班牙 | españa pasaporte, libreta pasaporte, número pasaporte, pasaporte, passport, passport book, passport no, passport number, spain passport | 
| 英国 | passeport \$1, passeport n °, passeportNon, passeport non, passeportn °, passport \$1, passport no, passport number, passport\$1, passportid | 
| 美国 | passport, travel document | 

## 纳税人识别号和参考号的关键字
<a name="CWL-managed-data-identifiers-financial-tin-keywords"></a>

为了检测各种类型的纳税人身份和参考号， CloudWatch Logs 要求关键字与数字相近。下表列出了 CloudWatch Logs 识别的特定国家和地区的关键字。


| 国家或地区 | 关键词 | 
| --- | --- | 
| 巴西 | cadastro de pessoa física, cadastro de pessoa fisica, cadastro de pessoas físicas, cadastro de pessoas fisicas, cadastro nacional da pessoa jurídica, cadastro nacional da pessoa juridica, cnpj, cpf | 
| 法国 | numéro d'identification fiscale, tax id, tax identification number, tax number, tin, tin\$1 | 
| 德国 | identifikationsnummer, steuer id, steueridentifikationsnummer, steuernummer, tax id, tax identification number, tax number | 
| 西班牙 | cif, cif número, cifnúmero\$1, nie, nif, número de contribuyente, número de identidad de extranjero, número de identificación fiscal, número de impuesto corporativo, personal tax number, tax id, tax identification number, tax number, tin, tin\$1 | 
| 英国 | paye, tax id, tax id no., tax id number, tax identification, tax identification\$1, tax no., tax number, tax reference, tax\$1, taxid\$1, temporary reference number, tin, trn, unique tax reference, unique taxpayer reference, utr | 
| 美国 | 个人纳税人识别号（itin, i.t.i.n.） | 

## 个人身份信息 (PII) 的数据标识符 ARNs
<a name="CWL-data-protection-pii-arns"></a>

下表列出了您可以添加到数据保护策略中的个人身份信息 (PII) 数据标识符的 Amazon 资源名称 ()。ARNs


| PII 数据标识符 ARNs | 
| --- | 
| arn:aws:dataprotection::aws:data-identifier/Address | 
| arn:aws:dataprotection::aws:data-identifier/CepCode-BR | 
| arn:aws:dataprotection::aws:data-identifier/Cnpj-BR | 
| arn:aws:dataprotection::aws:data-identifier/CpfCode-BR | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-AT | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-AU | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-BE | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-BG | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-CA | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-CY | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-CZ | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-DE | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-DK | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-EE | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-ES | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-FI | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-FR | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-GB | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-GR | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-HR | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-HU | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-IE | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-IT | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-LT | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-LU | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-LV | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-MT | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-NL | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-PL | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-PT | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-RO | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-SE | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-SI | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-SK | 
| arn:aws:dataprotection::aws:data-identifier/DriversLicense-US | 
| arn:aws:dataprotection::aws:data-identifier/ElectoralRollNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/EmailAddress | 
| arn:aws:dataprotection::aws:data-identifier/IndividualTaxIdentificationNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/InseeCode-FR | 
| arn:aws:dataprotection::aws:data-identifier/LatLong | 
| arn:aws:dataprotection::aws:data-identifier/Name | 
| arn:aws:dataprotection::aws:data-identifier/NationalIdentificationNumber-DE | 
| arn:aws:dataprotection::aws:data-identifier/NationalIdentificationNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/NationalIdentificationNumber-IT | 
| arn:aws:dataprotection::aws:data-identifier/NieNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/NifNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-CA | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-DE | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-FR | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-IT | 
| arn:aws:dataprotection::aws:data-identifier/PassportNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/PermanentResidenceNumber-CA | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-BR | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-DE | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-ES | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-FR | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-GB | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-IT | 
| arn:aws:dataprotection::aws:data-identifier/PhoneNumber-US | 
| arn:aws:dataprotection::aws:data-identifier/PostalCode-CA | 
| arn:aws:dataprotection::aws:data-identifier/RgNumber-BR | 
| arn:aws:dataprotection::aws:data-identifier/SocialInsuranceNumber-CA | 
| arn:aws:dataprotection::aws:data-identifier/Ssn-ES | 
| arn:aws:dataprotection::aws:data-identifier/Ssn-US | 
| arn:aws:dataprotection::aws:data-identifier/TaxId-DE | 
| arn:aws:dataprotection::aws:data-identifier/TaxId-ES | 
| arn:aws:dataprotection::aws:data-identifier/TaxId-FR | 
| arn:aws:dataprotection::aws:data-identifier/TaxId-GB | 
| arn:aws:dataprotection::aws:data-identifier/VehicleIdentificationNumber | 
| arn:aws:dataprotection::aws:data-identifier/ZipCode-US | 

# 自定义数据标识符
<a name="CWL-custom-data-identifiers"></a>

**Topics**
+ [什么是自定义数据标识符？](#what-are-custom-data-identifiers)
+ [自定义数据标识符限制](#custom-data-identifiers-constraints)
+ [在控制台中使用自定义数据标识符](#using-custom-data-identifiers-console)
+ [在数据保护策略中使用自定义数据标识符](#using-custom-data-identifiers)

## 什么是自定义数据标识符？
<a name="what-are-custom-data-identifiers"></a>

自定义数据标识符 (CDIs) 允许您定义自己的自定义正则表达式，这些正则表达式可以在您的数据保护策略中使用。使用自定义数据标识符，您可以指向[托管式数据标识符](CWL-managed-data-identifiers.md)无法提供的特定于业务的个人身份信息（PII）用例。例如，您可以使用自定义数据标识符来查找公司特定的员工。 IDs自定义数据标识符可以与托管式数据标识符结合使用。

## 自定义数据标识符限制
<a name="custom-data-identifiers-constraints"></a>

CloudWatch 日志自定义数据标识符有以下限制：
+ 每项数据保护策略最多支持 10 个自定义数据标识符。
+ 自定义数据标识符名称最多可包含 128 个字符。支持以下字符：
  + 字母数字：(a-zA-Z0-9)
  + 符号：（'\$1' \$1 '-'）
+ RegEx 的最大长度为 200 个字符。支持以下字符：
  + 字母数字：（a-zA-Z0-9）
  + 符号：（'\$1' \$1 '\$1' \$1 '=' \$1 '@' \$1'/' \$1 ';' \$1 ',' \$1 '-' \$1 ' '）
  + RegEx 保留字符：（'^' \$1 '\$1' \$1 '?' \$1 '[' \$1 ']' \$1 '\$1' \$1 '\$1' \$1 '\$1' \$1 '\$1\$1' \$1 '\$1' \$1 '\$1' \$1 '.'） 
+ 自定义数据标识符不能与托管式数据标识符同名。
+ 可以在账户级数据保护策略或日志组级数据保护策略中指定自定义数据标识符。与托管数据标识符类似，账户级策略中定义的自定义数据标识符与日志组级策略中定义的自定义数据标识符结合使用。

## 在控制台中使用自定义数据标识符
<a name="using-custom-data-identifiers-console"></a>

使用 CloudWatch 控制台创建或编辑数据保护策略时，要指定自定义数据标识符，只需输入数据标识符的名称和正则表达式即可。例如，您可以输入 **Employee\$1ID** 作为名称，并输入 **EmployeeID-\$1d\$19\$1** 作为正则表达式。此正则表达式将检测并屏蔽 `EmployeeID-` 后面带有 9 个数字的日志事件。例如，`EmployeeID-123456789`

## 在数据保护策略中使用自定义数据标识符
<a name="using-custom-data-identifiers"></a>

如果您使用 AWS CLI 或 AWS API 来指定自定义数据标识符，则需要在用于定义数据保护策略的 JSON 策略中包含数据标识符名称和正则表达式。以下数据保护策略可检测和屏蔽涉及公司特定员工的日志事件。 IDs

1. 在您的数据保护策略中创建一个 `Configuration` 块。

1. 为您的自定义数据标识符输入 `Name`。例如 **EmployeeId**。

1. 为您的自定义数据标识符输入 `Regex`。例如 **EmployeeID-\$1d\$19\$1**。此正则表达式将匹配包含 `EmployeeID-` 且 `EmployeeID-` 后面有 9 位数字的日志事件。例如，`EmployeeID-123456789`

1. 请参阅策略声明中的以下自定义数据标识符。

   ```
   {
       "Name": "example_data_protection_policy",
       "Description": "Example data protection policy with custom data identifiers",
       "Version": "2021-06-01",
       "Configuration": {
         "CustomDataIdentifier": [
           {"Name": "EmployeeId", "Regex": "EmployeeId-\\d{9}"}   
         ]
       },
       "Statement": [
           {
               "Sid": "audit-policy",
               "DataIdentifier": [
                   "EmployeeId"
               ],
               "Operation": {
                   "Audit": {
                       "FindingsDestination": {
                           "S3": {
                               "Bucket": "EXISTING_BUCKET"
                           }
                       }
                   }
               }
           },
           {
               "Sid": "redact-policy",
               "DataIdentifier": [
               "EmployeeId"
               ],
               "Operation": {
                   "Deidentify": {
                       "MaskConfig": {
                       }
                   }
               }
           }
       ]
   }
   ```

1. （可选）根据需要继续向 `Configuration` 块添加其他**自定义数据标识符**。数据保护策略目前支持最多 10 个自定义数据标识符。