NVIDIA 发布了用于隔离运行自主 AI 智能体的 OpenShell 新版本。此次更新要求明确指定发送给外部服务的认证信息应放在请求的哪个位置,并为支持实时双向通信的 WebSocket 连接设置独立的允许规则。将智能体连接到服务的开发者和运维人员需要检查现有认证配置与通信策略。
1. 凭据须明确指定请求中的位置
未指定放置信息的静态提供方凭据,现在仅按 Authorization 标头或显式启用的正文、WebSocket 重写策略处理。若要在重写请求时插入认证信息,必须启用相应策略。
若要将凭据放入 x-api-key 等自定义标头、附加在 URL 请求中的查询参数或路径中的指定位置,则需要声明放置方式。配置中的 auth_style 决定实际采用的放置方式,其他方式的字段会被忽略。这意味着配置不仅要选择认证信息的内容,还要选择其在请求中的位置。
2. WebSocket 需要允许规则
接收 HTTP 请求的 REST 端点,在强制模式和审计模式下都会对 HTTP 升级请求返回 403。这意味着将普通 HTTP 连接转换为 WebSocket 的请求,不再由现有 REST 规则处理,而须采用 WebSocket 专用策略。
要使用 WebSocket,必须将协议指定为 WebSocket,并配置适用于初始协商连接设置的握手及后续消息的规则。WebSocket 凭据重写功能也只有在配置了 WebSocket 端点后才能启用。需要明确连接建立阶段和消息处理阶段各自的允许范围。
3. 文件、网络边界及审计路径变更
如果文件策略路径经过可写工作区内指向其他路径的符号链接,沙箱将启动失败。即使在尽可能应用策略、仅执行可用措施的尽力而为模式下也是如此,策略中必须填写链接所指向的实际路径。
透明 TCP 连接,即保留原始目的地址进行转发的连接,会将包含 IPv4 地址的 IPv6 目的地址按 IPv4 进行评估。使用此类目的地址的网络规则必须改用 IPv4 地址。即使目的地址相同,也需要让地址表示方式符合策略评估标准。
审计记录中标识活动所属沙箱的位置也发生了变化。沙箱侧的管理组件 supervisor 会将标识信息写入设备的容器条目。转发请求的网关则按事件类型,将其记录在资源列表或独立的沙箱条目中。原先读取顶层容器字段的安全日志分析解析器需要更新映射。
AWS SigV4 是为 AWS 请求添加签名的认证方式,其诊断信息已不再写入 supervisor 的详细跟踪日志。这项修正减少了临时会话令牌可能暴露在日志中的途径。
4. 内存与故障处理改进
据公司公告,沙箱删除后内存仍残留在网关中、反复创建和删除会导致内存耗尽的问题已修复。此前为每个沙箱预分配约 3.4 MiB 流缓冲区,即临时存储数据流的内存区域,这一行为也已取消。这能减轻频繁创建和删除沙箱时的内存负担。
据公司公告,无法连接 PostgreSQL 时,网关请求会在约 5秒内以可重试的 UNAVAILABLE 错误结束。故障期间启动的网关也会在数据库恢复后进入就绪状态,而非陷入反复退出和重启。
公司称,在 Kubernetes 中删除沙箱时,不再等待 Pod(共同运行容器的单元)的 30秒终止宽限期。该数值指此前需要等待的宽限期,而非删除所需的总时间。
5. 运维人员应检查什么
发行说明建议先升级网关,再升级 supervisor。此前已导入的配置档案也应按需更新,因为仅编辑参考 YAML 不会更新网关列表。
发行说明提供的快速安装命令如下。
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | OPENSHELL_VERSION=v0.1.8 sh此次发布的益处在于明确凭据放置位置及网络允许边界,并改善网关的反复运行和故障恢复能力。相应工作包括修改配置、确认升级顺序,以及更新现有审计解析器和网络策略。
v0.1.8 同时改进了沙箱安全边界和运维恢复能力,使用现有配置的运维人员需要相应调整策略与部署顺序。
