У меня есть экземпляр elasticsearch, перед которым сидит обратный прокси Nginx, реализующий механизм контроля доступа на уровне URL - примерно так, как описано в Эта статья
Это дает мне детализацию по индексу, что очень удобно.
Однако я пытаюсь выяснить следующее: могу ли я применить критерии общего фильтра, исключающие результаты поиска и прямого извлечения документов?
Я думаю о «групповой» модели, где документы в моих индексах помечены по группам, а пользователи могут видеть только результаты и документы для своей группы.
Теперь я знаю, что могу сделать индекс для каждой группы и применить элементы управления на уровне URL. Это может быть моим обходным решением, если я не могу этого сделать.
Я взглянул на псевдонимы - похоже, это на 90% делает то, что я хочу, в том смысле, что я могу ограничить поиск псевдонимом. Но в таком случае я не могу заблокировать прямой запрос GET с (неавторизованным) идентификатором документа.
Есть ли способ сделать это, или я просто на пути в никуда?
Примечание. Одна из причин этого в том, что я пытаюсь использовать довольно стандартную настройку кибаны, и у меня есть перекрывающиеся группы пользователей.
Сегодня, когда я начинал новый проект, работая с Elasticsearch, я провел небольшое исследование и обнаружил Search Guard - безопасность Elasticsearch бесплатно. Очевидно, я не могу судить (пока), насколько хорошо это работает, но хотел оставить здесь указатель на тот случай, если вы или другие все еще ищете (а) решение (я), и в случае, если Shield не может быть использован по каким-либо причинам .
Цитируя веб-сайт, эти особенности:
Но есть и ограничения:
Возможно, это будет полезно и полезно для вас или кого-то еще, кто наткнется на этот пост.
Хотя я не могу напрямую ответить на ваш вопрос (+1), я хотел указать, что люди, работающие с elastic, наконец, выслушали все запросы, сделанные людьми, требующими контроля доступа для Elasticsearch
и представил Щит. Цитата на сайте:
Благодаря быстрому внедрению Elasticsearch, хранить, искать и анализировать ваши данные стало проще, чем когда-либо. Shield позволяет легко защитить эти данные с помощью имени пользователя и пароля, упрощая при этом вашу архитектуру. Расширенные функции безопасности, такие как шифрование, управление доступом на основе ролей, фильтрация IP и аудит, также доступны, когда они вам нужны.
Ваши данные становятся все более ценным активом. Защитите его паролем с помощью Shield.
Возможно, стоит взглянуть хотя бы на то, соответствует ли это вашим требованиям.