API роли Elasticsearch для размещения

Я начал использовать API создания роли, и он работает, как ожидалось: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-put-role.html

У меня есть список ролей по умолчанию в elasticsearch, /_security/role, но я не знаю, как создавать следующие роли, и не могу найти для них подходящую документацию.

Я хочу разделить пользователя на основе следующих потребностей:

  1. Роль, которая имеет право выполнять только ЧТЕНИЕ / ЗАПИСЬ во всех индексах в эластичном поиске (эта роль не должна иметь права на СОЗДАНИЕ / УДАЛЕНИЕ индексов.
  2. Роль, которая имеет право выполнять только операции с Кибаной.
  3. Роль, которая имеет право выполнять только операции с Logstash.

person Harry    schedule 01.07.2020    source источник


Ответы (1)


Я хочу разделить пользователя на основе следующих потребностей:

  • Роль, которая имеет право выполнять только операции с Кибаной.
  • Роль, которая имеет право выполнять только операции с Logstash.

когда Создание / обновление роли, вы можете найти все действующие привилегии в привилегии безопасности документации elasticsearch 7.x, затем добавьте / удалите некоторые из них в роли, которую вы обновляете.

Приведенная ниже настройка ролей должна охватывать типичные варианты использования Kibana и Logstash:

  • For Logstash user
    • add manage_index_templates to cluster privilege list
    • добавить create_index и index в список привилегий индексации для каждого шаблона индекса
    • вам может понадобиться create или create_doc в списке привилегий индекса, если вы создаете поле _id документа извне (вместо автоматически сгенерированного идентификатора с помощью elasticsearch)
    • назначьте новую роль, которую вы создали, любым пользователям, которые вам нравятся
# Quick example, with POST request /_security/role/my_logstash_role

{
  "cluster": ["manage_index_templates"],
  "indices": [
    {
      "names": [ "logstash-*", "YOUR_INDEX_PATTERN_2" ],
      "privileges": ["create_index", "index"],
    }
  ],
  "applications": [
    {
      "application": "YOUR_APP_NAME",
      "privileges": [ "YOUR_APP_PRIV" ],
    }
  ],
}
  • For Kibana user
    • add read to indice privilege list, for each index pattern
    • назначьте новую роль, которую вы создали, и встроенную роль kibana_system любым пользователям, которые вам нравятся, обратите внимание, что kibana_system включает (1) привилегию кластера с именем monitor и (2) права доступа к некоторым шаблонам индекса, например .kibana*, .reporting-*, .monitoring-*, которые требуются Кибане.
    • если вы также используете консоль DevTool от Kibana для взаимодействия с REST API elasticsearch вам может потребоваться добавить несколько дополнительных привилегий, таких как _15 _, _ 16 _, _ 17_ ... и т. д. для роли, которая сильно зависит от конечных точек API, которые вы пытаетесь вызвать.
# Quick example, with POST request /_security/role/my_kibana_role

{
  "cluster": [],
  "indices": [
    {
      "names": [ "logstash-*", "YOUR_INDEX_PATTERN_2" ],
      "privileges": ["read"],
    }
  ],
  "applications": [
    {
      "application": "YOUR_APP_NAME",
      "privileges": [ "YOUR_CUSTOM_APP_PRIV" ],
    }
  ],
}
person Han    schedule 17.12.2020