docker 如何避免宿主机访问容器内部文件

2021-12-19 12:40:02 +08:00
 xingyue

镜像内有 ssl 证书之类的文件,不希望宿主机能够通过 docker exec 进入容器访问这些文件。

看文档已知有 Swarm 通过 docker secret 去管理,但是需要配置宿主机做主从。

请问在宿主机不可控的情况下有办法能避免宿主机随意访问容器内文件吗?

2853 次点击
所在节点    问与答
18 条回复
ch2
2021-12-19 12:42:31 +08:00
你的镜像只要被拿到了,文件一解压啥都能看见,根本不需要 exec
MrGba2z
2021-12-19 12:50:29 +08:00
你要的这个似乎可以用 aws 的 nitro enclaves 实现 docker 行不行就不知道了
NilChan
2021-12-19 12:53:29 +08:00
宿主 root 用户不是什么都能看到吗?容器又不是 vm 。
kerro1990
2021-12-19 13:02:26 +08:00
容器不过是个 chroot 环境,母鸡随时可以查看
documentzhangx66
2021-12-19 15:45:25 +08:00
防君子,搞点 OS 加密与磁盘分区加密。

但没有 TPM 、SecureBoot 等技术的加持,第三方掌握 OS 或物理硬件后,还能使用诸如内存提取、驱动注入等技术进行破解,虽然门槛不低。
Tianao
2021-12-19 16:12:18 +08:00
没用的,多租户环境下服务提供商连 ADC 设备物理安全模块( HSM )中的数据都可以访问。
Mithril
2021-12-19 16:22:02 +08:00
物理不可控就视为已经被破解就可以了,就不要考虑保护了。
除非你像游戏厂商用的那些专业的防破解程序,但就算是它们,也没法顶得住破解。
破解与自我保护从来就是个成本问题
dingwen07
2021-12-19 16:37:44 +08:00
既然你用着 GNU/Linux ,建议你看看 GNU 对“可信计算”的看法:
https://www.gnu.org/philosophy/can-you-trust.html
Tink
2021-12-19 16:44:17 +08:00
没有办法
wangtuyi
2021-12-19 19:49:18 +08:00
from scratch
然后添加自己的一个程序,资源文件存放在程序里
gzlock
2021-12-19 21:45:31 +08:00
可以在容器内的使用 run 命令启动程序后联网下载或者加密解压这些文件也算是个方案吧
ETiV
2021-12-19 21:52:11 +08:00
业务逻辑从远端直接读进内存?
feather12315
2021-12-19 22:54:47 +08:00
理论上只有同态加密可以搞定这玩意
yidinghe
2021-12-20 08:06:17 +08:00
容器内文件分为操作系统使用的和应用使用的,前者不需要加密,后者才有可能需要。对文件内容加密的技术不用多说,但密钥放哪呢,又不能直接放容器里,那就只能在应用启动时从网络下载了。
nvkou
2021-12-20 09:29:59 +08:00
运行时签发?
xingyue
2021-12-20 09:56:21 +08:00
@nvkou #15
@gzlock #11
和流程应该是无关的,只要以文件的形式存在了,访问的成本就极低
Rheinmetal
2021-12-20 10:19:10 +08:00
转发明文流量到自己控制的机器上做 ssl
meiyoumingzi6
2021-12-20 14:46:50 +08:00
没办法的, 文件本身就在宿主机上啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX