如何将云构建权限限制到所有其他桶



我为开发人员创建了一个服务帐户,这样他们就可以使用"gcloud run deploy";命令。我已经设法找到了正确的角色:工件注册中心管理员和云运行管理员;但是关于存储部分还有第三个权限,我找不到合适的权限,"云构建服务帐户"。或"存储管理";

您可以通过转到桶权限选项卡并使用Storage Admin添加新的主体(您的服务帐户)来限制您的服务帐户只能使用默认的Cloud Build bucket (<PROJECT_ID>_cloudbuild)。作用。

然而,您必须做的另一件事是为整个项目赋予服务帐户storage.buckets.list权限,这就是为什么您总是看到错误。

您可以通过运行gcloud run deploy--verbosity=debug来验证这一点,以查看内部错误消息:

"error": {
"code": 403,
"message": "<SERVICE_ACCOUNT> does not have storage.buckets.list access to the Google Cloud project.",
...

为了提供最小的权限,您可以创建一个只有storage.buckets.list权限的自定义角色,并将其分配给您的服务帐户,这足以解决我验证的问题。

以下是我最终为服务帐户使用的权限(相关文档):

  • 云构建编辑器角色(项目范围)
  • 工件注册管理角色(项目范围)
  • 存储管理员角色(仅用于云构建桶)
  • 云运行管理员角色(项目范围)
  • 服务帐户用户角色(项目范围)
  • 自定义角色(项目范围,只包含storage.buckets.list)

让我知道这是否有用。

您可以在创建新桶时启用统一桶级访问,或者在现有桶上显式启用统一桶级访问。

当你切换到统一IAM访问,所有者/查看器/编辑器角色不再有访问桶。(注意,role/storage.admin不包括在这个原语角色中)。

另一种方法是删除除您的之外的桶和访问桶的项目的所有IAM权限。服务帐户。

您可以参考本文档了解有关行为、继承和考虑的更多信息。

相关内容

  • 没有找到相关文章

最新更新