![允许多个服务帐号访问多个存储桶](https://linux22.com/image/765993/%E5%85%81%E8%AE%B8%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%B8%90%E5%8F%B7%E8%AE%BF%E9%97%AE%E5%A4%9A%E4%B8%AA%E5%AD%98%E5%82%A8%E6%A1%B6.png)
我有一些设备,每个设备都将交给客户处理。我需要每个设备都具有对某些 Google Cloud 存储桶的读取权限。我希望每个设备(或至少每个客户)都有不同的服务帐户,这样我就可以根据需要跟踪/撤销访问权限。
我不确定什么是轻松实现此目标的最佳方法。我可以为每个设备创建一个服务帐户,在每个存储桶上允许每个服务帐户,但这似乎很乏味。我想到两个解决方案:
- 使用以下方式创建每个设备帐户存储对象查看器角色被限制在一个标签上,该标签将被设置在每个 bucket 上。但是,我没有找到如何在 bucket 上设置标签并用它来限制角色。
允许每个设备帐户模拟另一个服务帐户“存储桶读取器”,该服务帐户将被允许读取每个存储桶。但是,我必须允许每个帐户模拟“存储桶读取器”服务帐户。服务帐户模拟不允许长期令牌。
最佳解决方案是什么?如何实现?还有其他我没想到的方法吗?
答案1
根据我对该案例的理解,您希望为 Google Cloud 存储桶上的每台设备提供阅读器访问权限。但是,您还担心负载和限制的增加。因此,考虑到您面临的各种问题,我将分享您采取的以下几个方法 -
1:由于您已经创建了一个脚本,允许每个标记存储桶上都有一个服务帐户。因此,有关服务帐户管理的更多详细信息,您可以参考此公共文档: https://cloud.google.com/iam/docs/creating-managing-service-accounts
2.您还可以通过以下 GSUtil 命令将特定存储桶上特定服务帐户的 IAM 角色更改为存储对象查看器:
gsutil iam ch 服务账户:[电子邮件保护]:storage.objectViewer gs://我的项目/我的存储桶
有关如何在特定存储桶上为服务帐户创建 IAM 角色的更多信息,您可以参考此公共文档: https://cloud.google.com/storage/docs/access-control/using-iam-permissions
3.如果您已经用尽了 100 个服务帐户,那么您可以从 Cloud Console 中的配额页面请求更改配额。请求增加配额是免费的。只有当您使用更多资源时,您的费用才会增加。有关更多详细信息,您可以参考此文档: https://cloud.google.com/compute/quotas#requesting_additional_quota 要了解所有可用资源的配额限制,您可以参考此公共文档: https://cloud.google.com/iam/quotas
希望这对你有帮助!
答案2
最后,我决定使用 1 个帐户/客户,为每个需要启用访问权限的存储桶添加一个标签,并简单编写了一个脚本,允许每个标记的存储桶上使用服务帐户。
我最后担心的是每个项目的服务帐户数量有限(1000),但当我获得 +1000 名客户时,我会解决这个问题。