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

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

创建账户范围的数据保护策略

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

重要

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

控制台

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

  2. 在导航窗格中,选择 Settings(设置)。它位于列表底部附近。

  3. 选择日志选项卡。

  4. 选择 配置

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

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

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

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

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

Amazon CLI

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

  2. 输入以下命令:

    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

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