王成光: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 主要新功能:
自3.2起默认存储引擎从MMAP改为性能更优的WiredTiger。
增加了对 只读视图 的支持,视图将集合里满足某个查询条件的数据虚拟成一个特殊的集合,用户可以在特殊的集合上做进一步的查询操作。
增加了大量的 aggregation 操作符,功能更加强大了,支持更复杂的关系运算。
安全性进一步提升,支持轮转的将复制集、或分片集群的各个节点开启鉴权,不需要停服务。
Elastic 5.2 主要新功能:
5.2开始Bootstrap Checks,系统属性设置不合适不能启动ES服务。
过时的queryies去除,像:filterd,and, or —> bool ; missing —> exists; limit —> terminate_after 都被做了替换。
字段定义类型string 不再存在,而是以 text/keyword。 形式存在,二者不同在于:text适用于分词模式,keyword适用于不分词的原子短语方式。
字段属性index 不再接受not_analyzed/no,现在只接受 true/false。
多了x-pack权限认证组件,它集成了之前的shield和Marvel等。
MongoDB 3.4和Elastic 5.2在性能和使用方面都做了重大调整,而且安全性也大大提高,所以给大家分享这两个最新的。
问:认证模式,使用前后有何变化?
答:对于Mongo DB:
shell客户端: 认证前可以直接执行基本的CRUD操作;认证后,必须先认证通过,才能执行CRUD。
Java Client: 也增加了权限选项控制,类似于shell客户端。
对于Elastic:
集群性能监控: Marvel和安全认证shield已经被统一集成到x-pack,功能更完善,使用更方便;
集群管理软件:Head,自5.0起以不再支持插件模式,必须以独立服务启动,认证后,必须增加有相关权限的用户和密码才可以正常使用。
认证前,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数据安全问题实战解析》)
本文转载自异步社区。
原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF9346300001F66DB4901B001B66
- 点赞
- 收藏
- 关注作者
评论(0)