首页 > 解决方案 > 限制对 gitlab 容器注册表的访问

问题描述

我希望能够让用户将 docker 文件与代码一起推送到 gitlab 并让 gitlab 构建映像,然后可以由项目的经过身份验证的用户拉取。

问题是,我想确保用户不要将 docker 镜像直接推送到 gitlab 容器注册表,以便我们可以查看 docker-files 和控制,并确保 Dockefiles 使用 Redhat only 注册表从中提取内容。

我们如何防止用户将自己构建的镜像推送到 gitlab?换句话说,我们如何确保gitlab项目的容器注册表中的docker镜像是gitlab从dockerfile构建的,而不是项目用户直接从其他地方推送的镜像?

标签: gitlabgitlab-cigitlab-ci-runnergitlab-omnibus

解决方案


我正在做类似的评估,虽然我真的很喜欢 Gitlab 的整体产品,但这对我来说是一个潜在的阻碍。

另一种可能的解决方法是使用部署令牌。一个潜在的问题是它们是在每个项目的基础上授予的,所以如果你想授予对大量图像的访问权限,这可能会变得很麻烦。另一方面,您可以指定一个项目来包含您的所有图像(您可以在单个 Gitlab 项目注册表中存储多个图像名称)并设置您的 CI 脚本以将所有内容推送到那里。

也许更有用的是使用个人访问令牌。这些是为用户全局设置的,您可以根据需要指定任意数量(例如,每个客户端一个),设置到期日期,并限制对read_registry.


推荐阅读