apolloconfig / apollo

Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
https://www.apolloconfig.com
Apache License 2.0
29.17k stars 10.2k forks source link

同步环境配置带来的安全问题 #2518

Closed yesterday11 closed 4 years ago

yesterday11 commented 5 years ago

可以在自己搭建的本地环境中任意修改其他环境的配置(如公司在用的apollo)

重现步骤:

1.自己在本地环境搭建一套apollo系统; 2.在apollo-portal项目中修改apollo-env.properties,如下所示:

 dev.meta=${dev_meta}
 fat.meta=公司内部用的测服地址

3.然后用管理远账号登陆自己搭建的portal页面:http://localhost:8070/config.html 4.创建一个新项目,与公司内部appid一致,然后就可以看到与appid一致的项目配置内容 5.同步、发布配置,可以修改公司测服的配置

问题影响: 如果只是内网可以访问,影响还好;如果外网也可以访问公司内部配置,就等于任何人都可以修改了,安全性让人很担忧。 建议: 权限这块能不能再继续细化一下

nobodyiam commented 5 years ago

这块其实是系统间的认证和授权,apollo设计之初主要是基于『内网可信』的原则,未来要在『零可信』环境使用的话,这块确实是需要补上的

yesterday11 commented 5 years ago

嗯嗯,个人感觉『内网可信』原则与角色权限这块有些冲突,我们设置不同角色拥有不同权限就是希望某些操作限定在某些角色下(那怕是内网)。但是现在基于『内网可信』,貌似冲破了角色权限的限制。 我的想法是,咱们可以在configdb的serverconfig表加入portal服务器的白名单,不在白名单内的portal服务器不可以读取、修改 adminServer/configServer(这种可能还是您说的『零可信』)

nobodyiam commented 5 years ago

增加黑白名单引发的一个问题是当portal扩容时需要联动修改这个名单,对运维上会增加一些成本,不过如果对安全有要求的话,确实可以考虑承担这部分成本。

实现应该不复杂,有兴趣的话,可以在自己公司先实现一下,效果不错的话,可以提交PR。

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in 14 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.

stale[bot] commented 4 years ago

This issue has been automatically closed because it has not had activity in the last 14 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.