王成光:MongoDB和Elastic数据安全问题实战解析

2017年3月13日晚8:30分,前网易技术专家、搜狐架构师王成光带来了主题为“最新MongoDB 3.4和Elastic 5.2数据安全实战分享”的交流。以下是主持人肖丽叶整理的问答实录,记录了作者和读者问答的精彩时刻。


问:本场Chat的起源是什么?

:自从1月份发生的大规模的MongoDB和Elastic的数据安全问题后,相信大家都已经意识到数据安全的严重性。没有任何安全措施防护,互联网数据很容易遭到破坏。本篇文章主要围绕最新MongoDB3.4和Elastic5.2在认证模式下集群搭建的重大变化,以及在实际应用中可能遇到的问题,和大家讨论分享。


问:为什么介绍最新MongoDB3.4和Elastic5.2?

:因为不管MongoDB3.4、还是Elactic5.2相比之前,不管新功能、安全性、还是性能都有很大调整。具体表现在以下几点。

MongoDB 3.4 主要新功能:

Elastic 5.2 主要新功能:

MongoDB 3.4和Elastic 5.2在性能和使用方面都做了重大调整,而且安全性也大大提高,所以给大家分享这两个最新的。


问:认证模式,使用前后有何变化?

:对于Mongo DB:

对于Elastic:

文章中对于这两块 也都有详细及配图说明。

这里介绍下x-pack和head 前后重大变化:

这里是x-pack体现的之前marvel的监控和查询基本功能以及sheld的权限管理模块截图。

对于head插件使用:

认证前,head插件已经无法起作用。认证后,才能具备之前的集群管理功能。至于应用服务端,对于认证前后的使用变化,我在文章中也有实际代码可以参考。


问:Elasticsearch增加Xpack后对性能有影响吗?

:x-pack运行依赖 kibana 和 es两者,主要通过kibana完成监控和日志收集,es中相当于一个过滤器存在,和之前相比,仅仅在获取客户端时增加了权限认证,之后所有操作都和之前一样,所以性能上基本没有影响。


问:增加了权限管理之后之前直接在服务器上执行curl 命令的是否有影响?

:执行每个命令都需要增加权限认证,比如现在让一个系统用户失效:

 curl-XPUT—user elastic:light2017    'http://localhost:9200/_xpack/security/user/esTcpConnecter/_disable'

索引管理工作同样如此。

浏览器端使用,会显示提醒 输入用户和密码,否则无法访问。


问:有没有办法监控ES 当前在执行的任务,比如有多少index和search 动作?

:ES中新增了集群监控,如下图:

有index层级、node层级和cluster层级的,相关动作这里应该可以有所体现。


问:最近碰到一些搜索需要index之间的关联查询,这一块有什么好的处理方式吗?

:关联查询虽然ES 也支持这种功能,但比较适合一个大表和一个小表的关联,对于多对多的使用,而且每个表数据量都很大,效率会很低。可以考虑拆分 多次查询完成。或者借助第三方网络缓存数据库Redis或本地缓存guava cache。


问:大家都说MongoDB坑太多了,你怎么看呢?

:坑是不少,它本身也在不断完善中,性能也在不断提升,应对一般日常应用应该还是没问题的,我们也要看到它的发展,以后会越来越好。尤其是3.0出现后,性能得到很大提升,单表应对亿级行,查询性能还是非常快的。


问: 请问shield有替代方案吗?

答:shield已经被x-pack集成到里面了。Mongo中嵌套二级索引、复合索引、稀疏索引,这些对于查 询性能都有很大提高。本来MongoDB3.0出来前,tokumx已经有替代它的趋势,但3.0出现后,又恢复了MongoDB在NoSQL届的王者霸气!


(以上内容转自GitChat,版权归GitChat所有,转载请联系GitChat,微信号:GitChat,原文: 《王成光:MongoDB和Elastic数据安全问题实战解析》