web-dev-qa-db-ja.com

Elasticsearchでの認証

Elasticsearchでセキュリティアクセスを定義するにはどうすればよいですか? elasticsearch-headプラグインを持っていますが、アクセスにはセキュリティは必要ありません。

75
Bruce

この回答に記載されているプラ​​グインは、積極的にサポートされなくなりました。


Elasticsearchには組み込みのアクセス制御はありません。そのため、リバースプロキシを設定する必要があります(こちらは ブログ投稿 nginxの設定方法です) https://github.comなどのサードパーティのelasticsearchプラグインのいずれかを使用します/ Asquera/elasticsearch-http-basic または公式のセキュリティプラグイン Shield を使用します。

63
imotov

<shamelessPlug>

すみませんが、HTTPレベルでのずさんな正規表現を使用してクエリをキャプチャしようとするだけのプラグインとプロキシについては、深刻な疑問があります。

書き込みを実行する可能性のあるすべての可能なES構文を正規表現しますか?インデックスでどのようにフィルタリングしますか?インデックスエイリアスはどうですか?マルチインデックスクエリ?

アクセス制御を行うための唯一のクリーンな方法は、ElasticSearchがクエリを解析した後です。これはまさにシールドがやることです!

私はMITライセンスプラグイン( readonly-rest-plugin )を作成しました。

次の方法でリクエストを照合できます。

  • ✔️ホスト名、IP、およびネットマスク付きIP

  • ✔️インデックス(ワイルドカードをサポート)およびインデックスエイリアスが解決されました

  • ✔️HTTP基本認証

また、Kibana認証のファーストクラスのサポートもあります:)

</shamelessPlug>

10
sscarduzio

Elasticsearchにセキュリティプラグインが追加されました http://www.elasticsearch.org/blog/shield-know-security-coming-soon/

7
AhmedAlawady

Update:これは非常にうまく機能し、(ほとんどの機能について)無料でオープンソースです: https://github.com/floragunncom/search-guard

注:この記事に記載されているプラ​​グインは現在メンテナンスされていません


多分これが役立ちます: https://github.com/salyh/elasticsearch-security-plugin

このプラグインは、http/restセキュリティ機能をElasticsearchに別個のモジュールの種類で追加します。 Nettyの代わりに、組み込みTomcat 7を使用してhttp/rest要求を処理します。

現在、ユーザーベースの認証と承認のために、サードパーティのライブラリワッフルを介してKerberosとNTLMがサポートされています(Windowsサーバーのみ)。 UNIXサーバーの場合、Kerberosはサードパーティのライブラリtomcatspnegoadを介してサポートされます(ケルベロスの実装で動作します。認証にはActive Directoryと汎用LDAPのいずれかがサポートされます)。

このプラグインはKerberos/NTLMなしでも使用できますが、使用できるのはホストベースの認証のみです。

6
salyh

Elasticsearchでセキュリティを有効にする唯一の望ましい方法は、X-Packプラグインを使用することです。

https://www.elastic.co/guide/en/x-pack/current/xpack-introduction.html

これは多目的プラグインであり、監視を使用して、必要に応じてアラートと通知を構成することもできるため、セキュリティの目的に適しています。

既に非常によく知られているので、Elasticsearchはログインのためにこれを続行します。

4
rohithnama

私はElasticSearchは非常に初心者ですが、X-Packプラグインは答えとしてここに表示されるはずです: https://www.elastic.co/guide/en/x-pack/current/index.html

X-Packは現在、認証を含むElasticSearch(およびその他)を保護するための事実上の標準であると理解しています。

3
pinkasey

Shield を試してください。認証と承認があります。今のところ、ライセンスが必要です。人々が同様のオープンソースプラグインを作成するまで、それほど長くはかからないでしょう。

3

Kibana3で基本認証を使用する場合は、次のソリューションを使用します。

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

BasicAuth ESバックエンドだけでなく、クライアントのGoogleOAuthとBasicAuthもサポートします。それがあなたのために働くなら、星を与えてください、ありがとう。

3
Felix

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 /

2
Panthro

この問題の具体的な解決策について、他の回答で言及されているように、リバースプロキシアプローチの簡単な実装である次のものに遭遇しました。

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

注意点として、少なくともElasticsearchの一部ではnginxを最適なソリューションとは見なしていないようですが、認証要件の詳細(RBAC、ユーザーカウント、インデックスの数、アクセスリストの変更の頻度に依存すると思います) )。一部のユーザー(自分自身を含む)では、最初の例で十分です。

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

要件の詳細がnginxによって満たされていることがわかった場合、次のように機能する可能性があります。 https://github.com/lukas-vlcek/node.es

2
wjimenez5271