Dru*_*rux 6 python google-cloud-storage service-accounts google-cloud-platform
我已经在Google Cloud Console中创建了一个服务帐户并选择了角色Storage/ Storage Admin(即,完全控制GCS资源)。
gcloud projects get-iam-policy my_project似乎表明实际上已选择了该角色:
- 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
Run Code Online (Sandbox Code Playgroud)
并且文档清楚地表明角色roles/storage.admin包含权限storage.objects.*(以及storage.buckets.*)。
但是,当我尝试将该服务帐户与适用于Python的Google Cloud Storage客户端库结合使用时,会收到以下错误消息:
my_sa@my_project.iam.gserviceaccount.com没有对my_project / my_bucket的storage.objects.get访问权限。
那么,为什么所选角色在这种情况下不够用?
小智 32
转到您的存储桶的权限部分,然后打开为您的存储桶添加权限部分。例如,gcloud 告诉您的服务不足是;
1234567890-compute@developer.gserviceaccount.com
Run Code Online (Sandbox Code Playgroud)
添加此服务作为用户,然后赋予这些角色;
那么您应该有足够的权限来对您的存储桶进行更改。
Dru*_*rux 17
问题显然是服务帐户与太多角色相关联,这可能是先前配置尝试的结果。
这些步骤解决了这个问题:
my_sa下违规服务帐户(成员)的所有(三个)角色IAM & AdminIAMmy_sa在IAM & Admin/下删除Service accountsmy_sa(再次使用角色Storage/ Storage Admin)效果是这样的:
my_saStorage Admin在IAM & Admin/下显示一个角色 ( )IAMmy_sa在Storage/ Browser/ my_bucket/下显示为成员Edit bucket permissions值得注意的是,如果您刚刚分配了权限,您需要等待一分钟或其他时间才能使权限生效。至少这就是我之后发生的事情:
gcloud projects add-iam-policy-binding xxx --member
"serviceAccount:xxx@xxx.iam.gserviceaccount.com" --role "roles/storage.objectViewer"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8848 次 |
| 最近记录: |