2012-03-31 24 views

Odpowiedz

61

Wtyczka wymieniona w tej odpowiedzi nie jest już aktywnie obsługiwana.


Nie ma wbudowanej kontroli dostępu w elastycznym wyszukuwaniu. Tak więc, musisz skonfigurować odwrotne proxy (tutaj jest blog post jak skonfigurować nginx), użyj jednej z wtyczek elasticsearch innych firm, takich jak https://github.com/Asquera/elasticsearch-http-basic lub użyj oficjalnej wtyczki bezpieczeństwa Shield.

+0

Wielkie dzięki za podpowiedź. Wszelkie doświadczenia z elasticsearch-http-basic? Dobry czy zły? –

+0

Odwrotny serwer proxy, taki jak nginx, oferuje więcej opcji zabezpieczeń, w tym obsługę SSL. – Andrew

+4

Tutaj również znajduje się książka kucharska dla ElasticSearch, która zapewnia łatwy sposób instalacji ElasticSearch z odwrotnym proxy przy użyciu Nginx. https://github.com/elasticsearch/cookbook-elasticsearch –

6

Aktualizacja: Ta praca bardzo dobrze i jest (dla funkcji moste) za darmo i open source: https://github.com/floragunncom/search-guard

UWAGA: Wtyczka wymienione w tym artykule nie jest już utrzymywany


Może to pomaga: https://github.com/salyh/elasticsearch-security-plugin

Ta wtyczka dodaje funkcję bezpieczeństwa http/rest do Elasticsearch w rodzaj oddzielnych modułów. Zamiast Netty osadzony Tomcat 7 jest używany do przetwarzania żądań HTTP/reszta.

Obecnie do uwierzytelniania i autoryzacji na podstawie użytkownika Kerberos i NTLM są obsługiwane przez wafle biblioteki firm trzecich (tylko na serwerach Windows). W przypadku serwerów UNIX protokół Kerberos jest obsługiwany przez trzecią bibliotekę tomcatspnegoad (działa z każdą implementacją Kerberos, w celu autoryzacji obsługiwana jest usługa Active Directory i ogólny protokół LDAP).

Możesz używać tej wtyczki również bez protokołu Kerberos/NTLM, ale wtedy dostępne jest tylko uwierzytelnianie na podstawie hosta.

3

Jeśli chcesz korzystać z uwierzytelniania podstawowego z Kibana3, tu jest moje rozwiązanie:

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

Wsparcie nie tylko basicauth ES backend, ale również GoogleOAuth i podstawowego dla klienta. Proszę dać gwiazdę, jeśli to działa, dzięki.

+0

Czy możesz podać kilka linków na temat korzystania z tego? Zainstalowałem go i zrobiłem apa, ale nie znalazłem żadnej pomocy w Internecie na temat użycia. –

1

Odnośnie konkretnego rozwiązania tego problemu, natknąłem się poniżej, która jest prosta implementacja odwrotnego podejścia proxy jak wspomniano w innych odpowiedzi:

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

Jako zastrzeżenie, wydaje się co najmniej niektóre w Elasticsearch nie uznają nginx za optymalne rozwiązanie, ale myślę, że zależy to od specyfiki twoich wymagań uwierzytelniania (RBAC, liczba użytkowników, liczba indeksów, częstotliwość modyfikacji listy dostępu). Dla niektórych użytkowników (w tym dla mnie) pierwszy przykład jest wystarczający.

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

Jeśli okaże się, że specyfika wymaganie arent spełnione przez nginx, coś jak to może działać: https://github.com/lukas-vlcek/node.es

3

Spróbuj Shield.Ma uwierzytelnienie i autoryzację. Na razie potrzebuje licencji. Nie potrwa długo, zanim ludzie stworzą podobne wtyczki open source.

1

Ponieważ usługa ElasticSearch jest usługą bazodanową, prawdopodobnie nie życzyłabyś sobie jej publicznego ujawnienia.

Nie ufam wtyczkom, które to robią dla mnie, więc zrobiłem to z proxy nginx.

Ten poradnik jest bardzo pomocne:

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

Rozumiem, że im nie ufasz, ale nie możesz być pewien, że zrobisz * rzeczywistą * izolację indeksu, jeśli nie masz dostępu do wewnętrznego parsera ElasticSearch :) Dlatego napisałem to: https: //github.com/sscarduzio/elasticsearch-readonlyrest-plugin – sscarduzio

6

<shamelessPlug>

Niestety ale mam poważne wątpliwości co do tych wszystkich wtyczek i prokurentów, że jedynie próbować uchwycić zapytań z niechlujstwa regex na poziomie HTTP.

Czy wypróbujesz całą możliwą składnię ES, która może wykonać zapis? Jak filtrować według indeksu? A co z aliasami indeksu? Zapytania z wieloma indeksami?

Jedyny czysty sposób na kontrolę dostępu jest PO ElasticSearch ma analizowany zapytania. Dokładnie to robi Shield!

Napisałem plugin licencjonowany przez MIT (readonly-rest-plugin), który robi dokładnie to.

można dopasować wniosek:

  • ✔️ nazwę hosta, IP i IP z maskę sieci

  • ✔️ Indeksów (dzikie karty obsługiwane) i aliasów indeksów zostały rozwiązane

  • ✔ ️ HTTP Basic Auth

Ma również pierwsze Klasa wsparcie dla uwierzytelniania Kibana :)

</shamelessPlug>

1

Jestem bardzo początkujący w ElasticSearch, ale czuję, że wtyczki X-Pack powinien pojawić się tutaj jako odpowiedź: https://www.elastic.co/guide/en/x-pack/current/index.html

To jest moje zrozumienie, że X -Pack jest obecnie de facto standardem zabezpieczania ElasticSearch (i wielu innych), w tym uwierzytelniania.

+0

Licencja X-Pack kosztuje tysiące dolarów na węzeł. Elastic Cloud zawiera X-Pack i zaczyna tańsze. Inną opcją są wtyczki innych firm. – mtman

0

Tak, teraz jest to jedyny lepszy sposób na włączenie zabezpieczeń w elastycznym przeszukiwaniu za pomocą wtyczki X-Pack.

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

Jest to wtyczka uniwersalna i będzie dobrze pasować do celów bezpieczeństwa, można również korzystać z monitorowania i konfigurowania alertów i powiadomień, jak na swoje potrzeby.

Jestem pewien, że elastyczna analiza będzie kontynuowana przy logowaniu.