Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Защитите Elastic Stack ›Авторизация пользователей

Безопасность на уровне документов

Безопасность на уровне документов ограничивает доступ пользователей к документам. В частности, она ограничивает, какие документы могут быть получены из API чтения документов.

Для включения безопасности на уровне документов используется запрос, определяющий документы, к которым каждый роль может получить доступ. Документ query связан с определенным потоком данных, индексом или подстановочным знаком (*) и работает совместно с правами, указанными для потоков данных и индексов.

Указанный документ query:

  • Ожидает тот же формат, что и при определении в запросе поиска
  • Поддерживает шаблонизацию запроса роли, которая может получить доступ к данным текущего аутентифицированного пользователя
  • Принимает запросы, записанные как строковые значения или вложенные JSON
  • Поддерживает большинство Elasticsearch Языка запросов (DSL), с некоторыми ограничениями для безопасности на уровне полей и документов

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

Следующее определение роли предоставляет доступ для чтения только к документам, принадлежащим категории click во всех потоках данных и индексах events-*:

POST /_security/role/click_role
{
  "indices": [
    {
      "names": [ "events-*" ],
      "privileges": [ "read" ],
      "query": "{\"match\": {\"category\": \"click\"}}"
    }
  ]
}

Этот же запрос можно записать с использованием вложенного синтаксиса JSON:

POST _security/role/click_role
{
  "indices": [
    {
      "names": [ "events-*" ],
      "privileges": [ "read" ],
      "query": {
        "match": {
          "category": "click"
        }
      }
    }
  ]
}

Следующая роль предоставляет доступ для чтения только к документам, у которых department_id равно 12:

POST /_security/role/dept_role
{
  "indices" : [
    {
      "names" : [ "*" ],
      "privileges" : [ "read" ],
      "query" : {
        "term" : { "department_id" : 12 }
      }
    }
  ]
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/document-level-security.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API