沙箱与执行隔离
模型生成的代码与命令要在隔离环境里执行:容器或轻量虚拟机、不放敏感凭据、限时限资源、默认无外网或仅白名单出站。原则是假定执行内容不可信,任何一次执行都可能带副作用,因此要让失败的影响面可控。挂载了生产凭据的沙箱,隔离是假的。
基本信息
| 隔离 | 容器或轻量虚拟机,不共享宿主机敏感目录 |
|---|---|
| 凭据 | 环境内不放长期密钥;需要时下发短期凭证 |
| 资源 | CPU / 内存 / 磁盘配额,执行超时强制终止 |
| 网络 | 默认无外网;出站走白名单代理并记录 |
典型使用场景
- 数据分析代理:让模型写脚本处理数据,在沙箱里跑
- 代码助手:执行生成的代码并返回测试结果
- 浏览器代理:抓取页面时的会话与网络出口受控
- 文件处理:解析上传文件时的转换脚本隔离运行
- 评测流水线:执行候选代码判对错,与生产环境完全隔离
沙箱基线
沙箱基线
隔离:独立容器或轻量虚拟机,不挂载宿主机敏感目录
凭据:环境内不放长期密钥;需要时下发短期凭证
资源:CPU / 内存 / 磁盘配额,执行超时强制终止
网络:默认无外网;出站走白名单代理并记录
产物:执行输出与中间文件留存,便于事后排查
# 检查清单
□ 沙箱内没有生产环境的连接串与环境变量
□ 超时时间按任务类型分别设置
□ 执行失败与服务不可用是两条告警,分开监控隔离要素与失效方式
| 要素 | 作用 | 被削弱时的表现 |
|---|---|---|
| 容器隔离 | 限制可见的宿主资源 | 挂载敏感目录,隔离名存实亡 |
| 凭据管理 | 限制可操作的外部系统 | 长期密钥留在环境里,泄露即可被滥用 |
| 资源配额 | 防止单次执行拖垮节点 | 无配额时一个死循环影响整台机器 |
| 网络出口 | 控制数据外发与内网探测 | 放开出网后可被用于扫描或外带数据 |
| 执行日志 | 支撑事后排查 | 无日志时无法判断执行做了什么 |
配额与超时是一对:只设 CPU 上限不设超时,长任务会长时间占用配额拖慢队列;只设超时不设配额,内存暴涨仍可能打挂节点。两个一起配才有意义。
沙箱里刻意保留一点能力(例如受限的只读数据挂载)往往比完全空环境更实用,但每一项挂载都要有明确理由并写进评审记录。