审计事件
编辑审计事件
编辑当您审计安全事件时,单个客户端请求可能会在多个集群节点上生成多个审计事件。可以使用公共的 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
- 生成事件的内部处理层:
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
- 与此事件关联的请求的
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_success
、anonymous_access_denied
、authentication_failed
、realm_authentication_failed
、tampered_request
或 run_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_success
、anonymous_access_denied
、authentication_failed
、realm_authentication_failed
、access_granted
、access_denied
、run_as_granted
、run_as_denied
或 tampered_request
。这些事件还具有以下额外属性(除了通用属性之外)
-
action
- 已执行的传输操作的名称。这就像 REST 请求的 URL。
-
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
- 正在失效的安全配置的对象表示。目前唯一支持失效的配置是通过使 API 密钥 API 失效的
apikeys
。
上述安全配置对象的架构如下。它们与相应的安全 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
配置对象中包含的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 密钥更新的对象将有所不同,因为它不包含
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
- 有效用户的名称。这通常与经过身份验证的用户相同,但如果使用以其他用户身份运行授权功能,则改为表示被模拟用户的名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者的名称。如果使用服务帐户令牌进行身份验证,则这是服务帐户主体,即
namespace/service_name
。 -
user.realm
- 有效用户所属的领域名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者所属的领域名称。
-
user.run_by.name
- 仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并表示经过身份验证的用户的名称,也称为模拟者。
-
user.run_by.realm
- 经过身份验证的(模拟者)用户所属的领域的名称。仅当请求使用以其他用户身份运行授权功能时,才会提供此属性。
-
authentication.type
- 用于验证用户身份的方法。可能的值为
REALM
、API_KEY
、TOKEN
、ANONYMOUS
或INTERNAL
。 -
apikey.id
- 由创建 API 密钥请求返回的 API 密钥 ID。仅当使用 API 密钥进行身份验证时,才提供此属性。
-
apikey.name
- 在创建 API 密钥请求中提供的 API 密钥名称。此属性仅在使用 API 密钥进行身份验证时提供。
-
authentication.token.name
- 服务帐户令牌的名称。此属性仅在使用服务帐户令牌进行身份验证时提供。
-
authentication.token.type
- 服务帐户令牌的类型。此属性仅在使用服务帐户令牌进行身份验证时提供。
-
-
authentication_failed
: -
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
- 有效用户的名称。这通常与已认证用户相同,但如果使用以其他用户身份运行授权功能,则表示被模拟用户的名称。如果使用 API 密钥进行身份验证,则是 API 密钥所有者的名称。
-
user.realm
- 有效用户所属的领域名称。如果使用 API 密钥进行身份验证,则这是 API 密钥所有者所属的领域名称。
-
user.run_by.name
- 仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并且表示已认证用户的名称,也称为模拟者。
-
user.run_by.realm
- 仅当请求使用以其他用户身份运行授权功能时,此属性才存在,并且表示已认证(模拟者)用户所属的领域名称。
-
authentication.type
- 用于验证用户身份的方法。可能的值为
REALM
、API_KEY
、TOKEN
、ANONYMOUS
或INTERNAL
。 -
apikey.id
- 由创建 API 密钥请求返回的 API 密钥 ID。仅当使用 API 密钥进行身份验证时,才提供此属性。
-
apikey.name
- 在创建 API 密钥请求中提供的 API 密钥名称。此属性仅在使用 API 密钥进行身份验证时提供。
-
authentication.token.name
- 服务帐户令牌的名称。此属性仅在使用服务帐户令牌进行身份验证时提供。
-
authentication.token.type
- 服务帐户令牌的类型。此属性仅在使用服务帐户令牌进行身份验证时提供。
-