【问题标题】:Revoke the signed URL of the object that was created in GCP Cloud storage撤消在 GCP Cloud 存储中创建的对象的签名 URL
【发布时间】:2022-08-02 22:41:54
【问题描述】:

假设我有这种情况,我使用以下命令使用服务帐户的私钥创建了指向 GCP 对象的签名 URL。

$ gsutil signurl -d 10m <private-key> gs://<bucket>/<obj> 

由于某些原因,我不想给这个signurl,即,我想撤销访问权限。

我尝试了这个,将持续时间限制为 0s。但问题是每次我们运行 gsutil signurl 命令时都会生成新的 URL。因此,就我而言,前一个仍然可以访问。

$ gsutil signurl -d 0s <private-key> gs://<bucket>/<obj>

我能想到的解决方案是,

  1. 将“Storage Object Viewer”的角色删除到服务帐户 (OR)
  2. 重新生成 JSON 私钥 (OR)
  3. 删除此特定服务帐户。

    如果有任何更好的方法使用 gsutil 来撤销签名的 url,请帮助我,如果我的解决方案适合这种情况,请纠正我。

  • 你能检查一下这个link,这可能会有所帮助。
  • @SathiAiswarya 谢谢,是的,看起来他们也提到要删除密钥。
  • 我在下面为您的问题提供了答案。你能检查一下这是否有帮助。

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


【解决方案1】:

您需要删除服务帐户密钥,这可能会延迟几分钟,并且还会使其他签名 URL 无效。

签名 URL 的验证是通过公钥和时间戳进行的。如果时间戳没有过期,剩下的就是删除公钥,这需要删除服务帐户的私钥。

如果签名 URL 是由 Google 托管服务帐户密钥生成的,则您必须删除该服务帐户。

【讨论】:

    【解决方案2】:

    根据 GCStorage 文档,您必须等待到期时间或更新服务帐户。 (https://cloud.google.com/storage/docs/access-control/signed-urls#should-you-use)

    但那些不符合我的要求。所以我的解决方法就是重命名对象.重命名后,旧签名的 url 将立即不再起作用。

    (注意rename 操作的性能。GCS 文档指出它需要copy 然后delete 在处理大文件时很慢。但实际上,看起来GCS 只是编辑文件元数据以重命名相同的文件桶。我尝试在同一个桶中重命名/移动大文件(1GB),它是立即的。

    另一个问题是丢失原始文件名。我可以想到一些解决方案,例如将原始文件名存储在云存储文件的元数据中,或者您可以使用单独的数据库(例如 mysql)将原始文件名映射到相应的存储文件名。 )

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多