我开发了一个基于Docker和Docker API的解决方案。现在,我正在努力使其尽可能安全。我启用了TLS并配置了自己的Docker Registry,以帮助降低不需要的图像和未经授权的访问的风险。此外,我已启用SELinux并使用IPTables以确保只有我想要的客户端才能访问Docker API。
首先,我可以假设Docker主机是完全安全的。虽然实际情况可能并非如此,但这不是我想要解决的问题。
我所提出的问题与批准的客户有关,并且如果被黑客入侵,他们有能力做很多事情。因此,如果客户端被泄露,客户端密钥也是如此。在这种情况下,黑客可以发出Docker API请求来构建映像(来自提供的tar),启动映像以及Docker主机上的任何其他内容。我的任务是试图阻止这种情况。
我曾经想过以某种方式允许Docker API仅启动一组经批准的图像。但是,如果有办法做到这一点,我找不到它。
另一个想法是阻止Docker API构建图像。同样,如果有办法做到这一点,我找不到它。
所以,我可能会因为没有提出足够直接的问题而感到愤怒,不过......
有关如何限制Docker API客户端允许功能的任何建议???
感谢您的任何想法。我在Centos 7上运行Docker 1.8.2。
答案 0 :(得分:0)
Docker有一个待处理的插件功能可以提供这种支持。具体来说,我必须升级到docker 1.10,然后开始使用这些人提供的插件:https://github.com/twistlock/authz。
我在使用它时遇到了一些麻烦,功能仍然非常原始,但看起来非常有前景。只需要等待一些功能。
关于它的一个非常好的博客也在这里:https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/