尽管我显然拥有必要的权限,但 GCP 存储拒绝我访问 Cloud Storage 上的存储桶

尽管我显然拥有必要的权限,但 GCP 存储拒绝我访问 Cloud Storage 上的存储桶

我的一位同事创建了一个 Google Cloud Platform 项目,我们想在其中使用 Cloud Storage 产品。他们让我成为 IAM 权限的共同所有者和存储管理员。根据 Google 文档,存储管理员有storage.objects.*权限,因此我应该能够get存储对象。

我编写了一个简单的python脚本来下载一些内容如下(仅为伪代码):

storage_client = storage.Client()
bucket = storage_client.bucket(BUCKET_NAME)
blob = bucket.blob(source_blob_name)
blob.download_to_filename(destination_file_name)

但是,最后一行抛出一个错误:

google.api_core.exceptions.Forbidden: 403 GET 没有对 Google Cloud Storage 对象的 storage.objects.get 访问权限。

我在云控制台中反复检查了我的权限,并确保我的GOOGLE_APPLICATION_CREDENTIALS环境变量已定义。为什么 GCP 拒绝我访问此存储桶?我该如何解决这个问题?

答案1

这里应用的是授予服务帐户的权限,而不是授予您的权限。

我们使用服务帐户创建一个 JSON 密钥,并将密钥的路径提供给 GOOGLE_APPLICATION_CREDENTIALS。

我猜可能是服务帐户已被删除或者服务帐户没有适当的权限。

也许您可以尝试从中重新创建服务帐户和 JSON 密钥并授予其适当的权限。

文档以供参考。

注意:在文档中,服务帐户的所有者角色赋予了比服务帐户所需的更多权限。您可以根据需要更改角色。

相关内容