云沙箱用于运行 AI 生成代码、用户上传脚本、第三方依赖、自动化测试和临时工具服务。它提供隔离执行环境,但不等于“任何代码都可以无条件安全运行”。云沙箱安全遵循责任共担模型:平台负责提供安全的云上基础设施和隔离能力,用户负责安全地配置、调用、授权和处理在 Sandbox 中运行的代码与数据。
安全边界必须在接入设计阶段确定,不能等到上线后再通过日志和工单补救。
平台责任
平台负责云沙箱服务自身的安全,包括:
提供 Sandbox 生命周期管理能力,支持创建、连接、暂停、恢复、终止和超时回收。
提供运行隔离和资源边界,降低不同任务、不同用户、不同 Sandbox 之间互相影响的风险。
提供控制面鉴权能力,只有通过认证和授权的调用方才能管理云沙箱资源。
提供 API Key、Endpoint、模板、文件、命令和访问地址等能力的基础安全机制。
按云产品要求保障服务端基础设施、控制面、数据面链路和平台运维安全。
平台的隔离能力用于降低风险,但不替代业务侧的权限治理、输入校验、密钥管理、日志脱敏、数据分级和合规审计。
用户责任
用户需要对自己的账号、配置、代码、数据和业务访问链路负责,包括:
管理 API Key、RAM 身份、STS 临时凭证和第三方 Token,避免泄露和过度授权。
判断哪些代码可以运行在 Sandbox 中,并对用户输入、AI 生成代码、上传文件和第三方依赖进行校验。
控制 Sandbox 可访问的文件、环境变量、网络、云资源和公网端口。
为每个任务设置合理的 Sandbox 超时、命令超时、输出大小限制和资源清理逻辑。
对 stdout、stderr、异常堆栈、下载文件和对外返回结果做敏感信息过滤。
按租户、任务、环境和数据等级隔离存储目录、外部数据源和访问凭证。
对公网暴露的 Sandbox 服务自行增加鉴权、过期、访问范围控制和审计。
如果业务把生产密钥、数据库权限、内网管理地址或高权限云账号凭证暴露给不可信代码,即使代码运行在 Sandbox 中,也可能造成数据泄露、越权访问或资源滥用。
共同关注的风险
使用云沙箱时,至少要识别以下风险:
凭证泄露:环境变量、日志、异常堆栈、命令输出或下载文件中包含 API Key、AccessKey、数据库密码或第三方 Token。
数据越权:一个任务访问了其它租户、其它会话或其它项目的数据目录、NAS/OSS 路径或数据库资源。
命令注入:用户输入被直接拼接进 shell 命令,导致执行非预期命令。
网络滥用:不可信代码访问内网管理地址、数据库、元数据服务、第三方站点或发起扫描、爬取和外传。
资源耗尽:死循环、大文件写入、后台进程、递归下载、依赖安装或高并发任务导致费用和可用性风险。
供应链风险:模板中安装的系统包、语言依赖、浏览器插件、CLI 工具或镜像来源存在漏洞或后门。
公网暴露:通过 Sandbox 端口公开了未鉴权的调试服务、管理接口或临时 Web 服务。
日志与元数据泄露:把用户隐私、业务数据、密钥或下载链接写入日志、metadata、标签、文件名或工单。
最低安全基线
生产接入云沙箱前,至少应满足以下基线:
不使用主账号长期凭证调用云沙箱;优先使用最小权限 RAM 身份和短期凭证。
不把高权限长期密钥注入 Sandbox;确需访问外部资源时,使用任务级、短期、最小权限凭证。
每个任务使用独立 Sandbox 或独立工作目录,不复用包含敏感状态的运行环境。
对所有用户输入、文件路径、URL、命令参数和下载文件做校验。
对命令和 Sandbox 设置超时,并在
finally或等效逻辑中释放资源。对公网端口、上传下载地址和预览链接设置鉴权、过期和访问范围控制。
对日志、输出和错误信息做脱敏,避免把完整执行上下文直接返回给终端用户。
对模板和依赖做版本固定、来源校验和定期漏洞修复。
相关文档: