更新于 2026年8月3日

设备与 Topic 策略

使用可复用的策略模板管理设备身份和发布订阅权限。

RunMQTT 将设备身份与 Topic 规则分开管理。这样可以让凭证保持最小权限,也便于在设备规模扩大后审查访问范围。

策略模板

一个模板代表一种设备角色,例如只读看板、现场传感器、网关或指令服务。同一模板下的设备使用相同的 Topic 策略,但不会共享凭证。

每条策略包含:

  • Topic Filter;
  • 发布、订阅或双向权限;
  • 可选的说明,便于后续审查。

Topic Filter 设计

Topic 应使用稳定的层级结构,先表达归属范围,再表达数据类型:

tenants/acme/sites/shanghai/devices/sensor-42/telemetry
tenants/acme/sites/shanghai/devices/sensor-42/state
tenants/acme/sites/shanghai/devices/sensor-42/commands

+ 只匹配一层,# 会匹配剩余的整棵 Topic 树。# 应仅用于可信网关或后端服务身份。

建议为遥测和指令分别设置规则。负责上报遥测的传感器通常不需要发布指令;只订阅状态的看板也通常不需要设备级发布权限。

设备凭证

每台设备都有独立的连接凭证。凭证只属于一个 Broker 和一份策略模板。删除或轮换设备身份不会改变账户登录,也不会影响其他设备。

即使多个测试客户端使用同一设备密钥,也应为每个并发连接使用不同的 Client ID。Broker 会将同时在线的 Client ID 分别计入连接数。

安全发布流程

  1. 先用最小 Topic 范围创建模板。
  2. 从模板创建一台测试设备。
  3. 验证允许的发布与订阅操作。
  4. 验证超出范围的 Topic 会被拒绝。
  5. 确认策略符合预期后,再添加生产设备。

共享模板的变更可能影响所有关联设备。调整通配符时,应像审查应用权限变更一样谨慎。