配置项作用 #
action.destructive_requires_name 配置项控制执行破坏性索引操作(如删除索引、关闭索引等)时,是否必须明确指定索引名称,禁止使用通配符(*)或 _all 等模糊匹配方式。
该配置项的目的是防止因误操作导致大量索引被意外删除或关闭,提高集群的安全性。
配置项类型 #
该配置项为动态配置,可以在运行时通过集群更新 API 进行修改,无需重启节点。
默认值 #
false
是否必需 #
可选配置项
配置值说明 #
| 值 | 说明 |
|---|---|
true | 执行破坏性操作时必须明确指定索引名称,禁止使用通配符或 _all |
false | 允许使用通配符或 _all 执行破坏性操作(默认) |
影响的操作 #
此配置项影响以下破坏性操作:
- 删除索引:
DeleteIndexAction - 关闭索引:
CloseIndexAction - 其他可能影响多个索引的破坏性操作
使用示例 #
# 启用安全模式,禁止通配符删除
action.destructive_requires_name: true
# 允许通配符删除(默认)
action.destructive_requires_name: false
行为说明 #
当设置为 true 时:
#
允许的操作示例:
# 删除单个指定索引(允许)
DELETE /my-index
# 删除多个明确指定的索引(允许)
DELETE /index1,index2,index3
禁止的操作示例:
# 使用通配符(禁止)
DELETE /my-index-*
# 删除所有索引(禁止)
DELETE /_all
# 使用前缀通配符(禁止)
DELETE /*-logs
上述禁止操作将返回错误:
IllegalArgumentException: Wildcard expressions or all indices are not allowed
推荐设置建议 #
生产环境强烈建议设置为 true
理由:
- 防止误操作:避免因
DELETE /*或DELETE /_all等命令导致生产数据全部丢失 - 提高操作安全性:强制运维人员明确指定要操作的索引名称,减少人为失误
- 审计友好:操作日志中会明确记录被操作的索引名称,便于审计追踪
示例配置:
action.destructive_requires_name: true
开发/测试环境 #
可以考虑保持默认值 false,方便快速清理测试数据。但建议在脚本中使用明确的索引名称而非通配符,培养良好的操作习惯。
注意事项 #
- 动态更新:修改此配置后立即生效,影响所有新执行的破坏性操作
- 不影响的操作:此配置仅影响破坏性操作,不影响查询、索引更新等非破坏性操作
- API 兼容性:某些管理工具或脚本可能依赖通配符删除功能,启用前请检查
- 配合其他安全措施:建议与索引别名、快照备份等机制配合使用,构建完整的数据保护策略





