gpt4 book ai didi

google-cloud-storage - 如何调试谷歌云存储的访问控制问题?

转载 作者:行者123 更新时间:2023-12-01 12:26:43 32 4
gpt4 key购买 nike

在学习如何将 Google Compute Engine 与 Google Cloud Storage 结合使用时,我遇到了 ACL 问题。在我自己的计算机上,使用我自己的 SSH 凭据,我可以对我的存储桶做任何我想做的事。但是当我使用基于 Web 的 SSH 客户端登录到我的计算实例时,我只能从存储桶中读取。将数据复制回存储桶会导致“AccessDeniedException: 403 Insufficient Permission”错误。 (我正在使用 gsutil 进行所有这些复制实验。)

这对我来说毫无意义。唯一的服务帐户被授予项目编辑角色,我确认存储桶 ACL 列表授予所有者对项目编辑角色和服务帐户的访问权限。我还尝试将服务帐户更改为对存储桶具有“WRITE”权限而不是“OWNER”权限,但这无济于事。最后,在我的本地计算机上执行所有这些操作时,我使用的是相同默认服务帐户的下载 ssh key ,所以我不明白为什么它会发生变化。

部分问题是我看不到橡胶与道路的交汇处——我得到的只是一条没有更多信息的 403。我看不到 gsutil 在做什么(事实上,我什至不确定 gsutil 如何获取其凭据,因为当您通过控制台 ssh 时,这一切都是自动完成的——我只是假设它在服务帐户下登录).

很明显,我很想解决这个紧迫的问题,但我也很感激任何关于如何在将来出现这些问题时调试这些问题的提示。

最佳答案

我相信你遇到了一个很常见的问题,但我可能是错的,所以我会在解释之前从顶部概述需要什么。

默认情况下,计算引擎上的 gsutil 不使用您的个人用户凭据。相反,它将自动获取凭据以充当为该 VM 配置的服务帐户(通常是 Compute Engine 默认服务帐户)。

该服务帐户需要两件事才能写入 GCS:1.) GCS 允许写入该特定位置,以及 2.) 写入 GCS 的范围。

听起来您已将服务帐户设置为项目编辑器,甚至使其成为相关存储桶的所有者,因此您已经处理了第 1 项。但是,默认情况下,GCE 仅授予您的实例用于访问存储的只读范围。这很可能就是为什么读取对您有用,而写入却不行。

解决这个问题有点烦人,因为无法在正在运行的实例上编辑范围。因此,您需要创建一个新的 GCE 实例,并且在这样做时,请确保您明确指定了一个范围。如果您使用的是 UI,请选择“允许对所有云 API 的完全访问权限”,或选择“为每个 API 设置访问权限”,并确保为存储选择“读写”或“完全”。

在 Google 的网站上有关于如何执行此操作的更好说明:https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#using

关于google-cloud-storage - 如何调试谷歌云存储的访问控制问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678314/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com