天天看点

【笔记】ElasticSearch不使用xpack开启认证

xpack的开启认证也就是最近的几个ES版本才有的事,那对于老版本的ES怎么办呢。后面你的LDAP是准备收费么,项目成名的果然噱头也是越来越多。下面我们就来直接绕过xpack开启认证,来个让所有版本包括新版本都适用的方法。其实原理非常简单。

如果用的是VM,那最简单不过了:

比如在一个datacenter上,使用2个网络;

就是说每个VM有两张网卡,

一个网络内部使用(isolated,下面用

I

表示),

一个网络是连通外部的(public,下面用

P

表示)。

这样让ES cluster的通讯都在网络

I

上,

说白了,就是让ES绑定的端口是第一张网卡对应网络

I

,比如

192.168.100.x

然后再搭来一个nginx,绑定在第二张网卡对应网络

P

,比如

10.0.0.x

这个nginx去proxy ES比如

192.168.100.x:9200

,当然顺便加个basic auth还是很简单。

如果想更复杂的认证,可以golang python nodejs使用三方库写一个简单的proxy,然后在request的时候先认证再proxy就好了,这样LDAP,SAML神马都可以了。

想用HTTP还是HTTPS也随意。

不过既然都想认证了,还是HTTPS加密所有数据比较好。

不过至于网络

I

,如果有能力保证它绝对isolated,HTTP也蛮好,速度还快;网络

P

应该HTTPS没问题。

若果是container:

呃,其实网络已经被kubernetes隔离好了,

还是想flannel搭子网还是NetworkPolicy限制Pod网络?

然后,套个wrapper就好了嘛……

Enjoy!

题外话:虽然在第一段进行了吐槽;但是我们还是要肯定ElasticSearch的发展;从一个OpenSource project,慢慢开始start它的business,确实是一个学习的榜样。现在的x-pack只是它在商业领域寻求赚钱的方式。作为一个技术人员当然会指指点点这些商业行为,对于没钱没势力的草根当然是免费为上。

继续阅读