Pionas wspomniał w jednym z poprzednich wpisów, że w cyklu brakuje mu artykułu na temat zabezpieczenia naszego Elasticsearcha przed działaniami osób nieuprawnionych.

Długo podchodziłem do tego tematu, a okazał się on banalnie prosty – Elasticsearch, w darmowej wersji, nie dostarcza żadnych funkcjonalności pomagających zabezpieczyć go przed nieuprawnionym dostępem.

Dziękuję.

Do widzenia.

Koniec.

Cykl artykułów "Uczymy się Elasticsearch"

Ten wpis jest częścią cyklu, w którym staram się pokazać w jaki sposób możesz zbudować przyjazną dla użytkownika wyszukiwarkę, wykorzystując do tego celu potężny silnik wyszukiwania jakim jest Elasticsearch.

Do tej pory w ramach cyklu ukazały się następujące artykuły:

  1. instalacja, uruchomienie i pierwsze zapytanie
  2. kilka słów na temat Elastic Stack
  3. przydatne narzędzia
  4. indeks odwrócony Apache Lucene
  5. wyszukiwanie pełnotekstowe
  6. trafność
  7. przygotowanie tekstu do optymalnego wyszukiwania
  8. coś poszło nie tak, czyli seria moich fackupów
  9. zaczarowany zakreślacz
  10. o co jeszcze możemy zapytać?
  11. schowaj się za aliasem
  12. zadbaj o bezpieczeństwo
  13. wstępne procesowanie dokumentów przed indeksowaniem
  14. ...

Jak żyć?

Ale jak to? Nic? Zero? Nada? Null?

Zgadza się. W darmowej wersji nie ma niczego, co pomogłoby nam zabezpieczyć naszą instancję Elasticsearcha.

Co więc oferuje firma Elastic ze swojej strony?

Security Feature (dawniej X-Pack)

Nie jest tak, że Elastic nie daje nic. Firma dostarcza jedyny i rekomendowany (jakże mogłoby być inaczej) sposób zabezpieczenia naszego Elasticsearcha w postaci czegoś, co nazywa się Security Feature.

Do niedawna Feature’y były znane pod nazwą X-Pack, jednak tak jak i inne elementy przeszły mały rebranding.

Niestety, tak jak wspomniałem, funkcjonalność jest dostępna jedynie po wykupieniu płatnej subskrypcji w wersji gold lub platinum (wcześniej możemy wszystko przetestować korzystając z 30-dniowej wersji próbnej):

Jak widać na załączonym obrazku subskrypcja musi kosztować solidne pieniądze (albo być uzależniona od wielu czynników) jeżeli na stronie brakuje choćby ceny wyjściowej.

Co otrzymujemy?

Naprawdę sporo. Od autoryzacja i uwierzytelniania, poprzez szyfrowanie i log dokonywanych zmian, aż po ustawienia dostępu do poszczególnych indeksów, dokumentów, czy nawet pól. Nie ma na co narzekać. No może poza ceną jaką musimy za to zapłacić.

Alternatywy

Jak to zwykle w świecie oprogramowania bywa – na każdy „płatny problem” znajdzie się kilka darmowych (przynajmniej częściowo) alternatyw. Nie inaczej jest i w tym przypadku. Szczególnie, że Elasticsearch, poprzez system wtyczek, bardzo ułatwia takie działania.

Po chwili poszukiwań znalazłem dwa solidnie wyglądające zamienniki, a także jeden nieco bardziej „amatorski” (przynajmniej marketingowo), ale również intensywnie rozwijany.

Search Guard

Pierwszą z alternatyw jest Search Guard. W chwili pisania tego wpisu udostępnia trzy wersje, z czego dwie są płatne, a jedna bezpłatna z otwartym kodem.

ReadonlyREST

Analogicznie do Search Guard wygląda ReadonlyREST. Podobnie jak ten pierwszy posiada trzy podstawowe warianty, z czego jeden jest bezpłatny. W odróżnieniu do oprogramowania Search Guard, kod ReadonlyREST nie został otwarty.

Patrząc po listach dostępnych opcji obydwu rozwiązań wydaje się, że darmowe wersje spełnią oczekiwania naszych „domowych” projektów, a być może przeżyją również na produkcji 😉

Minusem może być nienadążanie za kolejnymi wersjami Elasticsearcha, brak kompatybilności lub słabe wsparcie społeczności w „cięższych” przypadkach. Zaznaczam jednak, że sam nie testowałem ich na tyle, żeby stwierdzić rzeczywiste pojawienie się którejś z tych wad.

ProxES

Ostatnim,  nieco „uboższym” projektem, który zwrócił moją uwagę jest ProxES stworzony przez EagerELK. Nie dostarcza on tak szerokiej gamy funkcjonalności jak dwa powyższe, ale mimo tego może okazać się dla Ciebie przydatny.

Podsumowanie

Przyznam szczerze, że nie przetestowałem wystarczająco wszystkich wymienionych przeze mnie rozwiązań, żeby dzielić się tutaj detalami konfiguracyjnymi i przykładami możliwości. IMHO zawarcie wszystkiego w jednym artykule rozciągnęłoby go w nieskończoność.

Stwierdziłem, że jeżeli będzie zainteresowanie (wyrażone w komentarzach poniżej), to postaram się przygotować odrębne artykuły na temat każdego z wymienionych narzędzi. W ten sposób będą lżejsze do strawienia na raz 😉

Na koniec mam do Ciebie ogromną prośbę. Jeżeli udało Ci się przetestować któreś z powyższych rozwiązań „produkcyjnie” i masz większe doświadczenie na jego temat, to podziel się nim proszę w komentarzu poniżej. Na pewno skorzystają na tym inni czytelnicy. Jeśli znasz inne, godne polecenia alternatywy zabezpieczenia Elasticsearcha, to również śmiało o nich napisz. Chętnie się czegoś nauczę 🙂


Bądź na bieżąco!

Podobają Ci się treści publikowane na moim blogu? Nie chcesz niczego pominąć? Zachęcam Cię do subskrybowania kanału RSS, polubienia fanpage na Facebooku, zapisania się na listę mailingową:




Uwaga! Jeżeli w ciągu 24-godzin od zapisania się na listę mailingową nie otrzymasz wybranego przez siebie prezentu to skontaktuj się ze mną.

Zgoda? Zapisując się do newslettera wyrażasz zgodę na przesyłanie Ci starannie wyselekcjonowanych informacji marketingowych. Powyższe dane są przechowywane w systemie MailChimp i nie są udostępniane nikomu więcej.

lub śledzenia mnie na Twitterze. Generalnie polecam wykonanie wszystkich tych czynności, bo często zdarza się tak, że daną treść wrzucam tylko w jedno miejsce. Zawsze możesz zrobić to na próbę, a jeśli Ci się nie spodoba – zrezygnować :)

Dołącz do grup na Facebooku

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do powiązanych grup na Facebooku, gdzie znajdziesz dodatkowe informacje na poruszane tutaj tematy, możesz podzielić się własnymi doświadczeniami i przemyśleniami, a przede wszystkim poznasz ludzi interesujących się tą samą tematyką co Ty.

W grupie Programista Na Swoim znajdziesz wiele doświadczonych osób chętnych do porozmawiania na tematy krążące wokół samozatrudnienia i prowadzenia programistycznej działalności gospodarczej. Vademecum Juniora przeznaczone jest zaś do wymiany wiedzy i doświadczeń na temat życia, kariery i problemów (niekoniecznie młodego) programisty.

Wesprzyj mnie

Jeżeli znalezione tutaj treści sprawiły, że masz ochotę wesprzeć moją działalność online, to zobacz na ile różnych sposobów możesz to zrobić. Niezależnie od tego co wybierzesz, będę Ci za to ogromnie wdzięczny.

Na wsparciu możesz także samemu zyskać. Wystarczy, że rzucisz okiem na listę różnych narzędzi, które używam i polecam. Decydując się na skorzystanie z któregokolwiek linku referencyjnego otrzymasz bonus również dla siebie.

Picture Credits