【问题标题】:How to encrypt/hide google cloud bucket name in signed URL如何在签名 URL 中加密/隐藏谷歌云存储桶名称
【发布时间】:2020-08-16 19:30:40
【问题描述】:

我想在谷歌存储桶上上传一张图片,为此我生成了签名 URL,该 URL 将传递给客户端进行上传。我观察到谷歌云存储桶名称暴露在签名的 URL 中。

https://storage.googleapis.com/myproject-images/test.PNG?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=3242342308700-compute%40developer .gserviceaccount.com%2F20200430%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20200430T044803Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=*************** ******

我的问题:是否可以在签名 URL 中加密/映射或隐藏谷歌云存储桶。我不想将我的存储桶名称暴露给最终用户

【问题讨论】:

  • 道格的回答是正确的。您是否有理由要隐藏存储桶名称?存储桶名称是全局资源,名称不是秘密。
  • 我想抽象实现细节(我正在使用 GCP 存储)来存储客户端文件。有时我也觉得存在安全风险,暴露了 GCP 存储正在使用的信息,更重要的是桶名也暴露了,它为已知的 CVE 打开了服务。在我的选择中,最终用户不应该知道使用了什么底层技术。
  • 1/2) 你有两个问题。 1) 您将数据存储在 Google Cloud Storage 上。你无法隐藏这个秘密。不良行为者将扫描任何/所有存储桶。 2)您想在 Google Cloud Storage 之上实现另一层来隐藏这一事实。您能否开发出比 Google 更安全的解决方案?
  • 2/2) 您正在尝试使用混淆来隐藏数据存储在 Google Cloud Storage 上的事实。对于每个使用您的混淆 URL 的黑客来说,将有更多的黑客直接攻击后端存储。您的策略在纸面上听起来不错,但实际上您只是增加了复杂性,这会降低您的总体安全性并扩大必须保护和管理的点数。

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


【解决方案1】:

这是不可能的,如果您希望客户端直接访问该数据。您可以使用 URL 缩短器对其进行模糊处理,但所做的只是暂时将其隐藏在视图之外。

一旦您选择允许客户直接访问您的项目,您的项目 ID 就不再是私人信息。为了识别项目中的资源(而不仅仅是云存储),该 ID 是绝对必需的。对于直接访问 Google Cloud 和 Firebase 产品的所有与 Firebase 相关的客户端访问权限也是如此。

如果您不想让任何人看到您的项目名称,您可以:

  1. 禁止所有直接客户端访问
  2. 通过由另一个 DNS 名称标识的某个中间件服务路由所有请求,该名称隐藏了与 Google Cloud 产品交互的所有实施细节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多