我的一位同事创建了一个 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 密钥并授予其适当的权限。
文档以供参考。
注意:在文档中,服务帐户的所有者角色赋予了比服务帐户所需的更多权限。您可以根据需要更改角色。