【问题标题】:How to restrict a Google Service Account to a single bucket in Google Cloud Storage?如何将 Google 服务帐户限制为 Google Cloud Storage 中的单个存储桶?
【发布时间】:2018-08-03 19:08:13
【问题描述】:

可以这样做吗?

AWS 中使用 IAM 的类似功能确实支持限制对单个存储桶的访问,但从 https://cloud.google.com/compute/docs/access/service-accounts 看来,这在 GCP 中似乎是不可能的。

【问题讨论】:

    标签: google-cloud-storage google-iam


    【解决方案1】:

    要使用 IAM 权限限制服务帐户对特定存储桶的访问,您可以使用 gsutil:

        gsutil iam ch serviceAccount:${SERVICE_ACCOUNT}@${PROJECT}.iam.gserviceaccount.com:objectViewer gs://${BUCKET}
    

    并为您要授予的每个角色重复(例如objectAdmin)。

    文档在这里Using Cloud IAM with buckets。如果您需要对特定对象进行更精细的控制,则必须使用 ACL。

    【讨论】:

      【解决方案2】:

      身份和访问管理 (IAM) 和服务帐户权限是在一般范围内控制对您的资源的访问的推荐方法;但是,您应该使用Access Control Lists,以防您想自定义对各个存储桶及其对象的访问范围。

      我建议您查看 Creating and Managing Access Control Lists 指南,其中包含有关 ACL 使用的详细信息以及将 ACL permissions 设置为现有存储桶的分步说明。

      【讨论】:

        【解决方案3】:

        什么对我有用:

        1. 创建一个新的服务帐号。

        2. 编辑存储桶“XYZ”的权限。从第 1 点开始为服务帐户添加 Legacy Bucket Reader 角色。

        仅此而已。


        我遇到的最大问题是我认为不应该使用 Legacy 角色...

        见:https://cloud.google.com/storage/docs/access-control/iam-roles#legacy-roles

        【讨论】:

        • 这还能用吗?我以前用过,但现在我无法在权限存储桶屏幕上向服务帐户添加角色,“角色无法编辑,因为它是从另一个资源继承的”
        • 这里也一样 - 这对我来说不合逻辑。为什么服务帐户应该有权访问所有存储桶?这有什么更新吗?
        • @Stiefel 我刚刚开始工作 - 对我来说,关键是当您创建服务帐户以跳过第 2 步时,即不要授予它对该项目的一般权限。然后你可以将它作为成员添加到bucket中,然后添加角色。
        猜你喜欢
        • 2014-08-17
        • 2015-10-29
        • 2021-05-01
        • 1970-01-01
        • 2021-04-08
        • 1970-01-01
        • 2013-07-10
        • 2018-06-18
        • 2019-10-12
        相关资源
        最近更新 更多