Cloudflare Sandbox AI 代码执行让助手能够转换文件或运行计算,而不必将生成代码直接放入主应用。关键决策是执行环境能够访问什么。代码可以使用你提供的文件、凭据、网络路径与工具。
在为负载选择的执行边界内运行生成代码,明确限制输入、网络访问和应用能力。将有重大影响的操作保留在环境之外,使用返回产物前先验证。在扩大访问前,使用恶意代码和正常代码测试隔离、资源处理与清理。
设想分析师要求助手合并允许使用的 CSV 导出并生成图表。助手需要这些输入文件和写入输出的位置,不需要公司的整个存储账户,也不需要能修改来源系统的凭据。
本文为这项任务描述建议架构,不声称隔离能够消除所有风险,也不认为同一种沙箱环境适合所有语言与依赖。
定义 Cloudflare Sandbox AI 代码执行边界
Cloudflare 的 Sandboxes 概览 区分了容器环境与 Dynamic Workers。适合的环境取决于执行要求。应根据当前文档选择,不要假定较旧 Sandbox SDK 示例仍描述今天的接口。
针对分析师的转换任务,列出所需语言、库、输入格式、输出类型和网络目标。如果任务只需对提供文件进行本地计算,额外外部访问就需要独立理由。
负责协调的 Worker 应决定哪个作业属于哪个已认证用户。运行代码的环境只能接收任务允许的材料,而不是可用来发现更多内容的账户级凭据集合。
| 能力 | 示例是否需要? | 需要定义的边界 |
|---|---|---|
| 读取选定输入导出 | 是 | 仅已授权作业输入 |
| 写入结果文件 | 是 | 专用输出位置 |
| 访问公共互联网 | 并非必然需要 | 仅有理由时允许指定目标 |
| 读取生产凭据 | 否 | 服务权限保留在作业之外 |
| 修改来源业务记录 | 否 | 独立且经过复核的应用操作 |
按执行需求选择环境
Cloudflare 的环境选择指南 是比较可用方案的起点。确认任务实际需要的语言、依赖和生命周期要求是否受支持。
工具链确实需要时,完整命令环境可能有用,但也引入需要考虑的文件、进程与依赖行为。任务只需有限转换时,更窄的执行范围可能更易复核。
不要仅因为最强环境让首次演示更容易,就选择它。采购问题应是:该环境能否通过团队能够解释和维护的控制,完成允许的任务。
所选平台支持时,应固定执行镜像或依赖配置。随结果记录配置,让后续失败能关联到实际运行代码的环境。
将密钥和业务权限保留在应用中
Cloudflare 的凭据与网络指南 解释了相关控制范围。明确所选环境如何访问已批准服务,并在测试配置中直接验证其行为。
对于分析师作业,协调应用可以获取已授权导出并作为输入交付,生成程序只处理这些副本。如果需要另一数据源,应向应用提出请求,继续由应用执行身份和权限检查。
不要交出广泛存储凭据,再依赖提示词规定允许使用哪个文件夹。实际权限来自凭据与执行边界,而不是模型指令写得多礼貌。
输出也遵循同一原则。作业可以提出文件或结果,由独立应用组件决定是否发布、发送邮件或导入。这样能防止生成代码将转换请求变成未经复核的业务操作。
将输入和输出文件都视为不可信
执行前,按商定策略验证输入类型与大小。保留输入清单,使团队能确定究竟哪些文件进入作业。没有经过验证的隔离设计,就不要将不同用户输入混在共享工作区。
输出文件同样需要检查。扩展名正确的文件,也可能包含意外格式、隐藏内容或误导性计算。在将其作为完成结果展示前,确认产物类型、允许位置与语义检查。
对于财务图表,应将总计与来源数据比较,并解释排除项。图片渲染整洁,不能证明底层计算正确。对于压缩包或文档导出,应检查实际包含哪些文件与数据。
| 产物阶段 | 建议检查 | 防止什么 |
|---|---|---|
| 输入接纳 | 已授权来源与预期格式 | 意外跨用户数据处理 |
| 工作区准备 | 任务专用路径与有限内容 | 重用其他作业材料 |
| 输出收集 | 预期类型、路径及大小策略 | 将意外文件作为交付成果 |
| 语义验证 | 总计、引用或任务专用断言 | 看似合理却错误的结果 |
| 发布 | 明确应用权限 | 生成代码自行分发数据 |
在允许的测试环境中测试恶意代码
验收集应包含读取所提供工作区之外的内容、联系未经批准目标,以及过度消耗资源的尝试。使用合成数据与专用测试环境,避免测试本身暴露生产材料。
测试实际配置的控制。架构图没有画互联网连接,不能证明出站访问被阻止。记录访问尝试的结果,以及环境返回的原因。
Cloudflare 的沙箱安全指南 是环境边界的主要参考。应用控制仍需独立测试,包括认证、作业路由与输出发布。
也要测试普通故障:依赖导入错误、无效 CSV、永不结束的进程,以及超出应用策略大小的输出。运维人员需要明确故障类别,以及安全结束或检查作业的方法。
让生命周期与清理可以观察
定义作业何时开始、哪些事件让其结束,以及结束后保留什么。区分执行环境、保留的结果产物与运维证据。结束进程不一定删除已复制到另一存储服务的文件。
如果会恢复或重用工作区,应明确哪些任务数据可能再次出现。当路由或清理假设错误时,方便的持久工作区会变成跨任务数据问题。
记录作业归属、来源清单、执行配置、完成原因及收集的输出。只保留任务及商定复核策略所需内容。
演练失败作业之后的取消与清理。确认下一任务不能检查上一任务输入,同时应用仍能解释故障,无须不必要地保留每个文件副本。
估算受控执行服务
开发成本包含协调、身份、输入准备、执行控制、产物验证与运维,远不止运行一次命令所需的代码。
要求 GBP 方案报价,明确支持的任务类型与语言。范围有限的 CSV 转换服务,比允许在公司系统中运行任意程序的通用助手更适合作为首个明确范围。
持续成本取决于所选环境、运行时间、存储、模型使用与故障处理。应核实该环境当前平台费率,不要把容器估算套入 Dynamic Workers 设计,也不要假设空闲、失败或恢复工作都是免费的。
试点应产生有用产物,并证明其周围的边界。演示有效作业、被阻止能力、取消、清理和被拒输出。负责人可以据此判断能否安全添加其他任务类型。
我们可以通过 AI 集成试点 界定该服务。请提供输入示例、必需工具,以及没有独立授权助手绝不能执行的操作,索取沙箱执行方案 。
常见问题
沙箱会自动让 AI 生成代码安全吗? 不会。隔离是有用边界,但代码能够使用环境所获能力与数据。应定义并测试文件、凭据、网络访问、资源策略与输出处理。
应该向生成代码提供生产 API 密钥吗? 避免给予广泛服务权限。将凭据保留在能够检查访问的应用层,只暴露任务需要的有限操作。核实所选平台支持的凭据与网络控制。
所有任务都需要 Linux 容器吗? 不需要。根据语言、依赖和执行要求选择环境。Cloudflare 文档介绍不同方案,有限任务可能只需要较窄的执行范围。
助手可以自动发布生成文件吗? 只有另行约定的应用策略允许时才可以。创建产物与分发产物是不同操作。导入、发邮件或公开之前,先验证输出并检查发布权限。
隔离测试应包含什么? 在专用环境中使用合成数据,测试未授权文件访问、未批准网络目标、资源过度使用、取消和工作区清理。保留已配置控制的证据,而不只依赖架构图。
任务之间可以重用工作区吗? 只有经过明确隔离和保留设计时才可以。重用能够保留有用上下文,也可能保留其他任务的数据。依赖它之前,应测试路由、恢复内容和清理。
什么决定实施成本? 支持语言、依赖需求、输入准备、能力控制、产物验证与支持要求决定工作量。从有限任务开始,索取包含故障测试和运维交接的 GBP 方案。