想法:

呵呵,最近还真有些迷恋Elasticsearch DSL语法了,尤其他那设计起来很有道理的RESTful API !

虽然几年前也折腾elasticsearch,但更多的是应付事,当时找了一堆DSL语句来回的套用。 现在我这边正在开发一个应用监控系统,包含各种报表及业务各种趋势展现。随着监控系统的上线,从以前的mysql,慢慢转义到elasticsearch。其他项目现在越来越多的功能都依赖于elasticsearch。 话说很是喜欢他的aggs聚合计算,十分的方便统计出某个时间区间,某个时间间隔,经过query后的聚合结果。

但是对于elasticsearch做数据存储来说,我个人认为最大的遗憾就是权限的控制,更准确的来说是行为的控制。 

文章后续会有更新,但总是被没打招呼的转走,标注下nginx lua elasticsearch权限控制的原文地址, http://xiaorui.cc/2015/11/05/%E4%BD%BF%E7%94%A8nginx-lua%E5%AF%B9elasticsearch%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6/


今天做完数据核对后本打算把脏数据给删掉。结果用postman来操控elasticsearch的时候,忘了加索引id,本来就想根据条件来删掉几条数据,结果sb把doc-type都给干没了。还好是个测试的环境。  我以前写过一篇文章专门陈述了如何针对elasticsearch做权限控制。  这次专门说下如何利用nginx本身做一些es的权限控制, 另外我们用lua控制更细的控制。  nginx自带的一些变量和语法很是简陋,不支持嵌套if,不支持if  and  or,不支持运算。  所以最优的选择是利用nginx lua来控制, 可以进行基本的违规操作过滤,多用户的权限控制,细度可以到cookie token等等。 

这里先说下nginx 全局变量控制elasticsearch权限。

这是最粗暴的控制,不允许直接delete删除index或者type。如果你是 curl -XDELETE http://xiaorui.cc:9000/index_name/type_name ,nginx 会返回给你403 code。

注视下nginx的语法

nginx不支持if and和多层嵌套if

如果你想多层嵌套IF或者if elseif else。请使用nginx lua。

下面是nginx常用的内置变量,可以充分利用起来….  记得以前在腾讯打杂的时候,还总是天天折腾这些内置变量,用这些仅有的东西,来写不简单的逻辑判断。都是坑比的事情。 

写了半天才写到nginx lua防御elasticsearch…. 实在惭愧….  其实我本来想丰富下nginx lua的相关文档。 google了好几篇,感觉写的没深度,但是例子很丰富….  最后通过那粗狂的病句,才知道是我写的文章,只是被爬走了罢了。 有时间我会把以前的nginx lua文章都总结一下。 




对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

使用tornado实现elasticsearch的权限控制

前言:     公司的应用监控平台又要有所变动了,准备把opentsdb给剔除,改用elasticsearch后端存储。去掉opentsdb的原因很简单,因为在数...

阅读全文

发表评论