Назад | Перейти на главную страницу

Обратный прокси Nginx для elasticsearch - вставка фильтров

У меня есть экземпляр elasticsearch, перед которым сидит обратный прокси Nginx, реализующий механизм контроля доступа на уровне URL - примерно так, как описано в Эта статья

Это дает мне детализацию по индексу, что очень удобно.

Однако я пытаюсь выяснить следующее: могу ли я применить критерии общего фильтра, исключающие результаты поиска и прямого извлечения документов?

Я думаю о «групповой» модели, где документы в моих индексах помечены по группам, а пользователи могут видеть только результаты и документы для своей группы.

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

Я взглянул на псевдонимы - похоже, это на 90% делает то, что я хочу, в том смысле, что я могу ограничить поиск псевдонимом. Но в таком случае я не могу заблокировать прямой запрос GET с (неавторизованным) идентификатором документа.

Есть ли способ сделать это, или я просто на пути в никуда?

Примечание. Одна из причин этого в том, что я пытаюсь использовать довольно стандартную настройку кибаны, и у меня есть перекрывающиеся группы пользователей.

Сегодня, когда я начинал новый проект, работая с Elasticsearch, я провел небольшое исследование и обнаружил Search Guard - безопасность Elasticsearch бесплатно. Очевидно, я не могу судить (пока), насколько хорошо это работает, но хотел оставить здесь указатель на тот случай, если вы или другие все еще ищете (а) решение (я), и в случае, если Shield не может быть использован по каким-либо причинам .

Цитируя веб-сайт, эти особенности:

  • Гибкое управление доступом на уровне REST (на основе пользователей / ролей; на основе псевдонимов, индексов и типов)
  • Гибкое управление доступом на транспортном уровне (на основе пользователей / ролей; на основе псевдонимов, индексов и типов)
  • Безопасность на уровне документов (DLS): извлекать только документы, соответствующие критериям
  • Безопасность на уровне полей (FLS): отфильтровать поля / исходные части из поискового ответа
  • HTTP-аутентификация (базовая, заголовок прокси, SPNEGO / Kerberos, взаимный SSL / CLIENT-CERT)
  • Поддержка сеансов HTTP через файлы cookie
  • Гибкие серверные части аутентификации (LDAP (s) / Active Directory, на основе файлов, заголовок прокси, встроенная Windows через WAFFLE)
  • Гибкие серверные части авторизации (LDAP (s) / Active Directory, на основе файлов, Windows через WAFFLE)
  • Шифрование от узла к узлу через SSL / TLS (транспортный уровень)
  • Уровень безопасности REST через HTTPS (SSL / TLS)
  • Поддержка X-Forwarded-For (XFF)
  • Ведение журнала аудита
  • Анонимный вход / доступ без аутентификации
  • Работает с Kibana 4 и logstash

Но есть и ограничения:

  • При использовании DLS или FLS вы по-прежнему можете выполнять поиск во всех документах / полях, но не все документы / поля возвращаются
  • Контроль доступа на транспортном уровне только с помощью простого имени пользователя и пароля.
  • Нет автоматических многоиндексных фильтров (см. Ниже)
  • В настоящее время мониторинг кластера не требует аутентификации и разрешен всегда (это может измениться в будущем)

Возможно, это будет полезно и полезно для вас или кого-то еще, кто наткнется на этот пост.

Хотя я не могу напрямую ответить на ваш вопрос (+1), я хотел указать, что люди, работающие с elastic, наконец, выслушали все запросы, сделанные людьми, требующими контроля доступа для Elasticsearch и представил Щит. Цитата на сайте:

Благодаря быстрому внедрению Elasticsearch, хранить, искать и анализировать ваши данные стало проще, чем когда-либо. Shield позволяет легко защитить эти данные с помощью имени пользователя и пароля, упрощая при этом вашу архитектуру. Расширенные функции безопасности, такие как шифрование, управление доступом на основе ролей, фильтрация IP и аудит, также доступны, когда они вам нужны.

Ваши данные становятся все более ценным активом. Защитите его паролем с помощью Shield.

Возможно, стоит взглянуть хотя бы на то, соответствует ли это вашим требованиям.