识别和删除未被访问的 S3 对象?

Sub*_*bbu 5 amazon-s3 amazon-web-services

我最近加入了一家将 S3 存储桶用于 AWS 内各种不同项目的公司。我想识别并可能删除未被访问(读取和写入)的 S3 对象,以降低我的 AWS 账户中 S3 的成本。

我读了这个,这在一定程度上帮助了我。

有没有办法找出哪些对象正在被访问,哪些没有?

Mat*_*t D 5

目前没有本地方法可以做到这一点,因此所有选项都是根据您的用例而定的解决方法。

您有几个选择:

  1. 标记每个 S3 对象(例如 2018-10-24)。首先为您的 S3 存储桶启用对象级日志记录。为 CloudTrail 设置 CloudWatch Events。然后,可以通过在CloudWatch Event上运行的 Lambda 函数来更新标签,该函数在 Get 事件上触发。然后创建一个在计划的 CloudWatch 事件上运行的函数,以删除带有今天之前的日期标签的所有对象。
  2. 查询 CloudTrail 日志,编写自定义函数以从对象级别 CloudTrail Logs查询上次访问时间。这可以通过Athena或直接查询 S3 来完成。
  3. 在 DynamoDB 等中创建单独的索引,您可以在应用程序中根据读取活动更新该索引。
  4. S3 存储桶/密钥前缀上使用生命周期策略,在 x 天后归档或删除对象。这是基于上传时间而不是上次访问时间,因此您可以将对象本身重置时间戳并重新启动时钟。copy