Безопасное выполнение AI-кода: Google Cloud запускает Cloud Run Sandboxes

Как обеспечить безопасность инфраструктуры при запуске динамически генерируемого AI-кода? Google Cloud предлагает элегантное решение — Cloud Run Sandboxes, изолированные песочницы прямо внутри ваших сервисов Cloud Run.

Безопасное выполнение AI-кода: Google Cloud запускает Cloud Run Sandboxes

Эпоха генеративного AI и автономных агентов принесла не только невероятные возможности, но и новые, сложные вызовы в области безопасности. Современные AI-агенты уже не просто генерируют текст; они динамически пишут и выполняют код на Python, анализируют данные, запускают веб-скреперы и даже вызывают внешние API в реальном времени. Что произойдет, если вредоносный или ошибочный код, сгенерированный большой языковой моделью, получит доступ к вашим переменным окружения, украдет токены учетных записей или скомпрометирует внутренние сети? Риски колоссальны.

Как же позволить языковой модели выполнять код, не подвергая риску всю вашу инфраструктуру? Google Cloud представляет ответ на этот вопрос, выпуская Cloud Run Sandboxes (публичная превью-версия). Это фундаментальное изменение в подходе к безопасному созданию AI-агентов, глубоко интегрированное в привычную вам бессерверную модель.

Что такое Cloud Run Sandboxes?

Cloud Run Sandboxes — это легковесные, изолированные среды выполнения, которые мгновенно создаются внутри ваших существующих экземпляров сервисов Cloud Run. Они предоставляют защищенную песочницу для выполнения задач, требующих динамического кода, не выходя за пределы вашей бессерверной среды.

Ключевая фраза здесь — «внутри ваших существующих экземпляров». Вам не нужно запускать отдельный сервис Cloud Run в качестве хоста для песочницы. Вам не требуется выделять новую виртуальную машину. Песочница работает внутри того же экземпляра, который уже выполняет код вашего агента, изолированная от него двумя слоями безопасности, но расположенная рядом для максимальной скорости.

Обзор интерфейса Cloud Run на Google Cloud Console

После активации этой функции на сервисе Cloud Run, инструмент командной строки для работы с песочницами монтируется в вашу среду выполнения (контейнер). Это позволяет приложениям безопасно запускать песочницы через стандартные вызовы подпроцессов, не подвергая риску хостовую систему. Представьте, что вы даете своему агенту запертую комнату внутри вашего запертого здания. Агент может войти в эту комнату, выполнить любой нужный код и выйти, но ничто, что произойдет в комнате, не сможет повлиять на ключи, проводку или входную дверь здания.

Ключевые возможности:

  • Мгновенный запуск: Создание новой среды выполнения занимает примерно ~500 мс прямо внутри активного контейнера хоста.
  • Общая стоимость ресурсов: Песочницы работают на уже выделенных CPU и памяти вашего экземпляра, что означает отсутствие дополнительных расходов на виртуальные машины или наценок от сторонних поставщиков.
  • Строгая эфемерность: После завершения выполнения процесс песочницы и все изменения в файловой системе удаляются.
Экземпляр сервиса Cloud Run с изолированной песочницей агента

Почему это важно? (Преимущества в безопасности и эксплуатации)

Исторически изоляция динамического кода требовала сложных настроек инфраструктуры. Cloud Run Sandboxes спроектированы для защиты вашего хостового приложения и облачных ресурсов от вредоносного или ошибочного выполнения кода, устанавливая три строгих принципа безопасности «Zero-trust» по умолчанию:

  1. Защита учетных данных, идентификации и изоляция среды: По умолчанию песочницы не имеют доступа к родительской рабочей нагрузке, не могут читать переменные окружения хоста, секреты или сервер метаданных Google Cloud, что предотвращает несанкционированный доступ к токенам учетных записей. Все песочницы полностью изолированы друг от друга. Это наиболее важная граница безопасности для AI-агентов. Атака через инъекцию промпта, которая убеждает вашего агента запустить вредоносный код, не принесет результатов: песочница не имеет доступа к вашей учетной записи, значениям Secret Manager или серверу метаданных, который мог бы предоставить ей токен для действия от вашего имени.
  2. Исходящий сетевой трафик заблокирован по умолчанию: По умолчанию песочницы не имеют никакого исходящего сетевого доступа изнутри. Если ваш агент обманут и запустит скрипт, пытающийся эксфильтровать данные на вредоносный сервер, сетевой запрос будет заблокирован на системном уровне. Исходящий трафик возможен только при явном включении для каждого выполнения. Это значимая настройка безопасности по умолчанию. Большинство задач по интерпретации кода, анализу данных, вычислениям, обработке текста, генерации графиков не требуют исходящего сетевого подключения. Блокировка по умолчанию означает, что скомпрометированный промпт не сможет «позвонить домой», даже если попытается.
  3. Безопасное наложение файловой системы (изоляция процессов по принципу Zero-Trust): Код внутри песочницы работает с ограниченными системными разрешениями и строго изолирован от соседних песочниц и хостового процесса. Песочница работает с представлением файловой системы вашего контейнера только для чтения (что позволяет ей использовать установленные пакеты, среды выполнения Python и бинарные файлы), но записывает все изменения во временное изолированное наложение в памяти. После завершения выполнения песочницы все сгенерированные файлы удаляются. Это означает, что зависимости, среды выполнения и инструменты вашего агента доступны внутри песочницы; он может запускать python3, использовать numpy, вызывать playwright; но любые файлы, записанные во время выполнения, исчезают, когда песочница закрывается. Если вам нужно сохранить вывод между песочницами, вы делаете это явно.

Как использовать Cloud Run Sandboxes: Пошаговое руководство

Шаг 1: Активация функции при развертывании

Для использования Cloud Run Sandboxes вам нужно развернуть сервис Cloud Run с включенной функцией. Это так же просто, как добавить один флаг при развертывании или использовать аннотацию в YAML-конфигурации.

Шаг 2: Запуск песочниц из кода вашего агента

После активации функции запуска песочницы, бинарный файл sandbox автоматически становится доступным внутри вашего контейнера. Ваш агент вызывает его через стандартное выполнение подпроцессов. Ключевые команды включают:

КомандаОписание
sandbox doСоздает временную песочницу, выполняет команду и уничтожает ее
sandbox runЗапускает песочницу
sandbox execВыполняет команду в запущенной песочнице
sandbox tarДелает снимок файловой системы песочницы
sandbox deleteУдаляет песочницу

Пример: Выполнение кода Python, Node.js или Go

Вот практический пример того, как AI-агент использует песочницу для выполнения сгенерированного кода:

В Python это может выглядеть так, чтобы безопасно выполнить код LLM:

import subprocess

def run_llm_generated_code(llm_code: str) -> str:
with open("/tmp/generated_script.py", "w") as f:
f.write(llm_code)

result = subprocess.run(
["sandbox", "do", "--", "python3", "/tmp/generated_script.py"],
capture_output=True,
text=True,
timeout=30
)

if result.returncode == 0:
return result.stdout
else:
return f"Execution failed:\n{result.stderr}"

Команда sandbox do создает временную песочницу, запускает Python-код и возвращает вывод. Поскольку песочницы не наследуют переменные окружения хоста, вам необходимо использовать абсолютные пути для команд.

Шаг 3: Интеграция с ADK (для агентов на базе Gemini)

Cloud Run Sandboxes поддерживаются в Agent Development Kit (ADK) с новым классом CloudRunSandboxCodeExecutor. Эта интеграция позволяет агентам ADK, работающим на Cloud Run, выполнять код одной строкой:

from google.adk.agents import Agent
from google.adk.integrations.cloud_run import CloudRunSandboxCodeExecutor

analyst_agent = Agent(
name="data_analyst",
model="gemini-3.1-pro-preview",
system_instruction=(
"You are an expert data analyst. Write and execute Python code "
"to answer user questions and process data safely."
),
code_executor=CloudRunSandboxCodeExecutor(),
)

Это самый чистый путь интеграции, если вы уже используете ADK. Исполнитель автоматически обрабатывает вызов sandbox do, захват вывода, обработку ошибок и форматирование результатов, и ваш агент просто пишет код и получает результаты.

Шаг 4: Использование ComputeSDK для независимой интеграции

Cloud Run Sandboxes также доступны через ComputeSDK — SDK, независимый от поставщика, для запуска песочниц. Этот SDK позволяет вызывать песочницы удаленно извне сервиса Cloud Run или использовать их непосредственно как локальный инструмент в сервисе.

ComputeSDK — правильный выбор, если вы хотите, чтобы код вашего агента был переносимым между различными поставщиками песочниц — вы можете переключаться между Cloud Run Sandboxes, E2B, Modal и другими, изменяя параметр provider. Подробнее о ComputeSDK и интеграции с Cloud Run.

Cloud Run Sandboxes: Безопасное выполнение AI-кода

Основные сценарии использования

Интерпретаторы кода LLM и анализ данных

Это флагманский сценарий использования. Вы можете встраивать расширенные функции анализа данных в свои AI-продукты, позволяя моделям писать и выполнять код на Python, R или SQL для анализа наборов данных, генерации графиков и безопасного выполнения сложных математических расчетов. Например, финансовый агент, который пишет и выполняет код pandas для обработки загруженного пользователем CSV-файла, или научный помощник, выполняющий код numpy для статистического анализа. Все эти сценарии включают LLM-генерируемый код, который теоретически может быть вредоносным, и Cloud Run Sandboxes изолируют каждое выполнение.

Автоматизация безголового браузера

Вы можете предоставить своим агентам безопасную среду для запуска браузеров, безопасно сканируя веб-страницы, делая скриншоты и автоматизируя веб-процессы без риска для вашей хост-машины. Обратите внимание, что автоматизация браузера требует `--allow-egress`, так как ей необходим доступ к целевому URL. Это осознанный выбор: вы явно предоставляете сетевой доступ только для этого конкретного выполнения.

Пользовательский код и плагины

Помимо AI, платформы, размещенные на Cloud Run, могут использовать песочницы для безопасного запуска пользовательских скриптов, плагинов или вебхуков, загруженных их конечными пользователями. Платформы SaaS, которые позволяют использовать пользовательские сценарии автоматизации, обработчики вебхуков, настраиваемые системы плагинов или настраиваемые преобразования данных — все это предполагает выполнение кода, который вы не писали, от пользователей, которым вы, возможно, не доверяете полностью. Cloud Run Sandboxes обеспечивают уровень изоляции, не требуя от вас создания и эксплуатации собственной инфраструктуры песочниц.

Выполнение субагентов

AI-системы, которые запускают субагентов для выполнения задач параллельно, причем каждый субагент выполняет свой кусок сгенерированного кода, получают прямую выгоду от изоляции Cloud Run Sandboxes для каждой песочницы. Код каждого субагента выполняется в совершенно отдельной песочнице без доступа к состоянию, данным или учетным данным соседних песочниц.

Почему стоит выбрать именно Cloud Run Sandboxes?

Скорость, критичная для отзывчивости агентов

Песочницы интерактивны и готовы выполнять команды практически мгновенно. Создавая песочницы внутри существующего ресурса Cloud Run, где работает ваш агент, вы сокращаете время создания по сравнению с выделением нового ресурса Cloud Run для каждой задачи. Эта эффективность помогает обеспечить отзывчивость вашего агента.

По результатам тестирования, 1000 песочниц были запущены, выполнены и остановлены со средней задержкой в 500 мс. При такой скорости создание песочницы не является узким местом во времени ответа вашего агента, это пренебрежимо малые накладные расходы по сравнению с вызовами LLM-инференции, которые ваш агент уже совершает.

Без дополнительных затрат

В отличие от специализированных платформ для хостинга песочниц, которые взимают высокую плату за виртуальные машины по запросу, Cloud Run Sandboxes работают непосредственно на уже выделенных CPU и памяти. Поскольку песочницы используют ресурсы ваших запущенных экземпляров, нет никаких дополнительных затрат или наценок за использование этой функции.

Это экономический аргумент, который легко недооценить. Специализированные сервисы песочниц взимают плату за каждое выполнение, за каждую секунду процессорного времени или за каждый гигабайт памяти, и эти затраты быстро накапливаются для рабочих нагрузок агентов, которые часто выполняют код. Cloud Run Sandboxes не добавляют никаких новых позиций в ваш счет.

Нативная интеграция с GCP

Cloud Run Sandboxes напрямую работают с остальной частью вашего стека GCP. Ваш агентский сервис уже имеет свою учетную запись IAM, доступ к Secret Manager, конфигурацию VPC. Песочница работает в пределах того же ресурса, извлекая выгоду из всех ваших существующих средств контроля безопасности, будучи при этом изолированной от собственного контекста вашего агента.

Где использовать Cloud Run Sandboxes?

Cloud Run Sandboxes — это правильный выбор в следующих сценариях:

  • AI-агенты, которые выполняют код. Любой агент, построенный с ADK, LangChain, LlamaIndex или использующий пользовательскую оркестрацию, которая применяет выполнение кода как инструмент. Границы безопасности специально созданы для этого случая.
  • Многопользовательские SaaS-платформы. Если ваша платформа запускает код от имени нескольких клиентов, песочницы гарантируют, что выполнение одного клиента не сможет мешать, читать или влиять на данные другого клиента.
  • Инструменты для анализа данных и научных вычислений. Продукты, которые позволяют пользователям писать или генерировать код для анализа своих данных, будь то написанный человеком или сгенерированный LLM; получают выгоду от изоляции песочниц для защиты базовой платформы.
  • Обработчики вебхуков и плагинов. Системы, которые получают и выполняют код из внешних источников (сторонние вебхуки, пользовательские плагины, пользовательские интеграции), нуждаются в изоляции выполнения, которая не требует отдельного микросервиса для каждого плагина.
  • Среды разработки и тестирования. Конвейеры CI/CD, которым необходимо выполнять пользовательские образцы кода в рамках автоматизированного тестирования, могут использовать песочницы для изоляции каждого выполнения теста.

Альтернативные варианты

Cloud Run Sandboxes — не единственный способ запускать недоверенный код. Понимание альтернатив проясняет место песочниц на рынке.

  • E2B (e2b.dev): Предоставляет API-сервис песочниц, разработанный специально для AI-агентов. Это сторонний сервис с ценообразованием за каждое выполнение и внешней зависимостью.
  • Modal: Предоставляет бессерверные функции по требованию для рабочих нагрузок Python с сильной изоляцией и быстрым холодным стартом. Также сторонний сервис с внешним биллингом.
  • Firecracker microVMs (самоуправляемые): Технология микро-ВМ, используемая AWS Lambda. Можно развернуть свой парк, но это значительные операционные издержки.
  • Cloud Run Jobs (асинхронное выполнение): Отлично подходит для длительных фоновых задач, где некритична задержка, но для интерактивного, субсекундного выполнения кода агентом Sandboxes быстрее и проще.
  • Nsjail / gVisor (DIY): Позволяет создавать пользовательские песочницы, но требует глубоких знаний в области безопасности Linux и является значительным инженерным проектом.

Текущие ограничения (публичная превью-версия)

Cloud Run Sandboxes находятся в стадии публичной превью-версии по состоянию на июль 2026 года. Это означает, что они подпадают под условия "pre-GA", доступны "как есть", с потенциально ограниченной поддержкой и могут измениться до общей доступности (GA).

Практические ограничения, которые следует учитывать при проектировании архитектуры:

  • Статус превью. Не стройте критически важную производственную систему, которая не сможет функционировать без этой функции, пока не будет объявлена GA. API может измениться.
  • Совместное использование ресурсов. Песочницы используют CPU и память вашего экземпляра Cloud Run. Песочница, выполняющая вычислительно интенсивный код, будет потреблять ресурсы из выделенной мощности вашего сервиса. Соответственно, рассчитывайте размер ваших экземпляров, когда рабочие нагрузки песочниц интенсивно используют CPU или память.
  • Отсутствие постоянного состояния. Все, что записано внутри песочницы, удаляется, если явно не экспортируется с помощью --export-tar. Разработайте свой агент так, чтобы он рассматривал выполнение песочницы как stateless.
  • Принудительное применение тайм-аута. Параметр timeout вашего вызова подпроцесса — это то, что останавливает вышедшую из-под контроля песочницу; платформа не устанавливает автоматического ограничения времени выполнения независимо от вашего кода. Всегда устанавливайте тайм-аут.
  • Языковая поддержка. Песочница может запускать любой язык, установленный в вашем контейнерном образе. Python, Node.js, Go, Ruby и bash доступны, если они присутствуют в вашем Dockerfile. Встроенной поддержки нескольких языков нет, вы сами предоставляете то, что вам нужно.

Начните сегодня

Если вы разрабатываете AI-агентов на Google Cloud, Cloud Run Sandboxes могут значительно упростить вашу жизнь и повысить безопасность ваших решений. Эта функция устраняет одну из последних серьезных причин для использования внешнего сервиса песочниц, предоставляя мощный, экономичный и интегрированный инструмент.

Полная документация, примеры быстрого старта и руководство по интеграции ADK доступны по адресу docs.cloud.google.com/run/docs/code-execution. Начните экспериментировать с безопасным выполнением AI-кода прямо сейчас и откройте для себя новые горизонты в автоматизации и разработке интеллектуальных систем!