13. 审计安全设置
您可以使用审计日志记录与安全相关的事件,如身份验证失败、拒绝连接和数据访问事件。此外,通过API对安全配置进行的更改,如创建、更新和删除本地用户、内置用户、角色、角色映射和API密钥,也会被记录。
审计日志仅在某些订阅级别上提供。有关更多信息,请参阅https://www.elastic.co/subscriptions。
如果配置了审计,必须在集群中的每个节点上设置审计设置。静态设置,例如xpack.security.audit.enabled,必须在每个节点的elasticsearch.yml中进行配置。对于动态审计设置,请使用集群更新设置API,以确保所有节点上的设置相同。
一般审计设置
xpack.security.audit.enabled
(静态)设置为true以在节点上启用审计。默认值为false。这会将审计事件放入每个节点上名为<clustername>_audit.json的专用文件中。
如果启用了此设置,则必须在集群中的所有节点的elasticsearch.yml中配置它。
审计事件设置
事件和有关记录的其他信息可以通过使用以下设置进行控制:
xpack.security.audit.logfile.events.include
(动态)指定要在审计输出中打印的事件类型。此外,可以使用_all以详尽记录所有事件,但通常不建议使用,因为会变得非常冗长。默认列表包含:access_denied、access_granted、anonymous_access_denied、authentication_failed、connection_denied、tampered_request、run_as_denied、run_as_granted、security_config_change。
xpack.security.audit.logfile.events.exclude
(动态)从包含列表中排除指定类型的事件。这在事件.include设置包含特殊值_all的情况下很有用。默认为空列表。
xpack.security.audit.logfile.events.emit_request_body
(动态)指定是否将REST请求的完整请求主体作为某些类型的审计事件属性包含在内。此设置可用于审计搜索查询。
默认值为false,因此不会打印请求主体。
请注意,当在审计事件中包含请求主体时,敏感数据可能以纯文本形式进行审计,尽管所有安全API(如更改用户密码的API)在审计时会过滤掉凭据。
本地节点信息设置
xpack.security.audit.logfile.emit_node_name
(动态)指定是否在每个审计事件中包含节点名称字段。默认值为false。
xpack.security.audit.logfile.emit_node_host_address
(动态)指定是否在每个审计事件中包含节点的IP地址字段。默认值为false。
xpack.security.audit.logfile.emit_node_host_name
(动态)指定是否在每个审计事件中包含节点的主机名字段。默认值为false。
xpack.security.audit.logfile.emit_node_id
(动态)指定是否在每个审计事件中包含节点ID字段。与节点名称不同,如果管理员更改配置文件中的设置,节点名称的值可能会更改,而节点ID将在集群重新启动时保持不变,管理员无法更改它。默认值为true。
审计日志文件事件忽略策略
以下设置影响忽略策略,允许对要打印到日志文件的审计事件进行精细控制。具有相同策略名称的所有设置组合形成一个单一策略。如果事件符合任何策略的所有条件,它将被忽略并不会打印。大多数审计事件都受到忽略策略的影响。唯一的例外是security_config_change类型的事件,除非完全排除,否则不能被过滤掉。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.users
(动态)用户名称或通配符列表。指定的策略不会为匹配这些值的用户打印审计事件。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.realms
(动态)身份验证领域名称或通配符列表。指定的策略不会为位于这些领域中的用户打印审计事件。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.actions
(动态)操作名称或通配符列表。操作名称可以在审计事件的操作字段中找到。指定的策略不会为匹配这些值的操作打印审计事件。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.roles
(动态)角色名称或通配符列表。指定的策略不会为具有这些角色的用户打印审计事件。如果用户有多个角色,其中一些角色不受策略覆盖,该策略将不覆盖此事件。
xpack.security.audit.logfile.events.ignore_filters.<policy_name>.indices
(动态)索引名称或通配符列表。指定的策略不会在事件中所有与这些值匹配的索引时打印审计事件。如果事件涉及多个索引,其中一些索引不受策略覆盖,该策略将不覆盖此事件。