在 spring 打包 jar 包复制到 docker image 后别人可以查看我的 resource 下的配置文件吗?

2019-04-28 17:57:57 +08:00
 niuxuewei

如题,原因是*.properties 中会存在一些敏感信息,如果打包到 docker 中如何保障这些文件的安全,我觉得因为打包成 jar 包了所以.dockerignore 应该是不起作用的。

2655 次点击
所在节点    Java
12 条回复
qinxi
2019-04-28 18:06:13 +08:00
用环境变量的形式设置敏感信息
mgcnrx11
2019-04-28 18:06:44 +08:00
完全可以,甚至都不用起一个容器
Luckyray
2019-04-28 18:08:57 +08:00
如果没理解错你的意思的话...
image 就是一个人人都能看到的 linux 系统,你放里面的东西自然也能看到。
如果你的配置文件是放到了 jar 包里面,那应该不用工具是打不开的,不过开 jar 包的工具太普遍了。所以你的配置文件基本等于是暴露的。
isCyan
2019-04-28 18:09:30 +08:00
环境变量
你需要一个读取环境变量的东西
可以直接写在代码里
也可以写个脚本,sed 修改配置文件
HuHui
2019-04-28 18:11:53 +08:00
能拿到你的文件就谈不上安全了
niuxuewei
2019-04-28 18:28:28 +08:00
谢谢各位 我这就去试一下
liuzuo
2019-04-28 21:01:39 +08:00
不应该用 config server+解密么
aa6563679
2019-04-29 08:12:10 +08:00
可以把配置文件放 Spring cloud config 上
niuxuewei
2019-04-29 08:45:36 +08:00
@liuzuo @aa6563679 因为只是做毕业设计没必要做的那么复杂,所以没有用 spring cloud,只是用 spring boot + docker 加快部署过程
zpf124
2019-04-29 09:07:08 +08:00
只要又你的镜像或者容器就能读取到.

容器启动之后 直接 exec 进入容器,然后看一下 endpoint 启动脚本 知道配置存哪了直接就 echo 或者 cat 看到了.
mritd
2019-04-29 09:42:32 +08:00
还是没搞懂你的情况,如果你的 resources 怕被人看见,那么你不管部署到哪,只要打包到 jar 里就可以被拿到,环境变量更扯淡,所以唯一解决方案就是移除 resources 敏感信息,然后 使用配置中心,远程加载,但不管怎样,你的配置始终是下发到客户端,那么不管怎样还是能拿到,只不过是难度大小问题
solaya
2019-04-29 11:10:02 +08:00
Apollo ?

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

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

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

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

© 2021 V2EX