【发布时间】:2018-12-26 21:10:36
【问题描述】:
我在 Google Cloud Console 中创建了一个服务帐号并选择了角色 Storage / Storage Admin(即完全控制 GCS 资源)。
gcloud projects get-iam-policy my_project 似乎indicate 认为该角色实际上已被选中:
- members:
- serviceAccount:my_sa@my_project.iam.gserviceaccount.com
role: roles/storage.admin
- members:
- serviceAccount:my_sa@my_project.iam.gserviceaccount.com
role: roles/storage.objectAdmin
- members:
- serviceAccount:my_sa@my_project.iam.gserviceaccount.com
role: roles/storage.objectCreator
并且documentation 清楚地表明角色roles/storage.admin 包含权限storage.objects.*(以及storage.buckets.*)。
但是当我尝试将该服务帐户与适用于 Python 的 Google 云存储客户端库结合使用时,我收到以下错误消息:
my_sa@my_project.iam.gserviceaccount.com 没有 storage.objects.get 访问 my_project/my_bucket。
那么为什么所选角色在这种情况下还不够呢?
【问题讨论】:
-
你能分享你正在使用的代码吗?您能否进一步告诉我有关如何设置此服务帐户以供客户端库使用的信息?
-
@FrankNatividad 这就是问题(和赞成票)的用途。为什么不发布这样的问题(并从此处链接到它,以便我也能注意到它)?
-
gcloud 好像有问题。我遇到了同样的问题。从命令行分配但始终拒绝权限的角色,在删除服务帐户并创建另一个帐户后消失。
-
以防万一这对将来的任何人有帮助:我遇到了类似的问题,但在授予正确权限后必须重新启动我的 IDE (PyCharm)。
标签: python google-cloud-platform google-cloud-storage service-accounts