Аутентификация в Elasticsearch - PullRequest
74 голосов
/ 31 марта 2012

Как определить безопасный доступ в Elasticsearch? У меня есть плагин эластичной головки поиска, но ваш доступ не требует никакой безопасности.

Ответы [ 10 ]

63 голосов
/ 01 апреля 2012

Плагин, упомянутый в этом ответе, больше не поддерживается активно.


В эластичном поиске нет встроенного контроля доступа.Таким образом, вам нужно настроить обратный прокси-сервер (здесь сообщение в блоге о том, как настроить nginx), использовать один из сторонних плагинов эластичного поиска, например https://github.com/Asquera/elasticsearch-http-basic, или использовать официальный плагин безопасности. Щит .

10 голосов
/ 05 апреля 2016

<shamelessPlug>

Извините, но у меня есть серьезные сомнения по поводу всех этих плагинов и прокси, которые только пытаются перехватывать запросы с небрежным регулярным выражением на уровне HTTP.

Будете ли вы пересматривать весь возможный синтаксис ES, который может выполнять запись? Как вы фильтруете по индексу? Как насчет индексных псевдонимов? Многоиндексные запросы?

Единственный чистый способ контроля доступа - ПОСЛЕ ElasticSearch. разобрал запросы. Это именно то, что делает Shield в конце концов!

Я написал лицензионный плагин MIT ( readonly-rest-plugin ), который делает именно это.

Вы можете сопоставить запрос по:

  • name Имя хоста, IP и IP с сетевой маской

  • ✔️ Индексы (поддерживаются подстановочные знаки) и псевдонимы индекса разрешаются

  • ✔️ Базовая аутентификация HTTP

Также имеется первоклассная поддержка аутентификации Kibana:)

</shamelessPlug>

7 голосов
/ 23 декабря 2014

Elasticsearch теперь имеет плагин безопасности http://www.elasticsearch.org/blog/shield-know-security-coming-soon/

6 голосов
/ 20 ноября 2013

Обновление : Это работает довольно хорошо и является (для функций moste) бесплатным и открытым исходным кодом: https://github.com/floragunncom/search-guard

ПРИМЕЧАНИЕ: Плагин, упомянутый в этомстатья больше не поддерживается


Может быть, это поможет: https://github.com/salyh/elasticsearch-security-plugin

Этот плагин добавляет функции безопасности http / rest к Elasticsearch в виде отдельных модулей.Вместо Netty для обработки запросов http / rest используется встроенный Tomcat 7.

В настоящее время для аутентификации и авторизации на основе пользователей Kerberos и NTLM поддерживаются сторонними библиотеками (только на серверах Windows).Для серверов UNIX Kerberos поддерживается через стороннюю библиотеку tomcatspnegoad (Работает с любой реализацией Kerberos. Для авторизации поддерживается Active Directory и универсальный LDAP).

Этот плагин можно использовать также без Kerberos / NTLM, но только с хостомдоступна аутентификация на основе.

4 голосов
/ 12 сентября 2017

Единственный предпочтительный способ включить безопасность в Elasticsearch - через плагин X-Pack.

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

Это многоцелевой плагин, который отлично подойдет для целей безопасности, так как вы также можете использовать мониторинг и настраивать оповещения и уведомления в соответствии с вашими потребностями.

Поскольку это уже широко признано, я уверен, что Elasticsearch продолжит это для входа в систему.

3 голосов
/ 18 апреля 2017

Я очень новичок в ElasticSearch, но я чувствую, что плагин X-Pack должен появиться здесь в качестве ответа: https://www.elastic.co/guide/en/x-pack/current/index.html

Насколько я понимаю, X-Pack теперь является стандартом де-факто дляобеспечение ElasticSearch (и многое другое), включая аутентификацию.

3 голосов
/ 12 февраля 2015

Попробуйте Щит . Имеет аутентификацию и авторизацию. А пока нужна лицензия. Вскоре люди создадут подобные плагины с открытым исходным кодом.

3 голосов
/ 20 декабря 2013

Если вы хотите использовать базовую аутентификацию с Kibana3, вот мое решение:

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

Поддержка не только базового бэкэнда ES ES, но и GoogleOAuth и BasicAuth для клиента. Пожалуйста, дайте звезду, если она работает для вас, спасибо.

2 голосов
/ 30 апреля 2015

Поскольку 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 голосов
/ 24 июля 2014

Что касается конкретного решения этой проблемы, я наткнулся на следующее, которое представляет собой простую реализацию подхода обратного прокси, как упомянуто в других ответах:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...