为单个日志组创建数据保护策略 - Amazon CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为单个日志组创建数据保护策略

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

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

控制台

使用控制台创建数据保护策略
  1. 打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,依次选择日志日志组

  3. 选择日志组的名称。

  4. 选择 Actions(操作)、Create data protection policy(创建数据保护策略)。

  5. 对于 Data identifiers(数据标识符),选择要在此日志组中审核和屏蔽的数据类型。您可以在选择框中键入以查找所需的标识符。

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

    有关您可以保护的数据类型的详细信息,请参阅 您可以保护的数据类型

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

  7. 选择 Activate data protection(激活数据保护)。

Amazon CLI

使用 Amazon CLI 来创建数据保护策略
  1. 使用文本编辑器创建名为 DataProtectionPolicy.json 的策略文件。有关策略语法的信息,请参阅以下部分。

  2. 输入以下命令:

    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 操作的数据保护策略语法

当您创建用于 Amazon CLI 命令或 API 操作的 JSON 数据保护策略时,该策略必须包含两个 JSON 块:

  • 第一个块必须包含 DataIdentifer 数组和带有 Audit 操作的 Operation 属性。DataIdentifer 数组列出要屏蔽的敏感数据类型。有关可用选项的更多信息,请参阅您可以保护的数据类型

    需要带有 Audit 操作的 Operation 属性才能找到敏感数据项。此 Audit 操作必须包含一个 FindingsDestination 对象。您可以选择使用该 FindingsDestination 对象列出要将审计结果报告发送到的一个或多个目标。如果您指定日志组、Amazon Kinesis Data Firehose 流和 S3 桶等目标,这些目标必须已经存在。有关审计结果报告的示例,请参阅 审计结果报告

  • 第二个块必须包含 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": {} } } } ] }