Google Cloud Blog

Safely run AI-generated code in Cloud Run sandboxes

8.5内容质量
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代码分析,保障数据安全

结构提纲

按章节快速跳转。

  1. 揭示AI代码执行的安全挑战及传统解决方案的局限性

  2. 描述沙箱作为轻量级隔离执行边界的技术特性

  3. 列举LLM代码解释器、无头浏览器、用户提交代码执行三大场景

  4. 说明通过gcloud命令启用沙箱的简单部署流程

  5. 演示使用subprocess调用沙箱执行AI生成代码的代码示例

  6. 强调与主机环境的隔离性及凭证保护机制

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Cloud Run沙箱
    • 核心特性
      • 毫秒级启动
      • 强隔离性
    • 使用场景
      • LLM代码解释器
      • 无头浏览器
      • 用户代码执行
    • 部署方式
      • gcloud命令启用
      • subprocess调用

金句 / Highlights

值得收藏与分享的关键句。

#Cloud Run#沙箱#AI代码执行#Google Cloud#安全计算
打开原文

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 配置启用 沚箱启动器:

加载中...

bash
gcloud beta run deploy my-agent-service \
  --image=gcr.io/my-project/agent-image \
  --sandbox-launcher

步骤 2:在代码中原生启动 沚箱

启用后,一个轻量级的 沚箱 CLI 二进制文件会自动挂载到执行环境中。您的代理应用可以通过标准子进程调用编程方式启动 沚箱。

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

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 沙箱经过工程化设计,旨在保护您的主机应用和云资源免受恶意或错误代码执行的威胁。运行时强制执行三个关键安全边界:

  1. 凭据和环境隔离:这些沙箱无法访问 Cloud Run 服务的环境变量,也无法调用 Google Cloud 元数据服务器。
  1. 默认拒绝的网络出站限制:默认情况下,沙箱没有出站网络访问权限。如果代理被诱导运行尝试将数据泄露到恶意服务器的脚本,系统层会阻止网络请求。只有在明确请求时才能启用出站访问:
bash
sandbox do --allow-egress -- curl https://api.github.com
  1. 安全文件系统叠加层:沙箱以只读方式查看容器文件系统(允许使用已安装的软件包、Python 运行时和二进制文件),但所有更改都会写入隔离的临时内存叠加层。沙箱执行结束后,所有生成的文件都会被丢弃。虽然您仍然可以按需导入和导出文件以在沙箱之间重复使用:
bash
# 将沙箱数据写入可持久化归档文件
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 代理能够通过单行代码执行:

python
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 和内存上。由于沙箱共享运行实例的资源,使用此功能不会产生额外费用或溢价。您可以通过此链接查看我们的文档。