审计事件
编辑审计事件编辑
当您审计安全事件时,单个客户端请求可能会在多个集群节点上生成多个审计事件。常见的 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
事件,请将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":"[email protected]", "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
-
仅针对内部用户(例如
_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 事件类型审计事件属性edit
当 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 作为字符串值进行转义。
传输事件类型审计事件属性edit
当 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 过滤器事件类型审计事件属性edit
当 event.type
等于 ip_filter
时,事件具有以下 event.action
属性值之一:connection_granted
或 connection_denied
。这些事件还具有以下额外属性(除了通用属性之外)
-
transport_profile
- 请求所针对的传输配置文件。
-
rule
- 拒绝请求的 IP 过滤 规则。
安全配置更改事件类型审计事件属性edit
当 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
配置对象的一部分的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>}`
特定事件的额外审计事件属性edit
除了之前描述的属性之外,还有一些事件具有更多属性
-
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
- 服务帐户 令牌的类型。此属性仅在使用服务帐户令牌进行验证时提供。
-