Ограничения безопасности
Плагины
Инфраструктура плагинов Elasticsearch чрезвычайно гибкая в плане расширяемости. Хотя это открывает Elasticsearch для широкого спектра (часто пользовательских) дополнительных функций, в вопросах безопасности эта высокая гибкость имеет свою цену. Мы не контролируем код плагинов сторонних разработчиков (открытый исходный код или нет) и поэтому не можем гарантировать их соответствие функциям безопасности Elastic Stack. По этой причине плагины сторонних разработчиков не поддерживаются в кластерах с включенными функциями безопасности.
Изменения в поведении подстановочных символов
Кластеры Elasticsearch с включенными функциями безопасности применяют _all и другие подстановочные символы к потокам данных, индексам и алиасам, для которых текущий пользователь имеет привилегии, а не ко всем потокам данных, индексам и алиасам в кластере.
API для нескольких документов
API multi get и multi term vectors выбрасывают исключение IndexNotFoundException при попытке доступа к несуществующим индексам, для которых у пользователя нет авторизации. При этом они раскрывают информацию о том, что поток данных или индекс не существует, в то время как у пользователя нет права знать что-либо об этих потоках данных или индексах.
Отфильтрованные алиасы индексов
Алиасы, содержащие фильтры, не являются безопасным способом ограничения доступа к отдельным документам из-за ограничений, описанных в Возможности утечки имен индексов и полей при использовании алиасов. Функции безопасности Elastic Stack предоставляют безопасный способ ограничения доступа к документам через функцию безопасности на уровне документов и полей.
Ограничения безопасности на уровне полей и документов
Когда роль пользователя разрешает безопасность на уровне документов или безопасность на уровне полей для потока данных или индекса:
-
Пользователь не может выполнять операции записи:
- API update не поддерживается.
- Запросы обновления, включенные в запросы bulk, не поддерживаются.
-
Кэш запросов отключается для запросов поиска, если выполняется одно из следующих условий:
- Запрос роли, определяющий безопасность на уровне документов, создан по шаблону с использованием сохраненного скрипта.
- Целевые индексы — это смесь локальных и удаленных индексов.
Когда роль пользователя разрешает безопасность на уровне документов для потока данных или индекса:
- Безопасность на уровне документов не влияет на глобальную статистику индексов, используемую для вычисления релевантности. Это означает, что оценки вычисляются без учета запроса роли. Документы, которые не соответствуют запросу роли, никогда не возвращаются.
-
has_childиhas_parentзапросы не поддерживаются в качестве параметров запроса в определении роли. Запросыhas_childиhas_parentмогут использоваться в API поиска с включенной безопасностью на уровне документов. - Выражения Date math не могут содержать
nowв запросах диапазона с полями дат -
Любой запрос, который выполняет удаленные вызовы для получения данных запроса, не поддерживается, включая следующие запросы:
-
termsзапрос с поиском по словам -
geo_shapeзапрос с индексированными формами -
percolateзапрос
-
- Если указаны суффиксы, а безопасность на уровне документов включена, указанные суффиксы игнорируются.
- Запрос поиска не может быть профилирован, если включена безопасность на уровне документов.
Имена индексов и полей могут быть раскрыты при использовании алиасов
Вызов определенных API Elasticsearch для алиаса может потенциально раскрыть информацию об индексах, к которым у пользователя нет доступа. Например, при получении отображений для алиаса с помощью API _mapping ответ включает имя индекса и отображения для каждого индекса, к которому применяется алиас.
До устранения этого ограничения избегайте имен индексов и полей, содержащих конфиденциальную или чувствительную информацию.
Realm LDAP
Realm LDAP в настоящее время не поддерживает обнаружение вложенных групп LDAP. Например, если пользователь является членом group_1, а group_1 является членом group_2, будет обнаружен только group_1. Однако, Active Directory Realm поддерживает транзитивное членство в группах.
Проверка совместного использования ресурсов для пользователей и API-ключа
Результат запросов асинхронного поиска и прокрутки может быть получен позже тем же пользователем или API-ключом, который отправил исходный запрос. Процесс проверки включает сравнение имени пользователя, типа аутентификационного домена и (для доменов, отличных от файла или нативного) имени домена. Если вы использовали API-ключ для отправки запроса, результаты может получить только этот ключ. Этот механизм также имеет несколько ограничений:
- Два разных домена могут иметь одинаковое имя на разных узлах. Это не рекомендуемый способ настройки доменов, поэтому проверка совместного использования ресурсов не пытается обнаружить это несоответствие.
- Домены могут быть переименованы. Это может привести к несоответствиям при проверке совместного использования ресурсов, когда вы отправляете запрос асинхронного поиска или прокрутки, затем переименовываете домен и пытаетесь получить результаты. Следовательно, изменение имен доменов должно осуществляться с осторожностью, поскольку это может вызвать проблемы не только для проверки совместного использования ресурсов.
- Имя пользователя динамически вычисляется для доменов, поддерживаемых определенными внешними поставщиками аутентификации. Например, имя пользователя может быть получено из части DN в домене LDAP. Теоретически возможно, что два разных пользователя из внешней системы будут сопоставлены одному и тому же имени пользователя. Наше рекомендация — избегать этой ситуации в первую очередь. Поэтому проверка совместного использования ресурсов не учитывает это потенциальное расхождение.
© 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/security-limitations.html