我可以配置 Google 容器注册表 (GCR) 以允许推送新映像但不允许更改标签吗?

Jam*_*aly 7 google-cloud-platform google-container-registry

我想在 GCP 上配置我们公司的容器注册表:

  • 允许员工推送带有新标签的新图片
  • 不允许替换现有标签

目标是避免使用latest标签 - 或任何其他可变标签 - 并始终为新图像使用新的、不可变的标签。

是否有一组 IAM 角色或权限可以实现此行为?

Le *_*iem 0

您不必使用 IAM 角色。它应该是服务帐户。您需要创建一个服务帐户,为其设置 GCR 编辑器角色,下载 JSON 文件然后将其发送给您的员工。

服务帐号 JSON 密钥文件是一种长期凭证,其范围仅限于特定的 GCP Console 项目及其资源。

用于推送和拉取映像的服务帐户必须正确配置与 Container Registry 交互所需的权限和访问范围。

GCP 自动创建的服务帐户(例如 Container Registry 服务帐户)被授予父项目的读写编辑者角色。Compute Engine 默认服务帐户配置为对同一项目中的存储具有只读访问权限。您可能希望授予其他服务帐户更具体的权限。跨项目推送和拉取镜像需要在与 Container Registry 交互的服务帐户上正确配置权限和访问范围。

有关推送和拉取映像所需的服务帐户权限和范围的更多信息,请参阅将Container Registry 与 Google Cloud Platform 结合使用的要求

  • 您的答案如何限制您可以写入哪些 GCR 图像标签?注意“项目编辑者角色”是 IAM 角色。GCR 编辑者角色不存在。项目编辑器可以覆盖任何 GCR 图像。问题中的一项是“不允许替换现有标签”。 (2认同)
  • 感谢您在评论中澄清 - 遗憾的是没有办法避免改变标签 (2认同)