Safely run AI-generated code in Cloud Run sandboxes

TL;DR · AI 摘要
Google Cloud Run沙箱公开预览版可安全运行AI生成代码,提供毫秒级启动和隔离执行环境。
核心要点
- Cloud Run沙箱启动时间低至500ms,支持并发执行1000个实例
- 通过单一gcloud标志即可启用沙箱功能,无需复杂容器集群
- 支持LLM执行Python/R/SQL代码分析,保障数据安全
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Cloud Run沙箱
- 核心特性
- 毫秒级启动
- 强隔离性
- 使用场景
- LLM代码解释器
- 无头浏览器
- 用户代码执行
- 部署方式
- gcloud命令启用
- subprocess调用
金句 / Highlights
值得收藏与分享的关键句。
Cloud Run沙箱可实现1,000个实例并发执行,平均延迟500ms
启用沙箱仅需在部署命令中添加--sandbox-launcher参数
支持LLM动态生成Python/R/SQL代码的安全执行,防止数据泄露
Google Cloud Run 沠箱现已开放公测 | Google Cloud 博客
开发者与从业者
在 Cloud Run 沠箱中安全运行 AI 生成的代码
2026 年 7 月 10 日
##### Ryan Pei
产品经理
##### Greg Block
软件工程师
##### 立即试用 Gemini Enterprise Business Edition
职场 AI 的入口
立即试用
在 Google Cloud,我们经常被问到一个问题:如何在不危及主机应用、数据和云凭证安全的情况下,安全运行 AI 生成的代码或不可信的二进制文件?换句话说,如何为 AI 编写的程序提供一个安全的运行空间——一个与具有更高权限的可信程序完全隔离的环境?
在此之前,开发者需要通过容器集群构建复杂的隔离基础设施,或付费使用专门的第三方微虚拟机运行时。
今天,在 WeAreDevelopers World Congress 上,我们宣布 Google Cloud Run 沠箱正式进入公测阶段。Cloud Run 沚箱是一种原生、安全且超快速的运行时环境,专为执行不可信代码和代理工作负载而设计,启动速度仅需数毫秒。
在以下示例中,我们向 Cloud Run 服务发送请求,安全执行不可信的 Python 代码,该服务可在平均 500 毫秒延迟内启动、执行并停止 1000 个 沚箱:
在本文中,我们将详细介绍该功能和核心使用场景。
什么是 Cloud Run 沚箱?
Cloud Run 沚箱是轻量级的隔离执行边界,可在现有 Cloud Run 服务实例中近乎即时地启动。
无论您需要让大型语言模型运行动态生成的 Python 脚本来计算业务利润率,还是启动无头浏览器执行网络研究,Cloud Run 沚箱都能为您提供一个安全的隔离环境,在不离开无服务器环境的情况下执行这些任务。
核心使用场景
- LLM 代码解释器:在 AI 产品中构建高级数据分析功能。允许模型编写并执行 Python、R 或 SQL 代码,以安全分析数据集、生成图表并执行复杂计算。
- 无头浏览器:为代理提供安全的环境运行浏览器。安全抓取网页、截图并自动化网络工作流,而不会危及主机机器。
- 用户提交的代码执行:除了 AI,Cloud Run 上托管的平台还可以使用 沚箱安全运行由终端用户上传的自定义脚本、插件或 Webhook。
实现方式:开发者体验
在 Cloud Run 服务上启用 沚箱仅需在部署时添加一个标志。
步骤 1:启用 沚箱启动器
部署 Cloud Run 服务时,通过 gcloud 或 YAML 配置启用 沚箱启动器:
加载中...
gcloud beta run deploy my-agent-service \
--image=gcr.io/my-project/agent-image \
--sandbox-launcher步骤 2:在代码中原生启动 沚箱
启用后,一个轻量级的 沚箱 CLI 二进制文件会自动挂载到执行环境中。您的代理应用可以通过标准子进程调用编程方式启动 沚箱。
以下是如何轻松运行由 LLM 生成的不可信 Python 脚本的示例:
import subprocess
def run_untrusted_code(llm_code: str):
# 1. 将不可信的LLM代码写入本地文件
with open("/tmp/generated_script.py", "w") as f:
f.write(llm_code)
# 2. 在安全沙箱中运行
# 沙箱共享容器文件系统工具,但运行在安全隔离环境中
result = subprocess.run(
["sandbox", "do", "--", "python3", "/tmp/generated_script.py"],
capture_output=True,
text=True,
timeout=10
)
return result.stdout if result.returncode == 0 else result.stderr安全设计:默认零信任
Cloud Run 沙箱经过工程化设计,旨在保护您的主机应用和云资源免受恶意或错误代码执行的威胁。运行时强制执行三个关键安全边界:
- 凭据和环境隔离:这些沙箱无法访问 Cloud Run 服务的环境变量,也无法调用 Google Cloud 元数据服务器。
- 默认拒绝的网络出站限制:默认情况下,沙箱没有出站网络访问权限。如果代理被诱导运行尝试将数据泄露到恶意服务器的脚本,系统层会阻止网络请求。只有在明确请求时才能启用出站访问:
sandbox do --allow-egress -- curl https://api.github.com- 安全文件系统叠加层:沙箱以只读方式查看容器文件系统(允许使用已安装的软件包、Python 运行时和二进制文件),但所有更改都会写入隔离的临时内存叠加层。沙箱执行结束后,所有生成的文件都会被丢弃。虽然您仍然可以按需导入和导出文件以在沙箱之间重复使用:
# 将沙箱数据写入可持久化归档文件
sandbox do --write --export-tar=/tmp/work.tar \
-- /bin/bash -c "mkdir -p /tmp/work && echo 'task-complete' > /tmp/work/status.txt"
# 在新沙箱中导入归档文件
sandbox do --write --import-tar=/tmp/work.tar \
-- /bin/bash -c "cat /tmp/work/status.txt"ADK 和 ComputeSDK 内置支持
Cloud Run 沙箱将在下一版 Agent Development Kit 中获得支持,新增 CloudRunSandboxCodeExecutor。该集成使运行在 Cloud Run 上的 ADK 代理能够通过单行代码执行:
from google.adk.agents import Agent
from google.adk.integrations.cloud_run import CloudRunSandboxCodeExecutor
analyst_agent = Agent(
name="cloud_run_data_analyst",
model="gemini-3.1-pro-preview",
system_instruction=(
"您是数据专家。编写并执行 Python 代码以安全地回答"
"用户问题和处理数据。"
),
code_executor=CloudRunSandboxCodeExecutor(),
)Cloud Run 沙箱也已添加到 ComputeSDK 中,这是一个与供应商无关的沙箱运行 SDK。该 SDK 允许您从 Cloud Run 服务外部远程调用沙箱,或直接作为本地工具使用。您可以通过此链接了解如何使用该 SDK 运行 Cloud Run 沙箱。
立即开始使用
与需要为按需虚拟机收取高额溢价费用的专用沙箱托管平台不同,Cloud Run 沙箱直接运行在您现有的分配 CPU 和内存上。由于沙箱共享运行实例的资源,使用此功能不会产生额外费用或溢价。您可以通过此链接查看我们的文档。