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 & Admin
IAM
my_sa
在IAM & Admin
/下删除Service accounts
my_sa
(再次使用角色Storage
/ Storage Admin
)效果是这样的:
my_sa
Storage Admin
在IAM & Admin
/下显示一个角色 ( )IAM
my_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 次 |
最近记录: |