当前位置: 首页 > news >正文

Elasticsearch安全审计日志设置与最佳实践

一、Elasticsearch安全审计简介

审计日志(Audit Logging)用于记录Elasticsearch中的安全相关事件,包括认证失败、连接拒绝、数据访问事件以及通过API对安全配置(如用户、角色、API密钥)的变更记录。

注意:审计日志功能仅在特定订阅级别提供。

二、启用审计日志

在所有集群节点的elasticsearch.yml配置文件中启用审计:

xpack.security.audit.enabled: true

开启后,每个节点将生成单独的审计日志文件,命名格式为:

<clustername>_audit.json

三、审计事件控制设置

可通过以下动态配置控制审计日志记录哪些事件:

3.1 包含指定事件(动态配置)

默认记录的事件:

  • access_denied(访问拒绝)
  • access_granted(访问允许)
  • anonymous_access_denied(匿名访问拒绝)
  • authentication_failed(认证失败)
  • connection_denied(连接拒绝)
  • tampered_request(篡改请求)
  • run_as_deniedrun_as_granted(以他人身份执行的权限事件)
  • security_config_change(安全配置变更)

配置示例:

PUT /_cluster/settings
{"persistent": {"xpack.security.audit.logfile.events.include": ["access_denied","authentication_failed","security_config_change"]}
}

使用_all记录全部事件(不推荐,会产生大量日志)。

3.2 排除指定事件(动态配置)

排除事件示例:

PUT /_cluster/settings
{"persistent": {"xpack.security.audit.logfile.events.exclude": ["connection_denied"]}
}

3.3 是否记录完整请求体(动态配置)

记录REST请求完整请求体(如搜索查询),默认关闭:

PUT /_cluster/settings
{"persistent": {"xpack.security.audit.logfile.events.emit_request_body": true}
}

注意:启用此项可能导致敏感数据明文记录。

四、节点信息记录设置

动态配置是否在每条审计事件中包含节点信息:

参数描述默认值
emit_node_name节点名称false
emit_node_host_address节点IP地址false
emit_node_host_name节点主机名false
emit_node_id节点唯一IDtrue

配置示例:

PUT /_cluster/settings
{"persistent": {"xpack.security.audit.logfile.emit_node_host_address": true,"xpack.security.audit.logfile.emit_node_name": true}
}

五、事件忽略策略

Elasticsearch支持细粒度地定义审计事件的忽略策略。当事件满足某一策略的所有条件时,该事件将不会被记录。

示例(创建名为internal_users的策略,忽略特定用户的审计事件):

PUT /_cluster/settings
{"persistent": {"xpack.security.audit.logfile.events.ignore_filters.internal_users.users": ["kibana_system", "logstash_system"],"xpack.security.audit.logfile.events.ignore_filters.internal_users.realms": ["native"],"xpack.security.audit.logfile.events.ignore_filters.internal_users.actions": ["indices:data/read/*"],"xpack.security.audit.logfile.events.ignore_filters.internal_users.roles": ["superuser"],"xpack.security.audit.logfile.events.ignore_filters.internal_users.indices": [".kibana*"]}
}
  • users:指定用户名或通配符
  • realms:指定认证域或通配符
  • actions:指定动作(如读、写操作)或通配符
  • roles:指定角色或通配符
  • indices:指定索引名或通配符

六、审计日志最佳实践

  • 开启审计日志可提升安全性和合规性,但需注意日志体积和性能影响。
  • 通常建议记录认证失败、权限拒绝、配置变更等关键事件。
  • 明确排除不必要的频繁事件以减少日志量,如健康检查或系统内部用户操作。
  • 定期审阅审计日志,监控异常访问或操作。

七、常见问题与注意事项

  • 审计日志默认关闭,必须明确启用。
  • 动态设置应通过Cluster Update Settings API在集群层级保持一致。
  • 敏感数据在审计事件中可能以明文存储,需审慎启用请求体记录。

八、总结

通过合理配置Elasticsearch审计日志功能,管理员能够有效监控和审查安全相关事件,及时发现潜在风险,保障集群的安全运行。本文介绍的设置方法与最佳实践,将帮助用户在安全与性能之间找到适当平衡。

http://www.lryc.cn/news/598294.html

相关文章:

  • 从零构建:Jenkins与Kubernetes集成的完整指南
  • 福佑储能轴流风扇对储能安全的重要影响
  • 陪诊小程序系统开发:开启医疗陪护新时代
  • JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
  • 盲盒抽谷机小程序:二次元经济的“社交裂变引擎”如何引爆用户增长?
  • Apache 消息队列分布式架构与原理
  • 移动端自动化Appium框架
  • [数据结构]#7 哈希表
  • 2025年6月GESP(C++六级):学习小组
  • OpenMed 项目深度分析:推动医疗 NLP 领域的开源革命
  • GoLand 项目从 0 到 1:第二天 —— 数据库自动化
  • 综合实验(4)
  • 独家|百度副总裁尚国斌即将离职,此前统筹百度地图;行业搜索及智能体业务总经理谢天转岗IDG
  • Vue-23-通过flask接口提供的数据使用plotly.js绘图(二)
  • Unity 多人游戏框架学习系列九
  • 图机器学习(19)——金融数据分析
  • 2026第35届中国国际健康产业博览会:探寻大健康时代的未来!
  • KTH5791——3D 霍尔位置传感器--鼠标滚轮专用芯片
  • 【C语言进阶】动态内存管理的面试题||练习
  • Day 20:奇异值SVD分解
  • 第四章自定义编辑器窗口_创建and打开and自定义窗口(3/11)
  • vue3升级了哪些重要功能
  • 边缘计算场景的轻量化实践_将 Nginx 打包为便携式 AppImage
  • 从提示词,工具,上下文管理三个角度看OpenManus
  • 嵌入式学习-(李宏毅)机器学习(2)-day29
  • go语言基础教程:【1】基础语法:变量
  • Spring Cloud OpenFeign 常用注解_笔记
  • 在 Alpine Linux 中创建虚拟机时 Cgroup 挂在失败的现象
  • 弧焊机器人减少气体消耗攻略
  • SSL 证书与 HTTPS 的关系:一文理清核心关联