【问题标题】:Preventing deletion of noncurrent objects防止删除非当前对象
【发布时间】:2020-12-16 13:55:47
【问题描述】:

我将备份存储在 Cloud Storage 中。这种备份的一个理想属性是确保正在备份的设备不能擦除备份,以防止勒索软件或类似威胁。同时,希望允许备份客户端删除以便可以修剪旧文件。 (由于备份已加密,因此无法使用生命周期管理来执行此操作。)

立即想到的解决方案是启用对象版本控制并使用生命周期规则将对象版本(已删除的文件)保留一段时间。但是,我看不到允许备份客户端删除 当前 版本的方法,但不能删除历史版本。我认为可以使用 IAM 条件执行此操作,但条件逻辑似乎不够灵活,无法解析出对象版本。还有其他我错过的方法吗?

想到的唯一其他解决方案是创建第二个存储桶,备份客户端无法访问,并使用云函数复制第一个存储桶。这种方法的缺点是重复存储成本。

【问题讨论】:

  • 您能否在帖子中包含您尝试过但不起作用的以下生命周期规则?
  • 据我所知,生命周期规则可用于保留对象版本,但不会阻止具有删除权限的 API 用户显式删除旧对象版本。

标签: google-cloud-storage


【解决方案1】:

回答这个问题:

但是,我看不到允许备份客户端删除当前版本而不是历史版本的方法

当您删除活动对象时,对象版本控制将保留它的非当前版本。当deleting the noncurrent object version 时,您必须指定对象名称及其代号。

再补充一点,您可能需要考虑使用transfer job 将您的数据复制到单独的存储桶中。

无论哪种方式,这两种方法(对象版本控制或复制存储桶)都会产生额外的存储成本。

【讨论】:

  • 是的,看来复制存储桶将是唯一的解决方案。问题正是备份客户端可以通过明确指定代号来删除非当前版本。如果威胁模型假设可能是恶意客户端(例如勒索软件),则非当前版本需要是不可变的。并感谢您提供转移工作的指针 - 我没有看到。
猜你喜欢
  • 1970-01-01
  • 2013-10-23
  • 2020-01-31
  • 1970-01-01
  • 2022-12-13
  • 1970-01-01
  • 2011-08-15
  • 2011-09-10
  • 1970-01-01
相关资源
最近更新 更多