Help us learn about your current experience with the documentation. Take the survey.

受保护的容器仓库

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

默认情况下,任何至少拥有 Developer 角色的用户都可以推送和删除容器仓库中的容器镜像。保护容器仓库可以限制哪些用户可以修改容器仓库中的容器镜像。

当容器仓库被保护时,默认行为会对该容器仓库及其镜像执行以下限制:

操作 最低角色要求
保护容器仓库及其容器镜像。 Maintainer 角色。
在容器仓库中推送或创建新镜像。 推送最低访问权限级别 设置中指定的角色。
在容器仓库中推送或更新现有镜像。 推送最低访问权限级别 设置中指定的角色。
使用部署令牌在容器仓库中推送、创建或更新现有镜像。 不适用。部署令牌可用于非受保护的仓库,但不能用于推送镜像到受保护的容器仓库,无论其范围如何。

您可以使用通配符 (*) 通过相同的容器保护规则来保护多个容器仓库。 例如,您可以保护包含在 CI/CD 管道中构建的临时容器镜像的不同容器仓库。

下表包含匹配多个容器仓库的容器保护规则示例:

带通配符的路径模式 匹配的容器仓库示例
group/container-* group/container-prod, group/container-prod-sha123456789
group/*container group/container, group/prod-container, group/prod-sha123456789-container
group/*container* group/container, group/prod-sha123456789-container-v1

您可以对同一个容器仓库应用多个保护规则。 如果至少有一个保护规则匹配,则该容器仓库被保护。

创建容器仓库保护规则

先决条件:

  • 您必须至少拥有 Maintainer 角色。

创建保护规则:

  1. 在左侧边栏,选择 Search or go to 并找到您的项目。
  2. 选择 Settings > Packages and registries
  3. 展开 Container registry
  4. Protected container repositories 下,选择 Add protection rule
  5. 完成字段:
    • Repository path pattern 是您要保护的容器仓库路径。 该模式可以包含通配符 (*)。
    • Minimum access level for push 描述了推送(创建或更新)到受保护的容器仓库路径所需的最低访问权限级别。
  6. 选择 Protect

保护规则已创建,容器仓库现在受保护。

删除容器仓库保护规则

先决条件:

  • 您必须至少拥有 Maintainer 角色。

删除保护规则:

  1. 在左侧边栏,选择 Search or go to 并找到您的项目。
  2. 选择 Settings > Packages and registries
  3. 展开 Container registry
  4. Protected container repositories 下,在要删除的保护规则旁边,选择 Delete ( remove )。
  5. 在确认对话框中,选择 Delete

保护规则已删除,容器仓库不再受保护。