审计事件

编辑

当您审计安全事件时,单个客户端请求可能会在多个集群节点上生成多个审计事件。可以使用公共的 request.id 属性来关联相关的事件。

使用 elasticsearch.yml 中的 xpack.security.audit.logfile.events.include 设置来指定您要包含在审计输出中的事件类型。

某些审计事件需要 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

当已验证的用户尝试执行他们有必要权限的操作时记录。这些事件仅会为非系统用户记录。

如果您想为所有用户(包括 _xpack 等内部用户)包含 access_granted 事件,除了 access_granted 之外,还要将 system_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":"[email protected]",
"has_password":true,"metadata":{"cunning":10}}}}
realm_authentication_failed

为每个未能提供有效身份验证令牌的 realm 记录。

示例
{"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

仅为 内部用户(如 _xpack)记录 access_granted 事件。如果您除了 access_granted 之外还包含此设置,则将为所有用户记录 access_granted 事件。

默认情况下禁用此事件类型,以避免日志混乱。

tampered_request

当安全功能检测到请求已被篡改时记录。通常与 search/scroll 请求有关,当认为滚动 ID 已被篡改时。

示例
{"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
节点 ID。这是自动生成的,并且在完全集群重启后保持不变。
host.ip
节点的绑定 IP 地址,可以使用该地址与节点通信。
host.name
未解析的节点的主机名。
event.type
生成事件的内部处理层:resttransportip_filtersecurity_config_change。这与 origin.type 不同,因为来自 REST API 的请求被转换为多个传输消息,生成 origin.type: restevent.type: transport 的审计事件。
event.action

发生的事件类型:anonymous_access_deniedauthentication_failedauthentication_successrealm_authentication_failedaccess_deniedaccess_grantedconnection_deniedconnection_grantedtampered_requestrun_as_deniedrun_as_granted

此外,如果 event.type 等于 security_config_change,则 event.action 属性采用以下值之一:put_userchange_passwordput_roleput_role_mappingchange_enable_userchange_disable_userput_privilegescreate_apikeydelete_userdelete_roledelete_role_mappinginvalidate_apikeysdelete_privilegeschange_apikeychange_apikeys

request.id
可用于关联与特定 REST 请求相关的事件的合成标识符。

此外,类型为 resttransportip_filter (但不包括 security_config_change)的所有事件都具有以下额外属性,这些属性显示了有关请求客户端的更多详细信息

origin.address
与此事件关联的请求的源 IP 地址。这可能是远程客户端的地址、另一个集群节点的地址或本地节点的绑定地址(如果请求是在本地发起的)。除非远程客户端直接连接到集群,否则客户端地址实际上将是集群前面的第一个 OSI 3 层代理的地址。
origin.type
与此事件关联的请求的来源类型:rest(请求来自 REST API 请求)、transport(请求在传输通道上接收)或 local_node(本地节点发出的请求)。
opaque_id
与此事件关联的请求的 X-Opaque-Id HTTP 标头的值(如果存在)。了解更多:X-Opaque-Id HTTP 标头 - API 约定
trace_id
从与此事件关联的请求的 traceparent HTTP 标头(如果存在)中提取的标识符。它允许将审计日志呈现到 Elastic APM 的跟踪日志功能中。
x_forwarded_for
与审计事件关联的请求的 X-Forwarded-For HTTP 请求标头(如果存在)的原文值。此标头通常由代理在转发请求时添加,该值是代理客户端的地址。当请求跨多个代理时,该标头是一个逗号分隔的列表,最后一个值是倒数第二个代理服务器的地址(最后一个代理服务器的地址由 origin.address 字段指定)。

rest 事件类型的审计事件属性

编辑

event.type 等于 rest 的事件具有以下 event.action 属性值之一:authentication_successanonymous_access_deniedauthentication_failedrealm_authentication_failedtampered_requestrun_as_denied。这些事件还具有以下额外属性(除了通用属性之外)

url.path
与此事件关联的 REST 请求的 URL 的路径部分(端口和查询字符串之间)。这是 URL 编码的。
url.query
与此事件关联的 REST 请求的 URL 的查询部分(“?”之后,如果存在)。这是 URL 编码的。
request.method
与此事件关联的 REST 请求的 HTTP 方法。它是 GET、POST、PUT、DELETE、OPTIONS、HEAD、PATCH、TRACE 和 CONNECT 之一。
request.body
如果启用,则与此事件关联的 REST 请求的完整内容。这包含 HTTP 请求正文。正文根据 JSON RFC 4627 转义为字符串值。

transport 事件类型的审计事件属性

编辑

event.type 等于 transport 的事件具有以下 event.action 属性值之一:authentication_successanonymous_access_deniedauthentication_failedrealm_authentication_failedaccess_grantedaccess_deniedrun_as_grantedrun_as_deniedtampered_request。这些事件还具有以下额外属性(除了通用属性之外)

action
已执行的传输操作的名称。这就像 REST 请求的 URL。
indices
与此事件关联的请求所涉及的索引名称数组(如果适用)。
request.name
已执行的请求处理程序的名称。

ip_filter 事件类型的审计事件属性

编辑

event.type 等于 ip_filter 的事件具有以下 event.action 属性值之一:connection_grantedconnection_denied。这些事件还具有以下额外属性(除了通用属性之外)

transport_profile
请求所针对的传输配置文件。
rule
拒绝请求的IP 过滤规则。

security_config_change 事件类型的审计事件属性

编辑

event.type 属性等于 security_config_change 的事件具有以下 event.action 属性值之一:put_userchange_passwordput_roleput_role_mappingchange_enable_userchange_disable_userput_privilegescreate_apikeydelete_userdelete_roledelete_role_mappinginvalidate_apikeysdelete_privilegeschange_apikeychange_apikeys

这些事件还具有以下额外属性中的一个(除了通用属性之外),该属性特定于 event.type 属性。该属性的值是一个嵌套的 JSON 对象

put
正在创建的安全配置的对象表示,或者现有配置的覆盖。它包含 userrolerole_mapping 或应用程序 privileges 的配置。
delete
正在删除的安全配置的对象表示。它可以是 userrolerole_mapping 或应用程序 privileges 的配置。
change
正在更改的安全配置的对象表示。它可以是本机或内置用户的 passwordenabledisable 配置对象。如果更新了 API 密钥,则配置对象将是 apikey
create
正在创建的新安全配置的对象表示。目前仅用于 API 密钥审计。如果使用创建 API 密钥 API创建 API 密钥,则它仅包含 apikey 配置对象。如果使用授予 API 密钥 API创建 API 密钥,则它还包含 grant 配置对象。
invalidate
正在失效的安全配置的对象表示。目前唯一支持失效的配置是通过使 API 密钥 API 失效apikeys

上述安全配置对象的架构如下。它们与相应的安全 API 的请求正文非常相似。

user

类似于以下的对象

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

如果 full_nameemailmetadata 字段为空,则省略。

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>}}`.

如果 globalfield_securityexceptqueryallow_restricted_indicesmetadata 字段为空,则省略。

role_mapping

类似于以下的对象

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

如果 rolesrole_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 配置对象中包含的 role_descriptor 对象相同的架构。

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 密钥更新的对象将有所不同,因为它不包含 nameowned_by_authenticated_useruser。相反,它可能包含 metadatarole_descriptors,它们具有与上面 apikey 配置对象中字段相同的架构。

service_token

类似于以下的对象

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

特定事件的额外审计事件属性

编辑

除了之前描述的属性之外,还有一些事件具有更多属性

  • authentication_success:

    realm
    成功验证用户的领域名称。如果使用 API 密钥进行身份验证,则这是 _es_api_key 的特殊值。这是 user.realmuser.run_by.realmauthentication.type 属性描述的相同信息的简写属性。
    user.name
    有效用户的名称。这通常与经过身份验证的用户相同,但如果使用以其他用户身份运行授权功能,则改为表示被模拟用户的名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者的名称。如果使用服务帐户令牌进行身份验证,则这是服务帐户主体,即 namespace/service_name
    user.realm
    有效用户所属的领域名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者所属的领域名称。
    user.run_by.name
    仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并表示经过身份验证的用户的名称,也称为模拟者
    user.run_by.realm
    经过身份验证的模拟者)用户所属的领域的名称。仅当请求使用以其他用户身份运行授权功能时,才会提供此属性。
    authentication.type
    用于验证用户身份的方法。可能的值为 REALMAPI_KEYTOKENANONYMOUSINTERNAL
    apikey.id
    创建 API 密钥请求返回的 API 密钥 ID。仅当使用 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_deniedrun_as_granted

    user.roles
    作为数组的已认证用户的角色名称,该用户被授予或拒绝模拟操作。如果以服务帐户进行身份验证,则始终为空数组。
    user.name
    被授予或拒绝模拟操作的已认证用户的名称。
    user.realm
    已认证用户所属的领域名称。
    user.run_as.name
    被授予或拒绝模拟操作的用户的名称。
    user.run_as.realm
    被模拟用户所属的领域名称。
  • access_grantedaccess_denied

    user.roles
    作为数组的用户的角色名称。如果使用 API 密钥进行身份验证,则包含 API 密钥所有者的角色名称。如果以服务帐户进行身份验证,则始终为空数组。
    user.name
    有效用户的名称。这通常与已认证用户相同,但如果使用以其他用户身份运行授权功能,则表示被模拟用户的名称。如果使用 API 密钥进行身份验证,则是 API 密钥所有者的名称。
    user.realm
    有效用户所属的领域名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者所属的领域名称。
    user.run_by.name
    仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并且表示已认证用户的名称,也称为模拟者
    user.run_by.realm
    仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并且表示已认证模拟者)用户所属的领域名称。
    authentication.type
    用于验证用户身份的方法。可能的值为 REALMAPI_KEYTOKENANONYMOUSINTERNAL
    apikey.id
    创建 API 密钥请求返回的 API 密钥 ID。仅当使用 API 密钥进行身份验证时,才提供此属性。
    apikey.name
    创建 API 密钥请求中提供的 API 密钥名称。此属性仅在使用 API 密钥进行身份验证时提供。
    authentication.token.name
    服务帐户令牌的名称。此属性仅在使用服务帐户令牌进行身份验证时提供。
    authentication.token.type
    服务帐户令牌的类型。此属性仅在使用服务帐户令牌进行身份验证时提供。