跳至内容

如何从 CloudFront 日志中移除敏感数据?

2 分钟阅读
0

默认情况下,Amazon CloudFront 标准日志会捕获部分字段中的敏感数据。出于隐私考虑,我想移除这部分日志。

简短描述

**注意:**本文使用客户端 IP (c-ip) 字段的示例。

默认情况下,CloudFront 日志将捕获 c-ip 作为其字段之一。有三种方法可以从日志中移除 c-ip。

  • 触发一个 AWS Lambda 函数,此函数会在日志传输到 Amazon Simple Storage Service (Amazon S3) 中时移除此字段。
  • 使用按特定间隔运行的 Amazon Elastic Compute Cloud (Amazon EC2) 进程来移除该字段。
  • 使用 CloudFront 标准日志,在将日志数据发送到 Amazon S3 之前移除敏感字段。

**注意:**要激活标准日志,您必须使用专业版计划或按实际使用量付费计划。有关详细信息,请参阅 Amazon CloudFront 定价。

解决方法

触发 Lambda 函数

移除 c-ip 字段的一种方法是使用 Amazon S3 通知事件。当 CloudFront 将日志文件传输到 Amazon S3 存储桶中时,配置该存储桶以触发 Lambda 函数。

创建 Lambda 函数

1.    打开 AWS Lambda 控制台。

2.    在 Functions(函数)下,创建一个具有以下配置的新 Lambda 函数:

  • 使用 Amazon S3 事件中的对象名称。
  • 从 S3 存储桶获取对象。

3.    移除 c-ip 列,或用匿名数据替换这些值。

**注意:**替换这些值以保持相同的格式,以防其他应用程序进一步处理这些日志。

4.    保存日志并将其上传回 Amazon S3。

创建新事件

1.    在日志目标存储桶中,前往 Properties(属性)。

2.    在 Event notifications(事件通知)下,创建新事件。

3.    选择事件类型 Put 和目标 Lambda 函数。

4.    选择在步骤 1 中创建的 Lambda 函数,然后选择 Save(保存)。

重要事项: 要避免 Lambda 函数发生递归调用(无限循环),请执行以下操作:

  • 将您的 CloudFront 日志传输到初始暂存前缀。例如,“original”。
  • 仅针对该前缀触发 Amazon S3 事件。
  • 让 Lambda 函数将日志传输到不同的前缀中。例如,“processed”。

如果您将日志传输到相同的前缀中,Lambda 函数将再次触发并造成递归调用。有关详细信息,请参阅 Avoiding recursive invocation with Amazon S3 and AWS Lambda(避免 Amazon S3 和 AWS Lambda 发生递归调用)。

**注意:**为了保持较低的 Amazon S3 成本,请设置 Amazon S3 生命周期策略,使原始日志在一定时间段后过期。

运行 Amazon EC2 进程

使用 Amazon EventBridge 创建计划规则 (cron),按计划周期启动 EC2 实例并处理日志文件。例如,每天一次。进程完成后,停止 EC2 实例,直到下一周期到来,以节省成本。

1.    配置 EventBridge 和 Lambda 在给定时间启动 EC2 实例。有关详细信息,请参阅如何使用 Lambda 按固定间隔停止和启动 Amazon EC2 实例?

2.    在 EC2 实例上,部署用于在特定时间段内下载日志的代码。例如,一整天。移除 c-ip 列以处理日志,或将列值替换为匿名数据。将处理过的日志上传回 S3 存储桶。

**可选:**将所有处理过的日志合并到一个文件中,以节省 Amazon S3 生命周期过渡成本。如果您打算长时间存储日志,此进程很有用。

使用 Kinesis Data Firehose

使用 CloudFront 实时日志选择要保存的字段。稍后,让 Amazon Kinesis Data Firehose 将日志数据发送到 Amazon S3。

配置 CloudFront 实时日志时,每条实时日志记录中包含的字段列表都可用。每条日志记录最多包含 40 个字段。您可以选择接收所有可用字段,也可以只接收必须监控和分析其性能的字段。停用字段 c-ip,将该字段排除在日志之外。

注意:由于需要使用 Amazon Kinesis Data Streams,此选项的成本较高。不妨考虑其他两个选项(触发 Lambda 函数或运行 Amazon EC2 进程),以获得更具成本效益的解决方案。


AWS 官方已更新 4 年前