Google cloud platform 我可以配置GoogleContainerRegistry(GCR)以允许推送新图像,但不允许修改标签吗?

Google cloud platform 我可以配置GoogleContainerRegistry(GCR)以允许推送新图像,但不允许修改标签吗?,google-cloud-platform,google-container-registry,Google Cloud Platform,Google Container Registry,我想在GCP上将我们的公司容器注册表配置为: 允许员工使用新标签推送新图像 不允许替换现有标记 我们的目标是避免使用latesttag-或任何其他可变的标记,并始终为新图像使用新的、不可变的标记 是否有一组IAM角色或权限可以实现此行为?您不必使用IAM角色。它应该是服务帐户。 您需要创建一个服务帐户,为其设置GCR编辑器角色,下载JSON文件,然后将其发送给您的员工 是一个长期有效的凭证,作用域为特定的GCP控制台项目及其资源 用于推拉映像的服务帐户必须正确配置为具有与容器注册表交互所需的

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

  • 允许员工使用新标签推送新图像
  • 不允许替换现有标记
我们的目标是避免使用
latest
tag-或任何其他可变的标记,并始终为新图像使用新的、不可变的标记


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

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

是一个长期有效的凭证,作用域为特定的GCP控制台项目及其资源

用于推拉映像的服务帐户必须正确配置为具有与容器注册表交互所需的权限和访问范围

GCP自动创建的服务帐户(如容器注册表服务帐户)被授予父项目的读写角色。计算引擎默认服务帐户配置为对同一项目中的存储进行只读访问。您可能希望授予其他服务帐户更具体的权限。跨项目推拉映像需要在与容器注册表交互的服务帐户上正确配置权限和访问范围


有关推拉图像所需的服务帐户权限和作用域的更多信息,请参阅Google Cloud Platform容器注册表使用指南。

您的答案如何限制您可以写入哪些GCR图像标记?注意“项目编辑器角色”是IAM角色。GCR编辑器角色不存在。项目编辑器可以覆盖任何GCR图像。问题中的一项是“不允许替换现有标记”。哦,很抱歉,遗漏了它,“不允许替换现有标记”-您不能为此目的设置任何角色。没有权限只允许它推送到GCR。允许推送的最低权限(IAM角色)是基于当前实现的“存储管理员”。感谢您在评论中的澄清-遗憾的是,没有办法避免更改标记。我对此评论不确定。GCR权限是云存储权限。云存储支持两个特性:Bucker锁和版本控制。Bucket lock将防止删除对象,这意味着还将防止在X个时间段内覆盖对象。版本控制可防止对象作为创建对象版本的副作用而被删除。也许这会给能进一步调查此事的人一些提示。