Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Защита Elastic Stack ›Включить журналирование аудита

События аудита

Когда вы проводите аудит событий безопасности, один запрос клиента может генерировать несколько событий аудита на нескольких узлах кластера. Атрибут request.id может использоваться для корреляции связанных событий.

Используйте параметр xpack.security.audit.logfile.events.include в elasticsearch.yml, чтобы указать тип событий, которые вы хотите включить в выходные данные аудита.

Некоторые события аудита требуют типа события security_config_change для аудита связанного действия события. В описании затронутых событий аудита указано, требуется ли этот тип события.

access_denied

Регистрируется, когда аутентифицированный пользователь пытается выполнить действие, для которого у него нет необходимых прав.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:30:06,949+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"transport", "event.action":
"access_denied", "authentication.type":"REALM", "user.name":"user1",
"user.realm":"default_native", "user.roles":["test_role"], "origin.type":
"rest", "origin.address":"[::1]:52434", "request.id":"yKOgWn2CRQCKYgZRz3phJw",
"action":"indices:admin/auto_create", "request.name":"CreateIndexRequest",
"indices":["<index-{now/d+1d}>"]}
access_granted

Регистрируется, когда аутентифицированный пользователь пытается выполнить действие, на которое у него есть необходимые права. Эти события будут регистрироваться только для пользователей, не являющихся системными.

Если вы хотите включить события access_granted для всех пользователей (включая внутренних пользователей, таких как _xpack), добавьте system_access_granted в список типов событий в дополнение к access_granted. Привилегия system_access_granted не включена по умолчанию, чтобы избежать загромождения журналов.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:30:06,947+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"transport", "event.action":
"access_granted", "authentication.type":"REALM", "user.name":"user1", "user
realm":"default_native", "user.roles":["test_role"], "origin.type":"rest",
"origin.address":"[::1]:52434", "request.id":"yKOgWn2CRQCKYgZRz3phJw",
"action":"indices:data/write/bulk", "request.name":"BulkRequest"}
anonymous_access_denied

Регистрируется, когда запрос отклоняется из-за отсутствия учетных данных для аутентификации.

Пример
{"type":"audit", "timestamp":"2020-12-30T21:56:43,608+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"rest", "event.action":
"anonymous_access_denied", "origin.type":"rest", "origin.address":
"[::1]:50543", "url.path":"/twitter/_async_search", "url.query":"pretty",
"request.method":"POST", "request.id":"TqA9OisyQ8WTl1ivJUV1AA"}
authentication_failed

Регистрируется, когда учетные данные для аутентификации не соответствуют известному пользователю.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:10:15,510+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"rest", "event.action":
"authentication_failed", "user.name":"elastic", "origin.type":"rest",
"origin.address":"[::1]:51504", "url.path":"/_security/user/user1",
"url.query":"pretty", "request.method":"POST",
"request.id":"POv8p_qeTl2tb5xoFl0HIg"}
authentication_success

Регистрируется, когда пользователь успешно проходит аутентификацию.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:03:35,018+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"rest", "event.action":
"authentication_success", "authentication.type":"REALM", "user.name":
"elastic", "user.realm":"reserved", "origin.type":"rest", "origin.address":
"[::1]:51014", "realm":"reserved", "url.path":"/twitter/_search",
"url.query":"pretty", "request.method":"POST",
"request.id":"nHV3UMOoSiu-TaSPWCfxGg"}
change_disable_user

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

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-30T23:17:28,308+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"change_disable_user", "request.id":"qvLIgw_eTvyK3cgV-GaLVg",
"change":{"disable":{"user":{"name":"user1"}}}}
change_enable_user

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

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-30T23:17:34,843+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"change_enable_user", "request.id":"BO3QU3qeTb-Ei0G0rUOalQ",
"change":{"enable":{"user":{"name":"user1"}}}}
change_password

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

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2019-12-30T22:19:41,345+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"change_password", "request.id":"bz5a1Cc3RrebDMitMGGNCw",
"change":{"password":{"user":{"name":"user1"}}}}
create_service_token

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

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2021-04-30T23:17:42,952+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"create_service_token", "request.id":"az9a1Db5QrebDMacQ8yGKc",
"create":{"service_token":{"namespace":"elastic","service":"fleet-server","name":"token1"}}}`
connection_denied

Регистрируется, когда входящее TCP-соединение не проходит IP-фильтр для определенного профиля.

Пример
{"type":"audit", "timestamp":"2020-12-30T21:47:31,526+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"ip_filter", "event.action":
"connection_denied", "origin.type":"rest", "origin.address":"10.10.0.20:52314",
"transport.profile":".http", "rule":"deny 10.10.0.0/16"}
connection_granted

Регистрируется, когда входящее TCP-соединение проходит IP-фильтр для определенного профиля.

Пример
{"type":"audit", "timestamp":"2020-12-30T21:47:31,526+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"ip_filter", "event.action":
"connection_granted", "origin.type":"rest", "origin.address":"[::1]:52314",
"transport.profile":".http", "rule":"allow ::1,127.0.0.1"}
create_apikey

Регистрируется, когда вызываются API создания API-ключа или предоставления API-ключа для создания нового API-ключа.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:33:52,521+0200", "node.id":
"9clhpgjJRR-iKzOw20xBNQ", "event.type":"security_config_change", "event.action":
"create_apikey", "request.id":"9FteCmovTzWHVI-9Gpa_vQ", "create":{"apikey":
{"name":"test-api-key-1","expiration":"10d","role_descriptors":[{"cluster":
["monitor","manage_ilm"],"indices":[{"names":["index-a*"],"privileges":
["read","maintenance"]},{"names":["in*","alias*"],"privileges":["read"],
"field_security":{"grant":["field1*","@timestamp"],"except":["field11"]}}],
"applications":[],"run_as":[]},{"cluster":["all"],"indices":[{"names":
["index-b*"],"privileges":["all"]}],"applications":[],"run_as":[]}],
"metadata":{"application":"my-application","environment":{"level": 1,
"tags":["dev","staging"]}}}}}
change_apikey

Регистрируется, когда вызывается API обновления API-ключа для обновления атрибутов существующего API-ключа.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:33:52,521+0200", "node.id":
"9clhpgjJRR-iKzOw20xBNQ", "event.type":"security_config_change", "event.action":
"change_apikey", "request.id":"9FteCmovTzWHVI-9Gpa_vQ", "change":{"apikey":
{"id":"zcwN3YEBBmnjw-K-hW5_","role_descriptors":[{"cluster":
["monitor","manage_ilm"],"indices":[{"names":["index-a*"],"privileges":
["read","maintenance"]},{"names":["in*","alias*"],"privileges":["read"],
"field_security":{"grant":["field1*","@timestamp"],"except":["field11"]}}],
"applications":[],"run_as":[]},{"cluster":["all"],"indices":[{"names":
["index-b*"],"privileges":["all"]}],"applications":[],"run_as":[]}],
"metadata":{"application":"my-application","environment":{"level": 1,
"tags":["dev","staging"]}},"expiration":"10d"}}}
change_apikeys

Регистрируется, когда вызывается API массового обновления API-ключей для обновления атрибутов нескольких существующих API-ключей.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit","timestamp":"2020-12-31T00:33:52,521+0200","node.id":
"9clhpgjJRR-iKzOw20xBNQ","event.type":"security_config_change",
"event.action":"change_apikeys","request.id":"9FteCmovTzWHVI-9Gpa_vQ",
"change":{"apikeys":
{"ids":["zcwN3YEBBmnjw-K-hW5_","j7c0WYIBqecB5CbVR6Oq"],"role_descriptors":
[{"cluster":["monitor","manage_ilm"],"indices":[{"names":["index-a*"],"privileges":
["read","maintenance"]},{"names":["in*","alias*"],"privileges":["read"],
"field_security":{"grant":["field1*","@timestamp"],"except":["field11"]}}],
"applications":[],"run_as":[]},{"cluster":["all"],"indices":[{"names":
["index-b*"],"privileges":["all"]}],"applications":[],"run_as":[]}],
"metadata":{"application":"my-application","environment":{"level":1,
"tags":["dev","staging"]}},"expiration":"10d"}}}
delete_privileges

Регистрируется, когда вызывается API удаления прав приложений для удаления одного или нескольких прав приложений.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:39:30,246+0200", "node.id":
"9clhpgjJRR-iKzOw20xBNQ", "event.type":"security_config_change", "event.
action":"delete_privileges", "request.id":"7wRWVxxqTzCKEspeSP7J8g",
"delete":{"privileges":{"application":"myapp","privileges":["read"]}}}
delete_role

Регистрируется, когда вызывается API удаления роли для удаления роли.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:08:11,678+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.action":
"delete_role", "request.id":"155IKq3zQdWq-12dgKZRnw",
"delete":{"role":{"name":"my_admin_role"}}}
delete_role_mapping

Регистрируется, когда вызывается API удаления сопоставления ролей для удаления сопоставления ролей.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:12:09,349+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"delete_role_mapping", "request.id":"Stim-DuoSTCWom0S_xhf8g",
"delete":{"role_mapping":{"name":"mapping1"}}}
delete_service_token

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

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2021-04-30T23:17:42,952+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"delete_service_token", "request.id":"az9a1Db5QrebDMacQ8yGKc",
"delete":{"service_token":{"namespace":"elastic","service":"fleet-server","name":"token1"}}}
delete_user

Регистрируется, когда вызывается API удаления пользователя для удаления определенного собственного пользователя.

Вы должны включить тип события security_config_change для аудита связанного действия события.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:19:41,345+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change",
"event.action":"delete_user", "request.id":"au5a1Cc3RrebDMitMGGNCw",
"delete":{"user":{"name":"jacknich"}}}
invalidate_apikeys

Записывается при вызове API отмены API ключа для отмены одного или нескольких API ключей.

Вы должны включить тип события security_config_change, чтобы просмотреть связанное действие.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:36:30,247+0200", "node.id":
"9clhpgjJRR-iKzOw20xBNQ", "event.type":"security_config_change", "event.
action":"invalidate_apikeys", "request.id":"7lyIQU9QTFqSrTxD0CqnTQ",
"invalidate":{"apikeys":{"owned_by_authenticated_user":false,
"user":{"name":"myuser","realm":"native1"}}}}
put_privileges

Записывается при вызове API создания или обновления привилегий для добавления или обновления одного или нескольких привилегий приложения.

Вы должны включить тип события security_config_change, чтобы просмотреть связанное действие.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:39:07,779+0200", "node.id":
"9clhpgjJRR-iKzOw20xBNQ", "event.type":"security_config_change",
"event.action":"put_privileges", "request.id":"1X2VVtNgRYO7FmE0nR_BGA",
"put":{"privileges":[{"application":"myapp","name":"read","actions":
["data:read/*","action:login"],"metadata":{"description":"Read access to myapp"}}]}}
put_role

Записывается при вызове API создания или обновления ролей для создания или обновления роли.

Вы должны включить тип события security_config_change, чтобы просмотреть связанное действие.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:27:01,978+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change",
"event.action":"put_role", "request.id":"tDYQhv5CRMWM4Sc5Zkk2cQ",
"put":{"role":{"name":"test_role","role_descriptor":{"cluster":["all"],
"indices":[{"names":["apm*"],"privileges":["all"],"field_security":
{"grant":["granted"]},"query":"{\"term\": {\"service.name\": \"bar\"}}"},
{"names":["apm-all*"],"privileges":["all"],"query":"{\"term\":
{\"service.name\": \"bar2\"}}"}],"applications":[],"run_as":[]}}}}
put_role_mapping

Записывается при вызове API создания или обновления сопоставлений ролей для создания или обновления сопоставления ролей.

Вы должны включить тип события security_config_change, чтобы просмотреть связанное действие.

Пример
{"type":"audit", "timestamp":"2020-12-31T00:11:13,932+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change", "event.
action":"put_role_mapping", "request.id":"kg4h1l_kTDegnLC-0A-XxA",
"put":{"role_mapping":{"name":"mapping1","roles":["user"],"rules":
{"field":{"username":"*"}},"enabled":true,"metadata":{"version":1}}}}
put_user

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

Вы должны включить тип события security_config_change, чтобы просмотреть связанное действие.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:10:09,749+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"security_config_change",
"event.action":"put_user", "request.id":"VIiSvhp4Riim_tpkQCVSQA",
"put":{"user":{"name":"user1","enabled":false,"roles":["admin","other_role1"],
"full_name":"Jack Sparrow","email":"jack@blackpearl.com",
"has_password":true,"metadata":{"cunning":10}}}}
realm_authentication_failed

Записывается для каждого домена, который не предоставляет действительный токен аутентификации.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:10:15,510+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"rest", "event.action":
"realm_authentication_failed", "user.name":"elastic", "origin.type":"rest",
"origin.address":"[::1]:51504", "realm":"myTestRealm1", "url.path":
"/_security/user/user1", "url.query":"pretty", "request.method":"POST",
"request.id":"POv8p_qeTl2tb5xoFl0HIg"}
run_as_denied

Записывается, когда аутентифицированный пользователь пытается выполнить запрос от имени другого пользователя, у которого нет необходимых привилегий для этого.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:49:34,859+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"transport", "event.action":
"run_as_denied", "user.name":"user1", "user.run_as.name":"user1",
"user.realm":"default_native", "user.run_as.realm":"default_native",
"user.roles":["test_role"], "origin.type":"rest", "origin.address":
"[::1]:52662", "request.id":"RcaSt872RG-R_WJBEGfYXA",
"action":"indices:data/read/search", "request.name":"SearchRequest", "indices":["alias1"]}
run_as_granted

Записывается, когда аутентифицированный пользователь пытается выполнить запрос от имени другого пользователя, у которого есть необходимые привилегии.

Пример
{"type":"audit", "timestamp":"2020-12-30T22:44:42,068+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type":"transport", "event.action":
"run_as_granted", "user.name":"elastic", "user.run_as.name":"user1",
"user.realm":"reserved", "user.run_as.realm":"default_native",
"user.roles":["superuser"], "origin.type":"rest", "origin.address":
"[::1]:52623", "request.id":"dGqPTdEQSX2TAPS3cvc1qA", "action":
"indices:data/read/search", "request.name":"SearchRequest", "indices":["alias1"]}
system_access_granted

Записывает события access_granted только для внутренних пользователей, таких как _xpack. Если вы включите эту настройку в дополнение к access_granted, то события access_granted будут записываться для всех пользователей.

Этот тип события по умолчанию отключен, чтобы избежать захламления логов.

tampered_request

Записывается, когда средства безопасности обнаруживают, что запрос был изменён. Обычно относится к запросам search/scroll, когда предполагается, что идентификатор прокрутки был изменён.

Пример
{"type":"audit", "timestamp":"2019-11-27T22:00:00,947+0200", "node.id":
"0RMNyghkQYCc_gVd1G6tZQ", "event.type": "rest", "event.action":
"tampered_request", "origin.address":"[::1]:50543", "url.path":
"/twitter/_async_search", "url.query":"pretty", "request.method":"POST",
"request.id":"TqA9OisyQ8WTl1ivJUV1AA"}

Атрибуты событий аудита

События аудита отформатированы как JSON-документы, и каждое событие печатается на отдельной строке в журнале аудита. В самих записях нет разделителя конца строки. Более подробную информацию см. в формате записи журнала.

Следующий список показывает атрибуты, общие для всех типов событий аудита:

@timestamp
Время события в формате ISO9601.
node.name
Название узла. Это можно изменить в файле конфигурации elasticsearch.yml.
node.id
Идентификатор узла. Он генерируется автоматически и сохраняется при полном перезапуске кластера.
host.ip
Связанный IP-адрес узла, с помощью которого можно связаться с узлом.
host.name
Неразрешённое имя хоста узла.
event.type
Внутренний уровень обработки, который сгенерировал событие: rest, transport, ip_filter или security_config_change. Это отличается от origin.type, потому что запрос, исходящий из REST API, преобразуется в ряд транспортных сообщений, генерирующих события аудита с origin.type: rest и event.type: transport.
event.action

Тип произошедшего события: anonymous_access_denied, authentication_failed, authentication_success, realm_authentication_failed, access_denied, access_granted, connection_denied, connection_granted, tampered_request, run_as_denied или run_as_granted.

Кроме того, если event.type равно security_config_change, атрибут event.action принимает одно из следующих значений: put_user, change_password, put_role, put_role_mapping, change_enable_user, change_disable_user, put_privileges, create_apikey, delete_user, delete_role, delete_role_mapping, invalidate_apikeys, delete_privileges, change_apikey или change_apikeys.

request.id
Синтетический идентификатор, который можно использовать для сопоставления событий, связанных с определённым запросом REST.

Кроме того, все события типов rest, transport и ip_filter (но не security_config_change) имеют следующие дополнительные атрибуты, которые показывают больше информации о запрашивающем клиенте:

origin.address
Источник IP-адреса запроса, связанного с данным событием. Это может быть адрес удалённого клиента, адрес другого узла кластера или связанный адрес локального узла, если запрос исходил локально. Если удалённый клиент не подключается непосредственно к кластеру, то адрес клиента фактически будет адресом первого прокси OSI уровня 3 перед кластером.
origin.type
Тип происхождения запроса, связанного с этим событием: rest (запрос исходил из запроса REST API), transport (запрос был получен по транспортному каналу) или local_node (запрос инициировал локальный узел).
opaque_id
Значение заголовка HTTP X-Opaque-Id (если он присутствует) запроса, связанного с этим событием. См. больше: X-Opaque-Id заголовок - API соглашения
trace_id
Идентификатор, извлечённый из заголовка HTTP traceparent (если он присутствует) запроса, связанного с данным событием. Он позволяет отображать журналы аудита в функции Журналов трассировки Elastic APM.
x_forwarded_for
Текстовое значение заголовка HTTP запроса X-Forwarded-For (если он присутствует) запроса, связанного с событием аудита. Этот заголовок обычно добавляется прокси при пересылке запросов, и значением является адрес прокси-клиента. Когда запрос проходит через несколько прокси, заголовок является запятой-разделённым списком, где последнее значение является адресом второго с конца прокси-сервера (адрес последнего прокси-сервера указан в поле origin.address).

Атрибуты событий аудита типа rest

У событий с event.type, равным rest, есть одно из следующих event.action значений атрибута: authentication_success, anonymous_access_denied, authentication_failed, realm_authentication_failed, tampered_request или run_as_denied. Эти события также имеют следующие дополнительные атрибуты (кроме общих):

url.path
Часть пути URL (между портом и строкой запроса) REST-запроса, связанного с этим событием. Кодируется по правилам URL.
url.query
Часть запроса URL (после "?", если присутствует) REST-запроса, связанного с этим событием. Кодируется по правилам URL.
request.method
HTTP-метод REST-запроса, связанного с этим событием. Может быть GET, POST, PUT, DELETE, OPTIONS, HEAD, PATCH, TRACE и CONNECT.
request.body
Полное содержимое REST-запроса, связанного с этим событием, если включено. Содержит тело HTTP-запроса. Тело экранируется как строковое значение в соответствии с RFC 4627 для JSON.

Атрибуты событий аудита типа transport

У событий с event.type, равным transport, есть одно из следующих event.action значений атрибута: authentication_success, anonymous_access_denied, authentication_failed, realm_authentication_failed, access_granted, access_denied, run_as_granted, run_as_denied или tampered_request. Эти события также имеют следующие дополнительные атрибуты (кроме общих):

action
Имя транспортного действия, которое было выполнено. Аналогично URL REST-запроса.
indices
Массив имён индексов, к которым относится запрос, связанный с этим событием (если применимо).
request.name
Имя обработчика запроса, который был выполнен.

Атрибуты событий аудита типа ip_filter

У событий с event.type, равным ip_filter, есть одно из следующих event.action значений атрибута: connection_granted или connection_denied. Эти события также имеют следующие дополнительные атрибуты (кроме общих):

transport_profile
Профиль транспорта, к которому был нацелен запрос.
rule
Правило фильтрации IP, которое отклонило запрос.

Атрибуты событий аудита типа security_config_change

У событий с атрибутом event.type, равным security_config_change, есть одно из следующих event.action значений атрибута: put_user, change_password, put_role, put_role_mapping, change_enable_user, change_disable_user, put_privileges, create_apikey, delete_user, delete_role, delete_role_mapping, invalidate_apikeys, delete_privileges, change_apikey или change_apikeys.

Эти события также имеют один из следующих дополнительных атрибутов (кроме общих), специфичный для атрибута event.type. Значение атрибута — вложенный JSON-объект:

put
Представление объекта конфигурации безопасности, который создаётся или перезаписывается. Содержит конфигурацию для user, role, role_mapping или для приложения privileges.
delete
Представление объекта конфигурации безопасности, который удаляется. Может быть конфигурацией для user, role, role_mapping или для приложения privileges.
change
Представление объекта конфигурации безопасности, который изменяется. Может быть password, enable или disable объектом конфигурации для встроенных пользователей. Если обновляется API-ключ, объект конфигурации будет apikey.
create
Представление нового объекта конфигурации безопасности, который создаётся. В настоящее время используется только для аудита API-ключей. Если API-ключ создан с помощью API создания API-ключа, он содержит только объект конфигурации apikey. Если API-ключ создан с помощью API выдачи API-ключа, он также содержит объект конфигурации grant.
invalidate
Представление объекта конфигурации безопасности, который аннулируется. В настоящее время аннулирование поддерживается только для apikeys с помощью API аннулирования API-ключа.

Схемы упомянутых выше объектов конфигурации безопасности аналогичны телам запросов соответствующих API-безопасности.

user

Объект, похожий на:

`{"name": <string>, "enabled": <boolean>, "roles": <string_list>,
"full_name": <string>, "email": <string>, "has_password": <boolean>,
"metadata": <object>}`.

Поля full_name, email и metadata опушены, если пустые.

role

Объект, похожий на:

`{"name": <string>, "role_descriptor": {"cluster": <string_list>, "global":
{"application":{"manage":{<string>:<string_list>}}}, "indices": [                             {"names": <string_list>, "privileges": <string_list>, "field_security":
{"grant": <string_list>, "except": <string_list>}, "query": <string>,
"allow_restricted_indices": <boolean>}], "applications":[{"application": <string>,
"privileges": <string_list>, "resources": <string_list>}], "run_as": <string_list>,
"metadata": <object>}}`.

Поля global, field_security, except, query, allow_restricted_indices и metadata опушены, если пустые.

role_mapping

Объект, похожий на:

`{"name": <string>, "roles": <string_list>, "role_templates": [{"template": <string>,
"format": <string>}], "rules": <object>, "enabled": <boolean>, "metadata": <object>}`.

Поля roles и role_templates опушены, если пустые. Объект rules имеет рекурсивно вложенную схему, идентичную той, что передаётся в запросе API для сопоставления ролей.

privileges

Массив объектов, похожий на:

`{"application": <string>, "name": <string>, "actions": <string_list>,
"metadata": <object>}`.
password

Простой объект, похожий на:

`{"user":{"name": <string>}}`
enable

Простой объект, похожий на:

`{"user":{"name": <string>}}`
disable

Простой объект, похожий на:

`{"user":{"name": <string>}}`
apikey

Объект, похожий на:

`{"id": <string>, "name": <string>, "expiration": <string>, "role_descriptors": [<object>],
"metadata": [<object>]}`

Объекты role_descriptors имеют ту же схему, что и объект role_descriptor, который является частью объекта конфигурации role выше.

Объект для обновления API-ключа будет отличаться тем, что не будет содержать name.

grant

Объект, похожий на:

`{"type": <string>, "user": {"name": <string>, "has_password": <boolean>},
"has_access_token": <boolean>}`
apikeys

Объект, похожий на:

`{"ids": <string_list>, "name": <string>, "owned_by_authenticated_user":
<boolean>, "user":{"name": <string>, "realm": <string>}}`

Объект для массового обновления API-ключа будет отличаться тем, что не будет содержать name, owned_by_authenticated_user или user. Вместо этого он может содержать metadata и role_descriptors, которые имеют те же схемы, что и поля в объекте конфигурации apikey выше.

service_token

Объект, похожий на:

`{"namespace":<string>,"service":<string>,"name":<string>}`

Дополнительные атрибуты событий аудита для определённых событий

Существуют несколько событий, которые имеют дополнительные атрибуты помимо уже описанных:

  • authentication_success:

    realm
    Имя домена, успешно прошедшего аутентификацию пользователя. Если аутентификация выполнена с помощью API-ключа, это специальное значение _es_api_key. Это краткое свойство, содержащее ту же информацию, что и атрибуты user.realm, user.run_by.realm и authentication.type.
    user.name
    Имя эффективного пользователя. Обычно совпадает с именем аутентифицированного пользователя, но при использовании функциональности разрешения run as вместо этого обозначает имя имитируемого пользователя. Если аутентификация выполнена с помощью API-ключа, это имя владельца API-ключа. Если аутентификация выполнена с помощью токена учётной записи сервиса, это принципал учётной записи сервиса, т.е. namespace/service_name.
    user.realm
    Имя домена, к которому принадлежит эффективный пользователь. Если аутентификация выполнена с помощью API-ключа, это имя домена, к которому принадлежит владелец API-ключа.
    user.run_by.name
    Этот атрибут присутствует только если запрос использует функциональность разрешения run as и обозначает имя аутентифицированного пользователя, также известного как имитатор.
    user.run_by.realm
    Имя домена, к которому принадлежит аутентифицированный (имитатор) пользователь. Этот атрибут предоставляется только в случае использования функциональности run as.
    authentication.type
    Метод, используемый для аутентификации пользователя. Возможные значения: REALM, API_KEY, TOKEN, ANONYMOUS или INTERNAL.
    apikey.id
    Идентификатор API-ключа, возвращённый запросом создания API-ключа. Этот атрибут предоставляется только для аутентификации с помощью API-ключа.
    apikey.name
    Имя API-ключа, предоставленное в запросе создания API-ключа. Этот атрибут предоставляется только для аутентификации с помощью API-ключа.
    authentication.token.name
    Имя токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса.
    authentication.token.type
    Тип токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса.
  • authentication_failed:

    user.name
    Имя пользователя, не прошедшего аутентификацию. Если токен аутентификации запроса недействителен или не может быть проанализирован, эта информация может отсутствовать.
    authentication.token.name
    Имя токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса. Если токен аутентификации запроса недействителен или не может быть проанализирован, эта информация может отсутствовать.
    authentication.token.type
    Тип токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса. Если токен аутентификации запроса недействителен или не может быть проанализирован, эта информация может отсутствовать.
  • realm_authentication_failed:

    user.name
    Имя пользователя, не прошедшего аутентификацию.
    realm
    Имя домена, отклонившего аутентификацию. Это событие генерируется для каждого домена в цепочке.
  • run_as_denied и run_as_granted:

    user.roles
    Имена ролей в виде массива для аутентифицированного пользователя, которому предоставляется или отказывается действие имитации. Если аутентификация выполнена как учётная запись сервиса, это всегда пустой массив.
    user.name
    Имя аутентифицированного пользователя, которому предоставляется или отказывается действие имитации.
    user.realm
    Имя домена, к которому принадлежит аутентифицированный пользователь.
    user.run_as.name
    Имя пользователя, которому предоставляется или отказывается действие имитации.
    user.run_as.realm
    Имя домена, к которому принадлежит имитируемый пользователь.
  • access_granted и access_denied:

    user.roles
    Имена ролей пользователя в виде массива. Если аутентификация выполнена с помощью API-ключа, это содержит имена ролей владельца API-ключа. Если аутентификация выполнена как учётная запись сервиса, это всегда пустой массив.
    user.name
    Имя эффективного пользователя. Обычно совпадает с именем аутентифицированного пользователя, но при использовании функциональности run as вместо этого обозначает имя имитируемого пользователя. Если аутентификация выполнена с помощью API-ключа, это имя владельца API-ключа.
    user.realm
    Имя домена, к которому принадлежит эффективный пользователь. Если аутентификация выполнена с помощью API-ключа, это имя домена, к которому принадлежит владелец API-ключа.
    user.run_by.name
    Этот атрибут присутствует только если запрос использует функциональность разрешения run as и обозначает имя аутентифицированного пользователя, который также известен как имитатор.
    user.run_by.realm
    Этот атрибут присутствует только если запрос использует функциональность разрешения run as и обозначает имя домена, к которому принадлежит аутентифицированный (имитатор) пользователь.
    authentication.type
    Метод, используемый для аутентификации пользователя. Возможные значения: REALM, API_KEY, TOKEN, ANONYMOUS или INTERNAL.
    apikey.id
    Идентификатор API-ключа, возвращённый запросом создания API-ключа. Этот атрибут предоставляется только для аутентификации с помощью API-ключа.
    apikey.name
    Имя API-ключа, предоставленное в запросе создания API-ключа. Этот атрибут предоставляется только для аутентификации с помощью API-ключа.
    authentication.token.name
    Имя токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса.
    authentication.token.type
    Тип токена учётной записи сервиса. Этот атрибут предоставляется только для аутентификации с помощью токена учётной записи сервиса.

© 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/audit-event-types.html

Spec-Zone.ru

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