首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >撤销在GCP云存储中创建的对象的签名URL

撤销在GCP云存储中创建的对象的签名URL
EN

Stack Overflow用户
提问于 2022-05-11 06:49:42
回答 2查看 265关注 0票数 0

假设我使用以下命令使用服务帐户的私钥创建了GCP对象的签名URL。

代码语言:javascript
复制
$ gsutil signurl -d 10m <private-key> gs://<bucket>/<obj> 

由于一些原因,我不想给这个信号,我想撤销访问。

我试过了,把持续时间限制在0。但是问题是,每次我们运行gsutil signurl命令时,都会生成新的URL。因此,就我的情况而言,前者仍然是可以利用的。

代码语言:javascript
复制
$ gsutil signurl -d 0s <private-key> gs://<bucket>/<obj>

我能想到的解决办法是,

将“存储对象查看器”的角色删除到服务帐户(OR)

  • Regenerate JSON私钥(OR)

  • 删除这个特定的服务帐户.

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

EN

回答 2

Stack Overflow用户

发布于 2022-05-13 10:28:23

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2022-08-02 14:09:19

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

但这些不符合我的要求。因此,我的解决方法就是重命名对象。重新命名后,旧签名的url将立即停止工作。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72196582

复制
相关文章

相似问题

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