EMS 安全与治理
身份与权限
EMS 采用租户、用户、角色、菜单、按钮和数据范围的多层权限模型。平台管理员可管理租户与套餐,租户管理员可管理本租户公司与员工,普通用户只能访问被授权的公司或电站。

安全治理解决的是“谁能看、谁能改、谁能控制设备”的问题。平台把公司、电站、人员、角色和按钮权限拆开管理,既方便安装商托管多个客户,也避免普通用户看到不该看的站点或误操作高风险设备。
数据隔离
- 所有 EMS 业务表使用租户边界。
- 公司和电站权限由后端再次校验,不依赖前端隐藏菜单。
- 资源绑定带有生效和失效时间,历史统计按采样时间匹配当时的归属。
- 设备与控制器必须在同一租户、同一公司和同一电站边界内绑定。
凭据安全
控制器凭据、数据源令牌和邮件密码不以明文保存。列表页默认显示脱敏值,只有具备单独权限的用户才能在明确操作后查看,查看行为进入审计日志。生产环境优先使用环境变量或密钥服务注入敏感配置。
控制治理
- 只向前端暴露设备实际支持的控制能力。
- 控制前校验设备启用、控制器在线、能力未过期与参数合法性。
- 超时命令进入结果未知状态,不自动重试可能造成现场动作的命令。
- 记录操作人、资源、参数、命令结果、耗时和错误码。
- 任何成功回复都不夸大为现场输出已达标,实际效果由后续采样确认。
可观测与审计
| 范围 | 记录内容 |
|---|---|
| 用户访问 | 登录、登出、异常认证、权限拒绝 |
| 配置变更 | 电站、设备、电价、告警规则与业务参数 |
| 资源编排 | 创建任务、预检、下发、验证、失败与重提 |
| 现场控制 | 命令、参数、返回、超时与待核对状态 |
| 数据工程 | 同步、补拉、报表物化、重算、保留和清理 |
上线基线
- 应用、数据库、缓存和控制器节点保持时间同步。
- 生产凭据不写入 Git、配置中心明文或普通日志。
- 定时任务在多实例环境使用分布式锁。
- 数据库唯一键、绑定区间和幂等键上线前完成检查。
- 发布前准备应用、数据库和静态资源的可回滚版本。
威胁模型
重点防护对象包括租户越权、控制命令伪造、凭据泄露、时序数据篡改和高频查询耗尽资源。API 层使用短时访问令牌和刷新令牌分离,控制接口要求幂等号并写入审计;边缘网关/接入中台通道使用 TLS,API Key 仅用于连接鉴权,业务用户身份不下发到现场。
密钥轮换
凭据采用 credentialRef 引用环境变量或密钥服务。轮换时先写入新版本,执行 API/Influx 连通性测试,再切换引用,保留旧版本短暂重叠窗口;页面只显示末四位指纹。生产日志通过字段级脱敏过滤 token、password、apikey、secret。
审计不可抵赖
审计事件使用追加写入模型,包含操作者、租户、来源 IP、请求 ID、资源、变更前后摘要、结果和时间。高风险操作额外记录参数哈希和审批单号;审计存储至少保留 180 天,清理任务只允许归档,不允许业务管理员直接删除。
变更门禁
数据库迁移必须可重复执行并提供回滚说明;接口变更先兼容旧字段再切换客户端;控制算法、电价和收益公式变更必须带版本号、样例输入输出和回算结果。上线前执行租户隔离、权限绕过、命令超时、重复请求和数据缺口场景测试。
企业级治理能力
安全与治理模块的目标很直接:系统要能长期交给企业放心使用,也要经得起客户审计。平台把身份权限、数据范围、凭据安全、控制审计、公式版本、任务留痕和日志脱敏统一管起来,让每一次查看、修改和控制都有边界、有记录。
| 治理维度 | 能力说明 | 高阶价值 |
|---|---|---|
| 身份治理 | 用户、角色、菜单、按钮和数据范围多层控制 | 防止越权访问和跨客户数据泄露 |
| 控制治理 | 高风险命令有权限、能力、边界、审计和结果验证 | 让远程控制具备企业级风控能力 |
| 凭据治理 | API Key、数据源密码、邮件密码均脱敏和引用化 | 降低生产凭据泄露风险 |
| 数据治理 | 质量码、版本号、绑定区间和重算原因贯穿链路 | 保证报表和收益可以被复核 |
| 审计治理 | 配置、控制、报表、告警、补拉全流程追加记录 | 支撑客户验收、争议追溯和合规要求 |
风控亮点
平台把“能不能看”和“能不能操作”拆开治理:查看实时指标只需要数据范围,执行控制命令还必须满足独立按钮权限、设备能力、在线状态、参数范围、互斥策略和审计要求。收益、电价和算法类变更必须版本化,避免业务人员调整规则后影响历史已审核结果。所有敏感字段进入日志前脱敏,所有高风险操作进入审计链路,确保平台可用于真实生产环境和多客户托管场景。
