Skip to content

Security: nasa-runtime/nacket

Security

SECURITY.md

安全说明

English

信任边界

nacket 管理长连接、路由权限和受信消息投递,不代替业务身份系统、成员关系存储或业务历史服务。默认没有在线路由,客户端互发与管理动作默认关闭;部署者必须明确配置身份、订阅、业务来源及控制权威。

配置文件、Nacos 配置、管理身份和控制 MQ 均属于高权限输入。限制文件写权限、配置中心账号及 broker ACL;不能把控制管理员秘密、节点密钥或生产者签名密钥交给客户端。Redis/Kafka 的 ACL 身份模式只适用于实际隔离生产权限的入口,共用写权限时使用受约束的签名生产者身份。

远程身份和授权只调用部署批准的固定端点。客户端不能指定 URL、服务凭据或发布目的地。超时、结果未知、关联不符、期限无效及持久权威不可用均不会产生权限。订阅群 ID 不证明成员身份;readiness 成功也不证明任意业务操作被授权。

网络与材料

  • 业务入口接收明文 TCP 和 WebSocket Upgrade,不内置 TLS 终止或 PROXY protocol。由可信网关提供 TLS,并保护网关到服务的链路;来源准入使用实际 socket 对端。
  • 健康 HTTP 默认独立监听 3031;管理动作需要单独开启并限制身份与真实对端范围。不要把管理接口直接暴露到公网。
  • 监控默认关闭;启用时使用独立监听、认证和网络范围。指标与日志可能包含部署、路由、会话及主体标识,应限制访问和保留时间。
  • JWT 密钥、Bearer 凭据、网关断言、broker 密码及完整业务正文不得进入公开配置、Issue、镜像层、构建日志或公开归档。示例中的环境变量只表示材料入口。
  • 容器使用 UID/GID 10001:10001。配置只读挂载;数据与文件日志使用独立可写卷。只读根文件系统不限制宿主机管理员修改挂载内容。

持久状态与撤权

每个逻辑节点使用稳定 nodeId 和独占的数据卷。同一数据卷不能供两个实例同时使用。本地控制不提供跨节点一致性;集群必须配置持久控制后端、节点身份和正确的作用域。

控制状态、撤权基线或卷丢失后,不得通过空初始化重新开放旧作用域。先围栏旧实例,再恢复持久事实并确认新许可。配置受理、路由 Applied、broker 确认、完整写出与业务处理是不同阶段。

撤权关闭后续权限并等待适用的写出屏障,不撤回已经完成的网络写入。通知队列不是持久 outbox,崩溃可能丢失上下线事实;业务在线状态需要租期或对账。实时业务入口不会补发离线积压,历史和重放由业务侧管理。

私密报告

优先使用 GitHub Private Vulnerability Reporting。入口不可用时,先通过仓库所有者提供的私有渠道建立联系。公开 Issue 仅放脱敏的稳定错误类别,不提交凭据、完整配置、可利用材料、业务正文或未脱敏抓包。

请说明受影响的提交或产品版本、入口、信任前提、可观察后果和不含敏感数据的最小复现步骤。安全报告不承诺固定响应时间或特定维护期限。

There aren't any published security advisories