我正在考虑如何实现一个好的系统来保证某些文件在特定时间内可用。在这个特定情况下,每个文件的备份目录约为 150 MiB。
作为实施的一部分,我有一个存储桶,其保留策略设置为 1 个月。编写此目录文件的系统有一个服务帐户,它使用该帐户将目录上传到存储桶。一切都很好,非常简单。
然而,在实施这一措施时,我开始怀疑:“如果攻击者获得此服务帐户的访问权限并开始向存储桶中填入大量数据,会发生什么情况?”我们将被迫保留这些数据,并据此支付费用。1 PiB 可能可以上传而不会产生太多麻烦,而使用芬兰的 Nearline 则需要 10,000 美元。我绝对希望确保这种情况不会发生。
然后我开始进一步思考。想象一下,一位心怀不满的员工创建了一个存储桶,上传了一些 PiB,并在他/她离职前将保留期设置为 10 年。该如何处理?
这文档我读到的这些内容毫不奇怪地给事情的发展带来了压力无法删除留存率较低,但似乎必须有一种方法可以处理意外和恶意上传。尤其是因为 GCP 没有任何形式的成本控制或至少存储桶大小限制设置。
您对明智地处理这种威胁媒介有何想法?希望 GCP 计费支持可以减少任何错误或攻击?
答案1
您可以使用Cloud Storage 的发布/订阅通知获取有关存储对象发生的不同事件的通知:
Pub/Sub 通知将有关存储桶中对象更改的信息发送到 Pub/Sub,然后以消息的形式将信息添加到您选择的 Pub/Sub 主题中。例如,您可以跟踪存储桶中创建和删除的对象。每个通知都包含描述触发该通知的事件和更改的对象的信息。
至于有关上传的通知,看起来您可以使用该OBJECT_FINALIZE
事件。
或者,看看对象更改通知。
对于支出控制,还有一种方法可以设置通知,如预算警报文档:
预算可让您跟踪实际 Google Cloud 支出与计划支出的对比情况。设置预算金额后,您可以设置用于触发电子邮件通知的预算警报阈值规则。预算警报电子邮件可帮助您随时了解支出与预算的对比情况。您还可以使用预算来自动执行成本控制响应。
也有一些成本控制响应示例例如向 Slack 发送警报或禁用计费以停止使用。