创建有权访问特定 Cloud Storage 存储桶的 IAM 角色/组

Create an IAM role / group with access to specific Cloud Storage bucket(s)

我的目标是拥有一个可以附加到 多个用户或服务帐户 的安全策略,授予对特定 GCS 存储桶的读取权限。到目前为止,我只能:

  1. 创建一个对所有 GCS 存储桶具有广泛读取权限的 IAM 角色,并将其附加到我创建的每个服务帐户/用户(不是我想要的,因为它授予的权限太广泛)

或:

  1. 从 GCS 存储桶中,在我创建每个用户/服务帐户时授予他们特定的读取权限(这不是我想要的,因为它是手动的并且容易出错,并且没有解耦,例如,如果我想更改访问级别或存储桶名称我必须对所有用户执行此操作)。

我真正想要的是能够创建一个角色来限制对特定存储桶的访问,或者有某种“组”的概念,我可以将用户和服务帐户添加到其中, 并授予整个组对存储桶的读取权限。

这在 AWS IAM 中使用组或角色很容易做到。但据我所知,GCP 角色有点不同,GCP 组实际上是电子邮件地址组。虽然我想我可以为此使用组,但感觉很笨拙,而且不是实现此目的的正确方法。

所以我的问题是,有没有一种方法可以创建服务帐户/用户列表,并授予他们对特定资源(即 GCS 存储桶)的有限权限,而无需手动管理每个成员?

我在 Google Cloud Platform creating custom IAM role and limiting access to a storage bucket 中看到了答案,但这不是我要找的,因为这是我在上面 #2 中建议的。

您的想法是创建一个组并授予对该组的权限。那么,在这个组里,你可以添加用户账号和服务账号,对吧?

如果是,请使用 Groups API。您可以使用正确的角色对该组授予所需资源的授予权限。

然后你可以在这个组里添加邮箱:用户账号有邮箱,也有服务账号。

因此,您可以通过 API 调用实现所有自动化,无需手动操作。