2012-03-31 128 views

回答

61

此答案中提到的插件不再被積極支持。


elasticsearch沒有內置的訪問控制。因此,您需要設置一個反向代理(這裏是一個blog post如何設置nginx),使用第三方彈性搜索插件之一,如https://github.com/Asquera/elasticsearch-http-basic或使用官方安全插件Shield

+0

非常感謝您的提示。有關elasticsearch-http-basic的任何經驗?是好是壞? – 2012-12-10 13:29:20

+0

反向代理(例如nginx)會爲您提供更多安全選項,包括SSL支持。 – Andrew 2013-01-18 16:27:21

+4

這裏也是ElasticSearch的廚師菜譜,它提供了一種簡單的方法來使用Nginx與反向代理一起安裝ElasticSearch。 https://github.com/elasticsearch/cookbook-elasticsearch – 2014-02-03 22:19:18

6

更新:該作品非常好,是(對於moste功能)免費和開放源代碼:https://github.com/floragunncom/search-guard

注:在這篇文章中提到的插件將不再被保持


也許這有助於:https://github.com/salyh/elasticsearch-security-plugin

這個插件添加http/rest安全功能到Elasticsearch in一種獨立的模塊。使用嵌入式Tomcat 7代替Netty來處理http/rest請求。

當前用於基於用戶的身份驗證和授權通過第三方庫華夫餅乾(僅在Windows服務器上)支持Kerberos和NTLM。對於UNIX服務器,通過第三方庫tomcatspnegoad支持Kerberos(適用於任何kerberos實現,對於授權,Active Directory和通用LDAP均受支持)。

您也可以在不使用Kerberos/NTLM的情況下使用此插件,但只有基於主機的身份驗證可用。

3

如果你想使用Kibana3的基本身份驗證,這裏是我的解決方案:

https://github.com/fangli/kibana-authentication-proxy

不僅支持BASICAUTH ES的後端,也GoogleOAuth和基本驗證客戶端。如果它適合你,請給它一顆星星,謝謝。

+0

你能提供一些關於如何使用它的鏈接嗎?我安裝了它並創建了ap,但沒有在網上找到任何有關使用的幫助。 – 2015-02-12 04:47:15

1

關於具體的解決這個問題,我對面即是一個簡單實現的反向代理的方式在其他的答案中提到的以下運行:

https://gist.github.com/jpluscplusm/9227777

一個簡單的警告,似乎至少有些Elasticsearch本身並不認爲nginx是最佳解決方案,但我認爲這取決於您的身份驗證要求(RBAC,用戶數量,索引數量,訪問列表修改頻率)的具體情況。對於一些用戶(包括我自己),第一個例子就足夠了。

http://www.elasticsearch.org/blog/restricting-users-kibana-filtered-aliases/

如果您發現您的要求具體的arent nginx的滿足,這樣的事情可能工作:https://github.com/lukas-vlcek/node.es

3

嘗試Shield。它具有認證和授權。目前它需要許可證。在人們創建類似的開源插件之前不會太長。

1

由於ElasticSearch是一種數據庫服務,您可能不希望它公開發表任何內容。

我不信任插件爲我做這件事,所以我做了一個nginx代理。

本教程是非常非常有幫助的:

http://www.minvolai.com/blog/2014/08/Setting-up-a-Secure-Single-Node-Elasticsearch-server-behind-Nginx/Setting-up-a-Secure-Single-Node-Elasticsearch-server-behind-Nginx/

+1

我知道你不信任它們,但是如果你沒有權限訪問內部的ElasticSearch解析器,你不能確定你是否真的實現了索引隔離:) 這就是爲什麼我這樣寫的:https: //github.com/sscarduzio/elasticsearch-readonlyrest-plugin – sscarduzio 2016-04-04 21:11:39

6

<shamelessPlug>

很抱歉,但我對所有這些插件和代理,只有嘗試在HTTP水平捕捉與草率的正則表達式的查詢嚴重懷疑。

你會將可能執行寫操作的所有可能的ES語法正則表達嗎?你如何按索引過濾?如何索引別名?多索引查詢?

執行訪問控制的唯一干淨方式是AFTER ElasticSearch已對 進行了解析查詢。這正是盾所做的!

我寫了一個麻省理工學院許可的插件(readonly-rest-plugin),就是這樣做的。

可以匹配要求:與子網掩碼

  • ✔️主機名,IP和IP

  • ✔️指數(支持通配符)和索引的別名解決

  • ✔ ️HTTP Basic Auth

它也先對於Kibana認證級的支持:)

</shamelessPlug>

1

我非常新手在ElasticSearch,但我覺得X-包插件應該出現在這裏的答案: https://www.elastic.co/guide/en/x-pack/current/index.html

這是我的理解是X -Pack現在是保護ElasticSearch(以及更多)的事實上的標準,包括認證。

+0

X-Pack許可證每個節點花費數千美元。彈性雲包括X-Pack並開始便宜。另一種選擇是第三方插件。 – mtman 2018-03-08 20:26:26