FutrixData logo FutrixData
Elasticsearch 安全

面向 AI agent 的 Elasticsearch 安全 — 阻断批量删除,门控 _reindex

面向 AI agent 的 Elasticsearch 安全会检视 HTTP 方法、路径与请求体。DELETE 与 _delete_by_query 会被阻断,_bulk 与 _reindex 需要审批,FutrixData 还会检测无界查询(match_all、深度 from + size、无脚本聚合)。

为什么 Elasticsearch 需要不同的控制

在 Elasticsearch 中,风险常常隐藏在 HTTP 方法、API 路径与请求体里。一个 POST 可能是搜索,也可能是批量写入;一个 _search 可能演变为无界扫描;不带过滤条件的聚合可能扫描数十亿文档。FutrixData 把 Elasticsearch 当作 HTTP API 来处理 — 解析路径、方法与 JSON 体 — 而不是调用 Elasticsearch 的 profile API(profile 自身代价高昂)。

内置 Elasticsearch 规则

操作默认动作
GETHEADPOST _searchPOST _countallow
DELETE 请求block
POST _delete_by_queryblock
_bulk_reindex_update_by_queryrequire_approval
配置类 — _settings_mapping_aliases、模板、管道、ILM/SLMrequire_approval
普通 PUTPATCH、非搜索的 POSTwarn

请求体分析

除方法与路径外,FutrixData 还会检视请求体中是否存在:

索引模式规则

规则可按索引模式、方法与路径设定作用域。示例:

示例

批量删除被拦截
// agent 尝试:
POST /orders-2024/_delete_by_query
{ "query": { "match_all": {} } }

// FutrixData 响应:
{ "ok": false, "risk": "block", "rule": "es.delete_by_query" }
Reindex 需要审批
// agent 尝试:
POST /_reindex
{ "source": { "index": "orders-2023" }, "dest": { "index": "orders-archive" } }

// FutrixData 响应:
{ "ok": false, "risk": "require_approval", "rule": "es.reindex" }

常见问题

与 OpenSearch 兼容吗?

兼容。FutrixData 使用标准 Elasticsearch HTTP API;OpenSearch 响应同样的路由。规则一致地适用。

可以在 staging 上允许 _bulk 吗?

可以 — 按数据源与信任模式。把 staging 集群设为 Trusted 即可让 _bulk 自动执行;生产保持 Cautious 以要求审批。

会检查 Painless 脚本吗?

请求体检视会标记包含 scriptscript_score 的请求。"标记"意味着 warn 或更高级别;可以在生产数据源上硬阻断含脚本的查询。

ILM/SLM 如何处理?

ILM 与 SLM 端点默认 require_approval — 它们会变更保留策略与快照策略,不应在没有明确确认的 agent 上下文中被修改。

集群认证?

FutrixData 使用你配置的凭证连接(基本认证、API key、为 OpenSearch 配置的 mTLS)。这些凭证不会离开部署 FutrixData 的主机。

在你自己的数据库上试用 FutrixData

免费桌面应用支持 macOS、Windows、Linux。生产环境部署可选自托管 Enterprise Edition。