我可以配置 Google Container Registry (GCR) 以允许推送新图像但不允许更改标签吗?
Can I configure Google Container Registry (GCR) to allow pushing new images but not mutating tags?
我想在 GCP 上将我们公司的容器注册表配置为:
- 允许工作人员推送带有新标签的新图片
- 不允许替换现有标签
我们的目标是避免使用 latest
标签 - 或任何其他可变标签 - 并始终为新图像使用新的不可变标签。
是否有一组 IAM 角色或权限可以实现此行为?
您不必使用 IAM 角色。它应该是服务帐户。
您需要创建一个服务帐户,为其设置 GCR Editor 角色,下载 JSON 文件然后将其发送给您的员工。
service account JSON key file 是一个 long-lived 凭证,范围限定为特定 GCP Console 项目及其资源。
您用于推送和拉取镜像的服务帐户必须正确配置为与 Container Registry 交互所需的权限和访问范围。
GCP 自动创建的服务帐户(例如 Container Registry 服务帐户)被授予父项目的 read-write Editor 角色。 Compute Engine 默认服务帐户配置了对同一项目中存储的 read-only 访问权限。您可能希望授予其他服务帐户更具体的权限。跨项目推送和拉取镜像需要在与 Container Registry 交互的服务帐户上正确配置权限和访问范围。
有关推送和拉取映像所需的服务帐户权限和范围的更多信息,请参阅 requirements 将 Container Registry 与 Google Cloud Platform 结合使用。
我想在 GCP 上将我们公司的容器注册表配置为:
- 允许工作人员推送带有新标签的新图片
- 不允许替换现有标签
我们的目标是避免使用 latest
标签 - 或任何其他可变标签 - 并始终为新图像使用新的不可变标签。
是否有一组 IAM 角色或权限可以实现此行为?
您不必使用 IAM 角色。它应该是服务帐户。 您需要创建一个服务帐户,为其设置 GCR Editor 角色,下载 JSON 文件然后将其发送给您的员工。
service account JSON key file 是一个 long-lived 凭证,范围限定为特定 GCP Console 项目及其资源。
您用于推送和拉取镜像的服务帐户必须正确配置为与 Container Registry 交互所需的权限和访问范围。
GCP 自动创建的服务帐户(例如 Container Registry 服务帐户)被授予父项目的 read-write Editor 角色。 Compute Engine 默认服务帐户配置了对同一项目中存储的 read-only 访问权限。您可能希望授予其他服务帐户更具体的权限。跨项目推送和拉取镜像需要在与 Container Registry 交互的服务帐户上正确配置权限和访问范围。
有关推送和拉取映像所需的服务帐户权限和范围的更多信息,请参阅 requirements 将 Container Registry 与 Google Cloud Platform 结合使用。