0、背景
2019年5月21日,Elastic官方釋出消息: Elastic Stack 新版本6.8.0 和7.1.0的核心安全功能現免費提供。
這意味着使用者現在能夠對網絡流量進行加密、建立和管理使用者、定義能夠保護索引和叢集級别通路權限的角色,并且使用 Spaces 為 Kibana
提供全面保護。 免費提供的核心安全功能如下:
1)TLS 功能。 可對通信進行加密;
2)檔案和原生 Realm。 可用于建立和管理使用者;
3)基于角色的通路控制。 可用于控制使用者對叢集 API 和索引的通路權限;
通過針對 Kibana Spaces 的安全功能,還可允許在Kibana 中實作多租戶。
網上千篇一律都是這篇通稿,不實踐一把,感覺還是不好了解。
結合大家最關心的問題,從下面幾個認知次元,對Elasticsearch安全進行全面探讨。
1、x-pack演變

- 5.X版本之前:沒有x-pack,是獨立的:security安全,watch檢視,alert警告等獨立單元。
- 5.X版本:對原本的安全,警告,監視,圖形和報告做了一個封裝,形成了x-pack。
- 6.3 版本之前:需要額外安裝。
- 6.3版本及之後:已經內建在一起釋出,無需額外安裝,基礎安全屬于付費黃金版内容。 7 .1版本:基礎安全免費。
2、開源!=免費
2018年2月28日X-Pack 特性的所有代碼開源,主要包含:
Security、Monitoring、Alerting、Graph、Reporting、專門的 APM UI、Canvas、Elasticsearch SQL、Search Profiler、Grok Debugger、Elastic Maps Service zoom levels 以及 Machine Learning。
2019年5月21日免費開放了文章開頭的基礎安全功能,在這之前的版本都是僅有1個月的适用期限的。
如下功能點仍然是收費的。
付費黃金版&白金版提供功能:
- 稽核日志
- IP 篩選
- LDAP、PKI*和活動目錄身份驗證
- Elasticsearch 令牌服務
付費白金版提供安全功能:
- 單點登入身份驗證(SAML、Kerberos*)
- 基于屬性的權限控制
- 字段和文檔級别安全性
- 第三方整合(自定義身份驗證和授權 Realm)
- 授權 Realm
- 靜态資料加密支援
- FIPS 140-2 模式
官方位址:
https://www.elastic.co/cn/subscriptions3、安全部分免費之前,大家怎麼保證基礎安全?
場景一:全部“裸奔”,相信這在國内占據了非常大的比重。
内網部署,不對外提供服務。或者ES作為業務基礎支撐,不公網開放9200等常用端口,開放的是業務的服務端口。
可能暴露問題:公司或團隊内部開放9200、5601端口,基本head插件、kibana都能連接配接,極易導緻線上索引或資料可能被誤删。
場景二:加了簡單防護。
一般使用Nginx身份認證+防火牆政策控制。
場景三:整合使用了第三方安全認證方案。
比如:SearchGuard、ReadonlyREST。
場景四:付費購買了Elastic-Xpack黃金版或白金版服務。
一般是銀行等土豪大客戶,對安全、預警、機器學習等付費功能需求迫切,如:甯波銀行付費購買白金服務。
4、基于免費安全認證,我們能做什麼?
4.1 TLS 功能。
可對通信進行加密。
實踐一把。在本機win10環境,部署了2節點7.1叢集。
部署官網已經介紹非常詳細了:
https://www.elastic.co/cn/blog/getting-started-with-elasticsearch-security核心步驟:
第一步:下載下傳+基礎配置,2ES node+1kibana。
第二步:配置TLS和認證。
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
注意:
1、此配置适用于具有多個節點的叢集以及具有偵聽外部接口的單個節點的叢集。
2、使用環回接口的單節點叢集沒有此要求。
第三步:設定ES等相關登入密碼。
bin/elasticsearch-setup-passwords auto
自動生成相對安全,也可以手動設定密碼。
第四步:配置kibana。
自此,多節點叢集之間的通信在傳輸層通過加密通信加了安全性(TLS / SSL)保護。
4.2 檔案和原生 Realm。
可用于建立和管理使用者。
head插件安全登入:
kibana安全登入:
相比于未使用x-pack安全防護的叢集,節點之間的通信wireshark抓包已不能解密。
4.3 基于角色的通路控制。
可用于控制使用者對叢集 API 和索引的通路權限;
通過針對 Kibana Spaces 的安全功能,還可允許在 Kibana 中實作多租戶。
權限部分分解為3個次元(相對不嚴謹,Space更偏向于Kibana次元):
1、Space次元、
2、角色次元、
3、使用者次元。
Space是Elastic6.5版本引入的新特性,便于便于企業分組管理。
比如:開發、測試、運維、産品可以是不同的視角。
角色:設定Elasticsearch資料的權限并控制對Kibana空間的通路。
使用者:關聯對應的角色。1個角色下可以有多個使用者,但一個使用者唯一對應一個角色。
4.4 其他
不盡興怎麼辦? 其他内容待實踐後補充完善。
5、小結
關于安全:之前文章“你的Elasticsearch在“裸奔”嗎?”有過總結,“裸奔”Elastic叢集的風險非常大,我們必須提前加強重視。
關于費用:中小企業客戶基本是沒有也不可能付費買商業版的(坊間傳聞:x-pack黃金版40000+每年;白金版60000+每年)。基礎安全免費給大家帶來非常利好的消息。
關于選型:Elastic7.1的基礎安全免費,基本解決了中小企業的安全問題,在後續7.X版本的選型中,7.1 較7.0更有鮮明的安全特點,應該優先選擇。
參考:
1、5.X x-pack:
https://www.elastic.co/cn/blog/heya-elastic-stack-and-x-pack2、
銘毅天下——Elasticsearch基礎、進階、實戰第一公衆号