FutrixData logo FutrixData
Redis 安全

面向 AI agent 的 Redis 安全 — 阻断 FLUSHALL、KEYS * 与管理类命令

面向 AI agent 的 Redis 安全会拦截清空命令(FLUSHALL、FLUSHDB、SHUTDOWN)、管理类命令(CONFIG SET、MIGRATE、SCRIPT FLUSH)以及阻塞性读取(KEYS *、宽 LRANGE / ZRANGE)。Redis 没有 EXPLAIN 等价物 — FutrixData 通过命令语义与 key 模式来治理。

Redis 风险面

Redis 风险更接近"命令安全"与"key 范围安全",而非查询优化。危险操作是清空命令、会阻塞单线程服务的大范围扫描,以及变更集群状态、ACL 或模块的管理命令。

内置 Redis 规则

命令类别默认动作
FLUSHALLFLUSHDBSHUTDOWNblock
CONFIG SETCONFIG RESETSTAT、危险的 CLUSTER 子命令block
ACL SETUSERACL DELUSERSCRIPT FLUSHFUNCTION FLUSHMODULE LOADCLIENT KILLMIGRATEblock
写入 — SETDELHSETLPUSHSADDZADDEXPIRERENAMEwarn
大范围读取 — KEYSSCANHGETALLSMEMBERS、宽 ZRANGE / LRANGEwarn
脚本 — EVALEVALSHAwarn

Key 模式规则

规则可以按 key 模式配置,例如:

为什么 Redis 没有 EXPLAIN 等价物

Redis 不暴露执行前的成本估算。FutrixData 把命令语义与 key 模式作为控制面 — 没有像 SQL EXPLAIN 那样的探针层。这是有意的:如果探针本身要执行 KEYS,就会制造出我们正想阻止的问题。

示例

清空命令被拦截
// agent 尝试:
FLUSHALL

// FutrixData 响应:
{ "ok": false, "risk": "block", "rule": "redis.flush_all" }
大范围扫描被标记
// agent 尝试:
KEYS *

// FutrixData 响应:
{ "ok": false, "risk": "warn", "rule": "redis.broad_scan",
  "reason": "KEYS * blocks the server on large keyspaces; use SCAN with MATCH" }

常见问题

支持 Redis Cluster 吗?

支持。集群连接会被自动识别,规则按命令应用。危险的 CLUSTER 子命令(CLUSTER FAILOVERCLUSTER RESET)默认阻断。

阻塞类命令如何处理?

会处理。BLPOPBRPOPWAIT 会被识别;可以约束超时并要求审批无界阻塞调用。

可以仅在开发 key 上允许 FLUSHDB 吗?

可以 — 按数据源。在 prod-redis 上阻断 FLUSHDB,在 dev-redis 上允许(或 warn)。信任模式提供另一个抓手:开发数据源用 Trusted,生产数据源用 Cautious。

Lua 脚本(EVAL)如何处理?

EVAL / EVALSHA 默认 warn。可以按数据源硬阻断它们。SCRIPT FLUSHFUNCTION FLUSH 直接阻断。

与 Sentinel 协同工作吗?

可以。FutrixData 通过支持 Sentinel 的 Redis 客户端连接;规则评估完全相同。

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

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