使用 Python API 以最小权限从 Google 云存储中读取

Using the Python API to read from Google Cloud Storage with minimal permissions

我想使用 Python 从存储中下载 blob。示例显示此代码:

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(BUCKETNAME)
blob = bucket.get_blob(BLOBNAME)
raw_bytes = blob.download_as_bytes()

虽然这有效,但它不仅需要授予“存储对象查看者”角色 (roles/storage.objectViewer) 的 storage.objects.get 权限,还需要 storage.buckets.get 权限才能执行 get_bucket 行。此权限由其他听起来过于强大或过时的角色授予,例如“Storage Admin”或“Storage Legacy Bucket Reader”。

有没有办法更改 Python 代码,以便只需要 storage.objects.get 权限?似乎 JSON API 可能在 Python API 后面允许这样做:https://cloud.google.com/storage/docs/json_api/v1/objects/get

最好的,鲍里斯

示例代码中,bucket语句bucket = client.get_bucket(BUCKETNAME)用于列出bucket操作 .

如果您要输出作为响应获得的值,而不是执行 client.get_bucket,您可以将其作为 静态值 传递。 通过使用静态值,您将不会使用需要 storage.buckets.get 权限的 client.get_bucket 操作。

您也可以参考类似的