0

在 docker EE 中,有没有办法允许从特定机器推送和拉取 DTR,同时保持 Web UI 访问与正常相同?

  • 用例是我们希望仅在 docker 构建中强制使用来自 DTR 的标准基础镜像
  • 我们希望仅在启用了 docker 内容信任的标准 docker build 机器上强制执行 docker 镜像构建

  • 仅允许以下命令: docker pull 、 docker build 和 docker push 在 CI 服务器上

有效地强制用户仅使用 DTR 中的基本图像。如果他们在其他地方构建图像,他们将无法推送它,如果他们在我们的 CI 服务器上构建它,它将确保他们只能从 DTR 而不是从其他地方提取基础图像,这也将确保他们在启用 docker content trust 的情况下构建它。

4

1 回答 1

1

我遇到了一个类似的用例,下面我将与您分享我如何限制 DTR 上的拉取、推送操作边界:

  • 配置:有权对 Registry 对象执行某些操作并通过 UCP Web UI 加载 Docker 映像;这导致向用户和/或团队提供特定的授权。

  • 配置:通过网络管理员在网络级别添加特定的防火墙规则,用户(人类和/或自动化机器人)可以从哪里执行注册操作。

  • 仅从特定注册表限制拉取操作,更新文件,在 Docker 主机文件系统上的以下路径,/ var/lib/docker/ daemon.json添加 DTR 的 URL:

      { 
        ... # some your custom Docker daemon configuration
        "registry-mirrors": ["https://your-registry-url"]
        ... # some other custom Docker daemon configuration
      }
    

最后,我得到:只允许特定用户在 DTR 存储库中推送 Docker 映像,并且只能从网络 ACL 列入白名单的位置推送

一些参考资料:

  • 如何配置 Docker 守护进程:https ://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file ;

  • RBAC 示例:https ://success.docker.com/article/rbac-example-overview ;

  • Docker EE RBAC 支持的 DTR 默认权限:https ://docs.docker.com/ee/dtr/admin/manage-users/permission-levels/ 。

于 2018-10-15T15:46:18.307 回答