在 Google Cloud,我们经常听到这样一个问题:如何在不将宿主应用、数据和云凭证置于风险之下的前提下,安全地运行 AI 生成的代码或不受信任的二进制文件?换句话说,如何给 AI 编写的程序提供一个安全的运行空间——让它们与具有更高权限的可信程序完全隔离?

在此之前,开发者必须使用容器集群构建复杂的沙箱基础设施,或者为专门的第三方 microVM 运行时付费。

今天,在 WeAreDevelopers World Congress,我们宣布 Google Cloud Run 沙箱进入公开预览阶段。Cloud Run 沙箱是专为执行不受信任的代码和 Agent 工作负载而构建的原生、安全且超快速的运行时环境,启动仅需毫秒级时间。

在以下示例中,我们向一个 Cloud Run 服务发送请求,该服务启动、执行并停止 1,000 个沙箱,平均延迟为 500 毫秒,从而安全地执行不受信任的 Python 代码:

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/sandbox_1000_-_100_ok.gif

在本文中,我们将分享该功能的更多信息和核心用例。

什么是 Cloud Run 沙箱?

Cloud Run 沙箱是轻量级、隔离的执行边界,可在您现有的 Cloud Run 服务实例近乎即时地生成。

无论您需要让 LLM 运行动态生成的 Python 脚本以计算业务利润率,还是启动无头浏览器执行网络研究,Cloud Run 沙箱都能为您提供一个安全、隔离的沙箱来运行这些任务,而无需离开您的无服务器环境。

https://storage.googleapis.com/gweb-cloudblog-publish/images/run_sandbox_arch.max-1400x1400.jpg

核心用例

  • LLM 代码解释器: 在您的 AI 产品中构建高级数据分析功能。让您的模型编写并执行 Python、R 或 SQL 代码,以安全地分析数据集、生成图表并执行复杂数学运算。

  • 无头浏览器: 为您的 Agent 提供一个安全的环境来运行浏览器。安全地抓取网页、截取屏幕截图并自动化网络工作流,而不会使您的主机面临风险。

  • 用户提交的代码执行: 除了 AI 之外,托管在 Cloud Run 上的平台可以使用沙箱安全地运行其最终用户上传的自定义脚本、插件或 webhook。

工作原理:开发者体验

在您的 Cloud Run 服务上启用沙箱,只需在部署时添加一个标志即可。

步骤 1:启用沙箱启动器

部署 Cloud Run 服务时,可通过 gcloud 或 YAML 配置启用沙箱启动器:

步骤 2:在代码中以原生方式生成沙箱

启用后,一个轻量级的 sandbox CLI 二进制文件会自动挂载到您的执行环境中。您的 Agent 应用程序可以使用标准的子进程调用以编程方式生成沙箱。

以下是如何轻松运行由 LLM 生成的不受信任的 Python 脚本:

设计安全:默认零信任

Cloud Run 沙箱经过精心设计,可保护您的宿主应用和云资源免受恶意或错误代码执行的影响。该运行时强制执行三个关键安全边界:

1. 凭证和环境隔离: 这些沙箱无法访问 Cloud Run 服务的环境变量,也无法调用 Google Cloud 元数据服务器。

2. 锁定的网络出口(默认拒绝): 默认情况下,沙箱具有零出站网络访问。如果您的 Agent 被诱骗运行尝试将数据外泄到恶意服务器的脚本,则网络请求将在系统层被阻止。仅当明确请求时才能启用出口:

3. 安全文件系统叠加: 沙箱以只读视图运行您的容器文件系统(允许其使用您安装的软件包、Python 运行时和二进制文件),但会将所有更改写入一个隔离的临时内存叠加层。沙箱执行结束后,所有生成的文件都会被丢弃。不过,您仍可根据需要在沙箱之间导入和导出文件以便重复使用:

ADK 和 ComputeSDK 内置支持

Cloud Run 沙箱将在下一版本的 Agent Development Kit 中得到支持,并新增 CloudRunSandboxCodeExecutor。此集成使您在 Cloud Run 上运行的 ADK Agent 能够通过一行代码执行代码:

Cloud Run 沙箱还已添加到 ComputeSDK,这是一个与厂商无关的用于运行沙箱的 SDK。该 SDK 允许您从 Cloud Run 服务外部远程调用沙箱,或直接将其用作服务上的本地工具。您可以在此处了解如何将此 SDK 用于 Cloud Run 沙箱。

立即开始使用

与收取高额按需虚拟机费用的专用沙箱托管平台不同,Cloud Run 沙箱直接运行在您已分配的 CPU 和内存上。由于沙箱共享您正在运行的实例的资源,因此使用此功能无需额外费用或溢价。您可以在此处查看我们的文档。

发布于