Vercel Sandbox 推出高级出口防火墙过滤,支持按主机名精准控网

2 分钟阅读
2026 年 2 月 11 日
Vercel Sandbox 现在可以通过 Server Name Indication(SNI)过滤和 CIDR 网段来强制执行出口网络策略,让你精确控制 Sandbox 能访问哪些主机。出站 TLS 连接会在握手阶段与策略进行匹配,未授权目的地会在任何数据传输前被拒绝。
默认情况下,Sandbox 拥有不受限制的互联网访问能力。当你运行不受信任或由 AI 生成的代码时,可以将网络收紧到仅允许工作负载真正需要的服务。即使代码片段被攻陷或出现“幻觉”行为,也无法外传数据或发起非预期 API 调用;任何不在 allowlist 中的域名流量都会被拦截。
Link to heading从基于 IP 的规则,升级到基于主机的控制
现代互联网以主机名为核心,而不是 IP 地址;少量地址往往承载成千上万个域名。传统基于 IP 的防火墙规则无法精确区分这些目标。
基于主机的出口控制通常依赖 HTTP 代理,但这会破坏 Redis、Postgres 等非 HTTP 协议。为此,我们构建了一个可窥探 SNI 的防火墙:它检查 TLS 握手初始阶段未加密的字节并提取目标主机名。由于当今几乎所有互联网流量都已采用 TLS 加密,这种方式覆盖了绝大多数相关场景。对于旧系统或非 TLS 系统,我们也提供基于 IP/CIDR 的规则作为兜底方案。
Link to heading创建时即限制可访问主机
你可以定义 Sandbox 可访问的域名,默认拒绝其他所有目标。借助通配符支持,也能轻松将位于 CDN 后的服务加入 allowlist:
import { Sandbox } from '@vercel/sandbox';const sandbox = await Sandbox.create({ networkPolicy: { allow: ['ai-gateway.vercel.sh', '*.vercel.com'], },});// Can reach Vercel AI Gateway and Vercel, nothing elseawait sandbox.runCommand('node', ['process-data.js']);
Link to heading初始配置后可动态调整
你可以在 Sandbox 运行期间动态更新策略,而无需重启进程。比如:先开放全网以安装依赖;执行不受信任代码前再收紧;用户批准后短暂放开用于回传结果;最后再通过 deny-all 彻底隔离——全程都可在同一会话中完成:
import { Sandbox } from '@vercel/sandbox';const sandbox = await Sandbox.create();// Phase 1: Open network, download everything we needawait sandbox.runCommand('npm', ['install']);await sandbox.runCommand('aws', ['s3', 'cp', 's3://my-bucket/input-data', './data', '--recursive']);// Phase 2: Lock down, only the AI gateway is reachableawait sandbox.updateNetworkPolicy({ allow: ['ai-gateway.vercel.sh'],});// Run the untrusted / agent-driven workload in isolationawait sandbox.runCommand('node', ['agent.js']);// Phase 3: Open a narrow hole to post results backawait sandbox.updateNetworkPolicy({ allow: ['my-bucket.s3.amazonaws.com'],});await sandbox.runCommand('aws', ['s3', 'cp', './output/results.json', 's3://my-bucket/output/results.json']);// Phase 4: Lockdown Internet accessawait sandbox.updateNetworkPolicy('deny-all');
阅读文档了解更多网络出口防火墙策略细节,该能力现已在所有套餐中可用。
原文链接:https://vercel.com/changelog/advanced-egress-firewall-filtering-for-vercel-sandbox

