从Google存储库下载对象需要什么角色

2024-09-28 23:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个服务帐户,并且只赋予它Storage Object Viewer角色。我想使用这个服务帐户使用pythonapi从bucket下载对象。你知道吗

我已经相应地设置了GOOGLE_APPLICATION_CREDENTIALS环境变量,并且可以看到相关的服务帐户显示在bucket的permissions页面上。你知道吗

我使用以下代码尝试下载一个对象

from google.cloud import storage
storage_client = storage.Client()
bucket = storage_client.get_bucket(BUCKET_NAME)

但是我在调用get_bucket时遇到以下错误

google.api_core.exceptions.Forbidden: 
403 GET https://storage.googleapis.com/storage/v1/b/samplereadbucket?projection=noAcl: 
sample-service-account@project.iam.gserviceaccount.com does not have storage.buckets.get 
access to samplereadbucket.

如果服务帐户没有Storage Object Viewer访问权限,我需要设置的最小角色集是什么?你知道吗


Tags: 对象comclient角色getobjectbucketservice
1条回答
网友
1楼 · 发布于 2024-09-28 23:29:29

存储对象查看器(roles/storage.objectViewer)仅包括以下权限:

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.get
storage.objects.list

对于Bucket,您需要一个类似于Storage Legacy Bucket Reader(roles/storage.legacyBucketReader)的角色(或者创建一个custom role)。这将为您提供:

storage.buckets.get
storage.objects.list

您可以始终使用云控制台中的IAM & Admin > Roles选项卡来搜索特定的权限,以查看当前授予这些权限的角色。你知道吗

相关问题 更多 >