我想创建一个GCP服务帐户,该帐户可以完全访问特定的bucket(比如my-bucket
(。
我可以通过向我的服务帐户提供roles.storageAdmin
角色来解决此问题,如下所示:
gcloud iam service-accounts create my-sa
--description="My Service Account"
--display-name="my-sa"
和
gcloud projects add-iam-policy-binding my-project
--member="serviceAccount:my-sa@my-project.iam.gserviceaccount.com"
--role="roles/storage.objectAdmin"
但除非我错了,否则这将为项目的所有bucket提供非常广泛的权限。
有没有一种方法可以为服务帐户提供对特定存储桶(并且只有这个存储桶(的完全访问权限?
您可以使用gsutil ch
:
gsutil iam ch
serviceAccount:my-sa@my-project.iam.gserviceaccount.com:objectAdmin
gs://my-bucket
您还可以为您的bucket获取IAM:
gsutil iam get gs://my-bucket > iam.json
,修改它以添加所需的绑定,然后使用更新的文件设置IAM:
gsutil iam set iam.json gs://my-bucket