--- title: "ISM 允许操作列表配置" date: 2026-02-24 lastmod: 2026-02-24 description: "控制 ISM 允许执行操作的配置说明" tags: ["ISM", "访问控制", "安全配置"] summary: "配置项作用 # index_state_management.allow_list 配置项控制 ISM 策略中允许执行的操作类型,用于限制可用的 ISM 操作。 是否可选 # 是 默认值 # [alias, allocation, close, delete, force_merge, index_priority, open, read_only, read_write, replica_count, rollup, rollover, shrink, snapshot, wait_for_snapshot] 配置项类型 # 动态配置 - 可以在运行时修改 配置格式 # # 默认配置(允许所有操作) index_state_management.allow_list: - alias - allocation - close - delete - force_merge - index_priority - open - read_only - read_write - replica_count - rollup - rollover - shrink - snapshot - wait_for_snapshot # 限制允许的操作 index_state_management." --- ## 配置项作用 `index_state_management.allow_list` 配置项控制 ISM 策略中允许执行的操作类型,用于限制可用的 ISM 操作。 ## 是否可选 是 ## 默认值 ``` [alias, allocation, close, delete, force_merge, index_priority, open, read_only, read_write, replica_count, rollup, rollover, shrink, snapshot, wait_for_snapshot] ``` ## 配置项类型 **动态配置** - 可以在运行时修改 ## 配置格式 ```yaml # 默认配置(允许所有操作) index_state_management.allow_list: - alias - allocation - close - delete - force_merge - index_priority - open - read_only - read_write - replica_count - rollup - rollover - shrink - snapshot - wait_for_snapshot # 限制允许的操作 index_state_management.allow_list: - rollover - delete - snapshot # 只允许只读操作 index_state_management.allow_list: - close - open - read_only - read_write ``` ## 可用操作说明 | 操作 | 说明 | 风险级别 | |------|------|---------| | `alias` | 管理索引别名 | 低 | | `allocation` | 修改分片分配 | 中 | | `close` | 关闭索引 | 低 | | `delete` | 删除索引 | 高 | | `force_merge` | 强制合并 | 中 | | `open` | 打开索引 | 低 | | `read_only` | 设为只读 | 低 | | `read_write` | 设为可写 | 低 | | `replica_count` | 修改副本数 | 中 | | `rollover` | 滚动索引 | 低 | | `shrink` | 收缩索引 | 中 | | `snapshot` | 创建快照 | 低 | | `wait_for_snapshot` | 等待快照完成 | 低 | | `index_priority` | 设置索引优先级 | 低 | | `rollup` | 汇总数据 | 中 | ## 推荐设置 | 环境 | 推荐值 | 说明 | |------|--------|------| | 默认配置 | 所有操作 | 完整功能 | | 只读环境 | 只读操作 | 防止修改 | | 安全优先 | 排除危险操作 | 限制删除等 | ## 使用示例 **默认配置:** ```yaml index_state_management.allow_list: - alias - allocation - close - delete - force_merge - index_priority - open - read_only - read_write - replica_count - rollup - rollover - shrink - snapshot - wait_for_snapshot ``` **安全配置(排除危险操作):** ```yaml index_state_management.allow_list: - rollover - close - open - read_only - read_write - replica_count - snapshot ``` **只读操作配置:** ```yaml index_state_management.allow_list: - close - open - read_only - read_write ``` ## 配置验证 ```bash # 查看当前配置 GET /_cluster/settings?filter_path=*.index_state_management.allow_list # 测试策略执行 PUT _policies/test_policy { "policy": { "states": [ { "name": "hot", "actions": [ {"rollover": {"max_age": "1d"}} ] } ] } } ``` ## 常见问题 **问题 1:操作不被允许** **错误信息:** ``` illegal_argument_exception: operation [delete] is not allowed ``` **解决方案:** ```yaml # 添加允许的操作 index_state_management.allow_list: - delete ``` **问题 2:安全顾虑** **解决方案:** ```yaml # 排除危险操作 index_state_management.allow_list: - rollover - close - snapshot ``` ## 注意事项 1. **动态配置**:可以在运行时修改 2. **白名单机制**:只允许列表中的操作 3. **安全考虑**:生产环境应排除危险操作 4. **策略限制**:策略中的操作必须在允许列表中 5. **默认值**:默认允许所有操作 ## 相关配置项 | 配置项 | 默认值 | 说明 | |-------|-------|------| | `index_state_management.enabled` | true | 是否启用 ISM | | `index_state_management.action_validation.enabled` | false | 是否启用操作验证 | ## 完整配置示例 ```yaml # easysearch.yml # 安全配置(排除危险操作) index_state_management.enabled: true index_state_management.allow_list: - alias - close - open - read_only - read_write - replica_count - rollover - snapshot ```