首页 > 解决方案 > 向 GCP 服务帐号授予完整的 gcs 存储桶权限

问题描述

我想创建一个 GCP 服务帐户,该帐户将具有对特定存储桶的完全访问权限(例如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"

但除非我错了,否则这将为所有项目的存储桶提供非常广泛的权限。

有没有办法为服务帐户提供对特定存储桶(并且只有这个存储桶)的完全访问权限?

标签: securitygoogle-cloud-platformgoogle-cloud-storagegoogle-cloud-iam

解决方案


您可以使用gsutil ch

gsutil iam ch \
    serviceAccount:my-sa@my-project.iam.gserviceaccount.com:objectAdmin \
    gs://my-bucket

您还可以获取存储桶的 IAM:

gsutil iam get gs://my-bucket > iam.json

,修改它以添加您想要的绑定,然后使用更新的文件设置 IAM:

gsutil iam set iam.json gs://my-bucket

推荐阅读