首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GCS:如何使用最低权限的服务帐户备份和保留版本

GCS:如何使用最低权限的服务帐户备份和保留版本
EN

Stack Overflow用户
提问于 2021-02-10 14:34:25
回答 2查看 69关注 0票数 0

我想设置一个服务帐户,每天都可以将文件备份保存到谷歌云存储中。

我打算使用对象版本控制和生命周期策略来维护文件的最新30个版本。

但是,我发现了同一文件的gsutil requires the delete privilege to create a new version

在我看来,赋予备份进程删除权限有点疯狂,而且不符合最小权限原则,因为我的理解是,这将使服务帐户能够一次性执行gsutil rm -a和nuke所有版本的备份。

那么,实现这一目标的最好、最小特权的方法是什么呢?

我可以每次都在文件名上附加一个时间戳,但是这样我就不能使用生命周期管理,而必须编写自己的脚本来确定哪些是最近的30个,并删除其余的。

有没有更好/更简单的方法来做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2021-02-10 15:27:42

我能想到的解决这个问题的最好方法是有两个服务帐户--一个只能创建对象(使用时间戳创建备份),另一个可以列出和删除它们。

  • 帐户1将创建您的备份,使用带时间戳的文件名以避免覆盖,因此需要帐户2的storage.objects.delete cronjob凭据用于运行一个脚本,该脚本列出您的备份对象并删除除最新的30个对象之外的所有对象-您可以在某处的虚拟机上作为cronjob运行此脚本,或者仅在利用云发布/订阅to trigger a Cloud Function.

上载新备份时运行此脚本

票数 0
EN

Stack Overflow用户

发布于 2021-02-12 12:02:56

我们最终只是将文件保存为不同的文件名(例如backup-YYYYMMDD),并使用保留策略在30天后删除该文件。

它不是水密的,如果备份失败30天,那么所有版本都将被删除,但我们认为我们已经采取了足够的措施,人们会在30天前注意到这一点。

我们不喜欢让脚本来执行删除操作,因为:

  1. 它更容易出错
  2. 这意味着我们最终仍然需要一个能够删除文件的服务帐户,而我们的目标是限制这种权限。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66131990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档