这必须吓唬每个人,对吧? ……但似乎并非如此……
所以pb是以root身份运行服务器,即使在容器中也是如此,因为容器内的root与容器外的root完全相同.
其中一个解决方案是使用像“this example for a tor relay”这样的“USER”指令正确构建Dockerfile.
另一个解决方案是使用“linux用户命名空间”将容器内的UID / GID“映射”到容器外的UID / GID.例如,容器中的例外根(uID = 0)可以映射到主机内的个人用户帐户,因此在共享卷中创建的文件具有良好的权限.
所以我的问题是:Docker的安全性最佳做法是什么?以非root方式运行代码(即Dockerfile中的USER指令)?或者通过使用“用户名称空间”?或者最终(或者另外)使用selinux和/或AppArmor?
谢谢 :)
解决方法 引用 Solomon HykesHi all,I’m a maintainer of Docker. As others already indicated this doesn’t work on 1.0. But it Could have.
Please remember that at this time,we don’t claim Docker out-of-the-Box is suitable for containing untrusted programs with root privileges. So if you’re thinking “pfew,good thing we upgraded to 1.0 or we were toast”,you need to change your underlying configuration Now. Add apparmor or selinux containment,map trust groups to separate machines,or IDeally don’t grant root access to the application.
因此,如果您认真对待安全性,那么对于命名空间和apparmor或selinux,最佳实践是肯定的.那就是说很多人都不在意这个额外的麻烦(无论好坏)所以你看到很多人都没有去找麻烦.为容器内的文件(特别是作为卷安装的文件)上的用户设置权限有时会变得棘手,这是许多人跳过额外开销的方式.
总结以上是内存溢出为你收集整理的linux – Docker安全性最佳实践全部内容,希望文章能够帮你解决linux – Docker安全性最佳实践所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)