我们正在内部网中开发和构建Docker映像,需要将它们部署到属于我们的多个主机(开发人员,内部测试,外部测试等)。其中有些位于我们的Intranet中,有些则可以由Internet上的第三方访问。

最终部署是在客户的Intranet内部的多个节点上(生产,不同的测试阶段)进行的。这些位于防火墙后面,不能定期让它们访问其Intranet之外的内容,即,尽管其中一些可以被允许访问外部注册表进行部署,而其他一些则不能,并且图像必须通过某些奥秘软件上传手动传递工具。

我正在寻找一种在Internet上注册注册表的方法(可能是我们自己在某些VM上运行,最好是不运行),该方法允许对图像进行加密存储(最好是GPG或类似格式) ,而不是简单的密码)。但是,然后还可以通过一些上传机制简单地交付“一半”的东西。客户非常偏执,因此保持端到端加密非常重要。

是否有一个让我想到的工具,可以完美地处理它?一种解决方案是将完整注册表镜像到专用主机上的客户房屋,并保持加密部分完好无损。

“标准”解决方案将是不错的选择,我不愿将某些东西混在一起

编辑(标题的编辑):像Portus提供的那样一个广泛的许可计划是一个好的开始,但是我寻找实际图像的端到端加密的理想选择。客户极度偏执,刚开始使用Docker,基于云的服务等。

评论

stackoverflow.com/q/37584961/2777965

谢谢@ 030。您所链接的问题是考虑将内容隐藏在用户的视线之外;我的问题是关于在整个过程中向人们隐藏它(即,我不需要在两端进行加密,仅在通过某些注册表进行传输时才需要加密)。

好。因此,基本上,您正在为Docker注册中心寻找SSL,例如为网站寻找https?

@ 030,正如问题中给出的那样,我正在寻找一种方法,可以使用注册表来加密存储图像(最好是GPG或类似密码,而不是简单的密码)。

github.com/moby/moby/issues/23200

#1 楼

Google Container Registry是一个可能的选择。


Registry是私有的
图像层存储在Google Cloud Storage存储桶中,由Google(RSA)加密,并且可以附加使用客户端密钥(RSA)进行加密的
访问控制将细化到存储在GCS存储桶中的每个单独对象。
客户端身份验证是通过oauth2实施的。客户端将docker配置为将google cloud sdk用作凭据管理器
图像通过ssl连接获取

注册表是Google Cloud Platform的一部分,这意味着您可以构建最多其他有趣的事情。例如,您可以将VM设置为反向代理,并将GCP防火墙设置为仅允许来自某些IP组(例如客户的办公室)的443。

#2 楼

看看https://github.com/Senetas/crypto-cli

,当您从公共或私有存储库中推送和提取容器时,它可以加密/解密容器。

(完全公开,我知道是谁写的)