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