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 角色。
创建保护规则:
- 在左侧边栏,选择 Search or go to 并找到您的项目。
- 选择 Settings > Packages and registries。
- 展开 Container registry。
- 在 Protected container repositories 下,选择 Add protection rule。
- 完成字段:
- Repository path pattern 是您要保护的容器仓库路径。
该模式可以包含通配符 (
*)。 - Minimum access level for push 描述了推送(创建或更新)到受保护的容器仓库路径所需的最低访问权限级别。
- Repository path pattern 是您要保护的容器仓库路径。
该模式可以包含通配符 (
- 选择 Protect。
保护规则已创建,容器仓库现在受保护。
删除容器仓库保护规则
先决条件:
- 您必须至少拥有 Maintainer 角色。
删除保护规则:
- 在左侧边栏,选择 Search or go to 并找到您的项目。
- 选择 Settings > Packages and registries。
- 展开 Container registry。
- 在 Protected container repositories 下,在要删除的保护规则旁边,选择 Delete ( )。
- 在确认对话框中,选择 Delete。
保护规则已删除,容器仓库不再受保护。