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

一、Elasticsearch安全审计简介

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

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

二、启用审计日志

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

yaml 复制代码
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_denied、run_as_granted(以他人身份执行的权限事件)
  • security_config_change(安全配置变更)

配置示例:

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

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

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

排除事件示例:

json 复制代码
PUT /_cluster/settings
{
  "persistent": {
    "xpack.security.audit.logfile.events.exclude": ["connection_denied"]
  }
}

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

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

json 复制代码
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 节点唯一ID true

配置示例:

json 复制代码
PUT /_cluster/settings
{
  "persistent": {
    "xpack.security.audit.logfile.emit_node_host_address": true,
    "xpack.security.audit.logfile.emit_node_name": true
  }
}

五、事件忽略策略

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

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

json 复制代码
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审计日志功能,管理员能够有效监控和审查安全相关事件,及时发现潜在风险,保障集群的安全运行。本文介绍的设置方法与最佳实践,将帮助用户在安全与性能之间找到适当平衡。

相关推荐
Elastic 中国社区官方博客2 小时前
Elastic 重大事件功能如何将 100 条日志样本转化为检测规则
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎
赛博守夜人2 小时前
AI安全攻防与治理之十:模型输出中的敏感信息从哪里来,记忆、检索、日志与上下文泄露的区别
人工智能·安全
消费电子测评研究中心2 小时前
2026年智能门锁安全技术研究报告:活体检测、防撬报警与加密技术解析
安全
jimmyleeee3 小时前
Agent安全之四:Agentic Supply Chain Vulnerabilities(ASI04)---当 Agent 信任了不该信任的运行时依赖
人工智能·安全
linfen15203 小时前
X 语言设计全景:原生性能、资源安全、AI 协作与未来软件的无限想象
人工智能·安全
QZ166560951594 小时前
高效・AI 优化・多模态:知镜-数据安全检测工具政务数据安全管理方案
网络·安全·网络安全
五萝卜4 小时前
应急响应 WP
安全·应急响应
Vitaliy Kostrov(柯维远)4 小时前
Multi-CDN 决策闭环:QoE、成本、安全与内容正确性如何进入同一个策略引擎?
安全·网络安全·云计算·音视频·负载均衡·cdn
Dola_Zou4 小时前
从二进制加固到离线鉴权 工业边缘AI安全防御架构
人工智能·安全·ai·架构·软件加密
humors2214 小时前
国家互联网应急中心9-10月威胁预警
安全·漏洞·dns·木马·僵尸网络·后门·银狐