天天看點

【筆記】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隻是它在商業領域尋求賺錢的方式。作為一個技術人員當然會指指點點這些商業行為,對于沒錢沒勢力的草根當然是免費為上。

繼續閱讀