Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Защита Elastic Stack ›Проверка подлинности пользователей

Учетные записи служб

Функции безопасности Elastic Stack предоставляют учетные записи служб специально для интеграции с внешними службами, которые подключаются к Elasticsearch, такими как сервер Fleet. Учетные записи служб имеют фиксированный набор привилегий и не могут пройти проверку подлинности, пока для них не будет создан токен учетной записи службы. Кроме того, учетные записи служб определены в коде и всегда включены.

Учетная запись службы соответствует определенной внешней службе. Вы создаете токены учетных записей служб для учетной записи службы. Затем служба может пройти проверку подлинности с помощью токена и выполнить соответствующие действия. Например, сервер Fleet может использовать свой токен службы для проверки подлинности в Elasticsearch и затем управлять собственными API-ключами.

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

Учетные записи служб обеспечивают гибкость по сравнению с встроенными пользователями, потому что они:

  • Не полагаются на native домен проверки подлинности">внутренний native домен и не всегда требуют использования .security индекса
  • Используют описание роли, названное по имени принципала учетной записи службы вместо традиционных ролей
  • Поддерживают несколько учетных данных через токены учетной записи службы

Учетные записи служб не включены в ответ API получения пользователей. Чтобы получить учетную запись службы, используйте API получения учетных записей служб. Используйте API получения учетных данных учетной записи службы, чтобы получить все учетные данные для учетной записи службы.

Использование учетных записей служб

Учетные записи служб имеют уникальный принципал, который имеет формат <namespace>/<service>, где namespace — это верхнеуровневая группа учетных записей служб, а service — имя службы, которое должно быть уникальным в своем пространстве имен.

Учетные записи служб определены в коде. Доступны следующие учетные записи служб:

elastic/fleet-server
Учетная запись службы, используемая сервером Fleet для связи с Elasticsearch.
elastic/kibana
Учетная запись службы, используемая Kibana для связи с Elasticsearch.
elastic/enterprise-search-server
Учетная запись службы, используемая Enterprise Search для связи с Elasticsearch.

Не пытайтесь использовать учетные записи служб для проверки подлинности отдельных пользователей. Учетные записи служб могут быть проверены подлинности только с помощью токенов службы, которые не применимы к обычным пользователям.

Токены учетных записей служб

Токен учетной записи службы, или токен службы, — это уникальная строка, которую служба использует для проверки подлинности в Elasticsearch. Для данной учетной записи службы каждый токен должен иметь уникальное имя. Поскольку токены включают учетные данные доступа, их следует хранить в тайне тем клиентом, который их использует.

Токены служб могут быть основаны на .security индексе (рекомендуется) или на service_tokens файле. Вы можете создать несколько токенов службы для одной учетной записи службы, что позволяет нескольким экземплярам одной и той же службы работать с различными учетными данными.

Для использования учетной записи службы необходимо создать токен службы. Вы можете создать токен службы с помощью:

  • API создания токена учетной записи службы, который сохраняет новый токен службы в .security индексе и возвращает токен носителя в ответе HTTP.
  • Инструмента командной строки elasticsearch-service-tokens, который сохраняет новый токен службы в $ES_HOME/config/service_tokens файле и выводит токен носителя в терминал

Рекомендуется создавать токены служб через REST API, а не через командную строку. API сохраняет токены служб в .security индексе, что означает, что токены доступны для проверки подлинности на всех узлах и будут резервироваться в снимках кластера. Использование командной строки предназначено для случаев, когда существует внешний процесс оркестрации (например, Elastic Cloud Enterprise или Elastic Cloud на Kubernetes), который будет управлять созданием и распространением service_tokens файла.

Оба метода (API и командная строка) создают токен службы с гарантированной длиной секретной строки 22. Минимальная приемлемая длина секретной строки для токена службы составляет 10. Если длина секретной строки не соответствует этому минимальному значению, проверка подлинности в Elasticsearch завершится неудачей, даже не проверяя значение токена службы.

Токены служб никогда не истекают. Их необходимо удалять, если они больше не нужны.

Проверка подлинности с помощью токенов служб

Учетные записи служб в настоящее время не поддерживают проверку подлинности по умолчанию.

Для использования токена учетной записи службы включите сгенерированное значение токена в запрос с помощью заголовка Authorization: Bearer:

curl -H "Authorization: Bearer AAEAAWVsYXN0aWM...vZmxlZXQtc2VydmVyL3Rva2VuMTo3TFdaSDZ" http://localhost:9200/_security/_authenticate

Успешный ответ на запрос проверки подлинности содержит поле token, которое содержит поле name для имени токена службы и поле type для типа токена службы:

{
  "username": "elastic/fleet-server",
  "roles": [],
  "full_name": "Service account - elastic/fleet-server",
  "email": null,
  "token": {
    "name": "token1",                 
    "type": "_service_account_index"  
  },
  "metadata": {
    "_elastic_service_account": true
  },
  "enabled": true,
  "authentication_realm": {
    "name": "_service_account",
    "type": "_service_account"
  },
  "lookup_realm": {
    "name": "_service_account",
    "type": "_service_account"
  },
  "authentication_type": "token"
}

Имя токена учетной записи службы.

Тип токена учетной записи службы. Значение всегда начинается с _service_account_ и за ним следует строка, указывающая используемый бэкенд токена службы (может быть либо file, либо index).

© 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/8.17/service-accounts.html

Spec-Zone.ru

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