Контроль доступа Elasticsearch на основе значения поля

В настоящее время я изучаю стек ELK (Elasticsearch, Logstash, Kibana) для централизованного анализа файла журнала.

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

Все документы содержат поле под названием application, например "application": "superapp".

Теперь мы ищем способ реализовать контроль доступа следующим образом:

A) Superuser: способен видеть записи в журнале всех приложений.

Б) Разработчик: может видеть только записи в журнале приложений, которые ему разрешены. Например, команда разработчиков для приложения "superapp" должна видеть только записи для этого приложения.

Чтобы подвести итог: нам нужен контроль доступа на основе значения в полевом приложении.

Читая документацию по Elastisearch и Shield, я не мог найти очевидный способ сделать это.

Есть идеи, как мы могли бы реализовать это таким образом, чтобы это также работало с Кибаной 3 и 4?

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

1 ответ

Решение

Я задал этот вопрос здесь, в Glasgare FlexibleSearch, и получил ответ:

"Вы можете разделить различные типы журналов на их собственные индексы, что значительно упростит задачу, вы также можете настроить псевдоним с фильтром и затем предоставить доступ к этому псевдониму для определенных пользователей. В настоящее время КБ не является многопользовательским, но это функция, которая будет добавлена, вам нужно будет настроить несколько экземпляров, каждый из которых будет иметь свой псевдоним ".

Подводя итог, необходимо рассмотреть многопользовательский режим на внешнем интерфейсе (Kibana) и серверном (Elasticsearch).

Интерфейс: используйте прокси для Kibana
https://github.com/salyh/elastic-defender
https://github.com/fangli/kibana-authentication-proxy

Backend: несколько подходов с использованием отфильтрованных псевдонимов и шаблонов псевдонимов
Ограничение индексов и операций
Подделка индекса на пользователя с псевдонимами -
http://engineering.aweber.com/using-elasticsearchs-aliases/
http://opennomad.com/content/controlling-access-elasticsearch-filtered-aliases-nginx-and-tokens

Другие вопросы по тегам