【问题标题】:What's the risk in using project-id in GCS bucket names?在 GCS 存储桶名称中使用项目 ID 有什么风险?
【发布时间】:2019-12-10 07:19:31
【问题描述】:

我一直在我的 GCS 存储桶名称中使用 project-id 作为前缀,以便轻松获得唯一名称。 当我读到GCS-best practises

它明确表示不要使用项目名称或项目编号(与 projectId:s 无关) 但另一方面,当我启动 GAE 时,会自动创建两个包含项目 ID 的存储桶。

是 Google 没有遵循他们自己的最佳做法还是我遗漏了什么?

在存储桶名称中包含 projectId 的最大风险是我向潜在攻击者提供有关该项目的线索,因为存储桶名称是公开可见的吗?

【问题讨论】:

  • 线索少,风险小!

标签: google-cloud-platform google-cloud-storage


【解决方案1】:

在某种程度上,Google 似乎确实没有遵循其最佳做法(如该页面上所列,假设项目名称和编号是指 GCP 名称和编号)。位于 GCP 之上的 Firebase 项目的默认存储分区也是如此。

您链接的文档说明了避免使用项目名称的原因:

...因为任何人都可以探测桶的存在...

这个想法是,如果有人知道您的项目的名称,他们可以使用它来构建存储桶的全名,并在攻击中使用该知识以获取其内容。但是,如果您的安全配置正是应有的,那么知道存储桶的名称将不是问题。对于 Firebase 项目来说尤其如此,它们使用安全规则来确定谁应该能够访问哪些对象。

我会将文档中的建议作为一种通过隐蔽性来衡量安全性的措施,以防止攻击者猜测您的存储桶的名称及其任何内容。但是,如果这不是您关心的问题,请忽略它。

【讨论】:

  • 我们将 projectID 与我们的顶级域结合使用,我们在其中验证所有权,例如 mydomain.com,然后能够以编程方式创建全球唯一的存储桶名称,例如 project-id-1.mydomain.comproject-id-2.mydomain.com 等. '探测存储桶的存在' 这种方式稍微难一些。
【解决方案2】:

看起来他们只是担心泄露 PII。我不确定他们为什么提到项目名称,除非是因为有人可能在他们的项目名称中包含 PII。

请勿在存储桶名称中使用用户 ID、电子邮件地址、项目名称、项目编号或任何个人身份信息 (PII),因为任何人都可以探测存储桶的存在。同样,在对象名称中添加 PII 时要非常小心,因为对象名称会出现在对象的 URL 中。

我看到在我的帐户中创建的两个存储桶都有一个 appspot.com 后缀。您不能创建任意 appspot.com 存储桶,因为它们具有 .在名字和thus are subject to verification:

存储桶名称只能包含小写字母、数字、短划线 (-)、下划线 (_) 和圆点 (.)。不允许有空格。包含点的名称需要验证。

尽管自动创建存储桶与他们的最佳实践指南不一致,但您是对的。

【讨论】:

  • 是的,PII 问题是 Google 建议不要在存储桶名称中使用项目 ID 的原因。如果您的项目 ID 不包含在存储桶名称中可见的任何机密或其他问题,则此建议可能不适用于您。
猜你喜欢
  • 1970-01-01
  • 2020-12-04
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2017-02-12
  • 2020-09-17
  • 2021-02-21
相关资源
最近更新 更多