GCS 限制对现有服务帐户的存储桶访问
GCS limit bucket access to an existing service account
通常有一个由 GCP 自动创建的 Compute Engine default service account
,此帐户被 VM 代理用于跨 GCP 访问不同资源,默认情况下具有 role/editor
权限。
假设我想创建只能由这个默认服务帐户访问的 GCS 存储桶,其他任何人都不能访问。我查看了 ACL 并尝试使用此默认服务帐户电子邮件将 ACL 添加到存储桶,但它并没有真正起作用。
我意识到我仍然可以从其他具有 storage bucket read
和 storage object read
权限的帐户访问该存储桶中的存储桶和对象,我不确定我做错了什么(也许存在一些默认 ACL? ).
我的问题是:
- 是否可以限制对默认帐户的访问?那么谁将无法访问它?
- 最好的方法是什么? (非常感谢使用 Storage API 的示例)
- 仍然有诸如
role/StorageAdmin
之类的角色,实际上无论将什么 ACL 放在存储桶上,如果我有这个角色(或更高的角色,如所有者),我仍然可以访问它,对吗?
谢谢!
控制对存储桶和对象的访问
例如,使用 ACL 授予服务帐户 WRITE(R:READ,W:WRITE,O:OWNER)对存储桶的访问权限:
gsutil acl ch -u service-account@project.iam.gserviceaccount.com:W gs://my-bucket
要从存储桶中删除服务帐户的访问权限:
gsutil acl ch -d service-account@project.iam.gserviceaccount.com gs://my-bucket
如果IAM身份(项目级别)中有role/StorageAdmin等角色,他们将有权访问该项目的所有GCS资源。您可能需要更改权限以避免他们访问。
我建议您不要使用 ACL(Google 也是如此)。最好在统一的 IAM 策略中切换存储桶。
ACL 有 2 个不好的方面:
- 新创建的文件不是 ACL,您需要在每次创建 ne 文件时设置它
- 很难知道谁有访问权限,谁没有访问权限。 IAM 服务更适合审计。
当您切换到统一 IAM 访问权限时,所有者、查看者和编辑者角色不再有权访问存储桶(role/storage.admin 不包括在此原始角色中)。它可以一键解决所有不需要的访问。否则,如 John 所说,删除除您的服务帐户之外的存储桶和有权访问该存储桶的项目的所有 IAM 权限。
通常有一个由 GCP 自动创建的 Compute Engine default service account
,此帐户被 VM 代理用于跨 GCP 访问不同资源,默认情况下具有 role/editor
权限。
假设我想创建只能由这个默认服务帐户访问的 GCS 存储桶,其他任何人都不能访问。我查看了 ACL 并尝试使用此默认服务帐户电子邮件将 ACL 添加到存储桶,但它并没有真正起作用。
我意识到我仍然可以从其他具有 storage bucket read
和 storage object read
权限的帐户访问该存储桶中的存储桶和对象,我不确定我做错了什么(也许存在一些默认 ACL? ).
我的问题是:
- 是否可以限制对默认帐户的访问?那么谁将无法访问它?
- 最好的方法是什么? (非常感谢使用 Storage API 的示例)
- 仍然有诸如
role/StorageAdmin
之类的角色,实际上无论将什么 ACL 放在存储桶上,如果我有这个角色(或更高的角色,如所有者),我仍然可以访问它,对吗?
谢谢!
例如,使用 ACL 授予服务帐户 WRITE(R:READ,W:WRITE,O:OWNER)对存储桶的访问权限:
gsutil acl ch -u service-account@project.iam.gserviceaccount.com:W gs://my-bucket
要从存储桶中删除服务帐户的访问权限:
gsutil acl ch -d service-account@project.iam.gserviceaccount.com gs://my-bucket
如果IAM身份(项目级别)中有role/StorageAdmin等角色,他们将有权访问该项目的所有GCS资源。您可能需要更改权限以避免他们访问。
我建议您不要使用 ACL(Google 也是如此)。最好在统一的 IAM 策略中切换存储桶。
ACL 有 2 个不好的方面:
- 新创建的文件不是 ACL,您需要在每次创建 ne 文件时设置它
- 很难知道谁有访问权限,谁没有访问权限。 IAM 服务更适合审计。
当您切换到统一 IAM 访问权限时,所有者、查看者和编辑者角色不再有权访问存储桶(role/storage.admin 不包括在此原始角色中)。它可以一键解决所有不需要的访问。否则,如 John 所说,删除除您的服务帐户之外的存储桶和有权访问该存储桶的项目的所有 IAM 权限。