Inc*_*tic 2 python google-cloud-storage google-cloud-platform google-cloud-python google-cloud-iam
我创建了一个服务帐户并仅授予它该Storage Object Viewer角色。我想使用此服务帐户通过 python API 从存储桶下载对象。
我已经GOOGLE_APPLICATION_CREDENTIALS相应地设置了环境变量,并且可以看到相关的服务帐户显示在存储桶的权限页面上。
我使用以下代码尝试下载对象
from google.cloud import storage
storage_client = storage.Client()
bucket = storage_client.get_bucket(BUCKET_NAME)
Run Code Online (Sandbox Code Playgroud)
但调用时出现以下错误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.
Run Code Online (Sandbox Code Playgroud)
storage.buckets.get如果没有,我需要设置的最小角色集是什么,以便服务帐户具有访问权限Storage Object Viewer?
存储对象查看器 ( roles/storage.objectViewer) 仅包含以下权限:
resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.get
storage.objects.list
Run Code Online (Sandbox Code Playgroud)
对于存储桶,您将需要一个类似 Storage Legacy Bucket Reader ( ) 的角色roles/storage.legacyBucketReader(或创建自定义角色)。这给你:
storage.buckets.get
storage.objects.list
Run Code Online (Sandbox Code Playgroud)
您始终可以使用云控制台中的IAM 和管理 > 角色选项卡来搜索特定权限,以查看当前哪些角色授予这些权限。
| 归档时间: |
|
| 查看次数: |
4744 次 |
| 最近记录: |