Google Cloud でよく聞かれる質問があります。AI が生成したコードや信頼できないバイナリを、ホストアプリケーション、データ、クラウド認証情報を危険にさらすことなく安全に実行するにはどうすればよいか? 言い換えれば、AI が書いたプログラムに、安全に実行できる場所を提供し、特権の高い信頼できるプログラムと完全に分離しておくにはどうすればよいか?

これまで、開発者はコンテナクラスタを使って複雑なサンドボックスインフラストラクチャを構築するか、サードパーティのマイクロVM ランタイムに高額な料金を支払う必要がありました。

本日、WeAreDevelopers World Congressにて、Google Cloud Run サンドボックスをパブリックプレビューで発表します。Cloud Run サンドボックスは、信頼できないコードやエージェントのワークロードを実行するために特別に構築された、ネイティブで安全かつ超高速なランタイム環境で、ミリ秒単位で起動します。

以下の例では、Cloud Run サービスにリクエストを送信し、平均 500ms のレイテンシで 1,000 個のサンドボックスを起動・実行・停止させながら、信頼できない 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 コードを書かせて実行し、データセットの分析、チャートの生成、複雑な計算を安全に行えます。

  • ヘッドレスブラウザ: エージェントにブラウザを実行できる安全な環境を提供します。ホストマシンを危険にさらすことなく、ウェブページのスクレイピング、スクリーンショットの取得、ウェブワークフローの自動化を安全に行えます。

  • ユーザー提供コードの実行: AI 以外にも、Cloud Run 上でホストされるプラットフォームは、サンドボックスを使ってエンドユーザーがアップロードしたカスタムスクリプト、プラグイン、Webhook を安全に実行できます。

仕組み: 開発者エクスペリエンス

Cloud Run サービスでサンドボックスを有効にするには、デプロイ時に単一のフラグを追加するだけです。

ステップ 1: サンドボックスランチャーを有効化する

Cloud Run サービスをデプロイする際に、gcloud または YAML 設定でサンドボックスランチャーを有効化します。

ステップ 2: コード内でネイティブにサンドボックスを生成する

有効化すると、軽量なsandbox CLI バイナリが実行環境に自動的にマウントされます。エージェントアプリケーションは、標準的なサブプロセス呼び出しを使ってプログラムからサンドボックスを生成できます。

LLM が生成した信頼できない Python スクリプトを簡単に実行する方法は次のとおりです。

設計によるセキュリティ: ゼロトラストをデフォルトに

Cloud Run サンドボックスは、悪意のあるコードや誤ったコードの実行からホストアプリケーションとクラウドリソースを保護するように設計されています。ランタイムは 3 つの重要なセキュリティ境界を強制します。

1. 認証情報と環境の分離: これらのサンドボックスは Cloud Run サービスの環境変数にアクセスできず、Google Cloud メタデータサーバーを呼び出すこともできません。

2. ロックダウンされたネットワークエグレス(デフォルト拒否): デフォルトでは、サンドボックスはアウトバウンドネットワークアクセスを完全に禁止されています。エージェントが悪意のあるサーバーへのデータ流出を試みるスクリプトを実行するよう誘導された場合でも、ネットワークリクエストはシステムレイヤーでブロックされます。エグレスは明示的にリクエストされた場合にのみ有効化できます。

3. 安全なファイルシステムオーバーレイ: サンドボックスはコンテナのファイルシステムを読み取り専用で参照(インストール済みパッケージ、Python ランタイム、バイナリを使用可能)しますが、すべての変更は分離された一時的なメモリオーバーレイに書き込まれます。サンドボックスの実行が終了すると、生成されたファイルはすべて破棄されます。必要に応じてファイルのインポート・エクスポートを行い、サンドボックス間で再利用することは可能です。

ADK と ComputeSDK の組み込みサポート

Cloud Run サンドボックスは、次期バージョンのAgent Development Kitで新しいCloudRunSandboxCodeExecutorとしてサポートされます。この統合により、Cloud Run 上で実行される ADK エージェントは 1 行でコードを実行できるようになります。

Cloud Run サンドボックスは、ベンダー非依存のサンドボックス実行用 SDK であるComputeSDKにも追加されました。この SDK を使用すると、Cloud Run サービス外からリモートでサンドボックスを呼び出すか、サービス上のローカルツールとして直接使用できます。Cloud Run サンドボックス向けの SDK の使用方法はこちらで確認できます。

今すぐ始める

高額な従量課金の仮想マシンを提供する専用サンドボックスホスティングプラットフォームとは異なり、Cloud Run サンドボックスは既存の割り当てられた CPU とメモリ上で直接実行されます。サンドボックスは実行中のインスタンスのリソースを共有するため、この機能の使用に追加料金やプレミアムは発生しません。ドキュメントはこちらでご覧いただけます。

Posted in