タグアーカイブ サンドボックス

Cloud Run Sandboxesがパブリックプレビュー、AI生成コードを安全に隔離実行

Cloud Run Sandboxesがパブリックプレビュー、AI生成コードを安全に隔離実行

Cloud Run Sandboxesがパブリックプレビューに。AI生成コードを隔離実行

Cloud Run Sandboxesがパブリックプレビューに。AI生成コードを隔離実行

Google Cloudは2026年7月9日、Cloud Run上で信頼できないコードを安全に実行するサンドボックス機能をパブリックプレビューとして公開した。AIが生成したプログラムや、エンドユーザーがアップロードしたスクリプトを、ホスト環境やクラウドの認証情報から完全に分離した状態で動かせる。

起動はミリ秒単位で、既存のCloud RunインスタンスのCPUやメモリを共有する。追加のVMや専用のサンドボックスホスティングプラットフォームを使う必要はなく、追加料金も発生しない。この発表はベルリンで開催中のWeAreDevelopers World Congressで行われた。

これまで開発者は、AIが動的に生成したコードを安全に実行するために、コンテナクラスタを組んだり、サードパーティのmicroVMランタイムを契約したりする必要があった。Cloud Run Sandboxesは、その複雑さを取り除くサーバーレスネイティブの仕組みだ。

サンドボックスとは何か、なぜ必要なのか

サンドボックスとは何か、なぜ必要なのか

サンドボックスとは、プログラムを隔離された領域で実行する仕組みのことだ。子供が砂場(サンドボックス)の中で自由に遊んでも、砂が外に散らばらないのと同じで、中で何が起きても外側のシステムには影響を与えない。

AIエージェントやLLM(大規模言語モデル)がコードを生成する時代では、この隔離が極めて重要になる。モデルが書いたPythonスクリプトに意図しないファイル削除やネットワーク経由のデータ流出が含まれていたとしても、サンドボックス内で止められるからだ。

従来の単一実行環境とサンドボックスの違い
従来の単一実行環境
アプリ本体 AIが生成したコード
← 同じ領域で実行されるため、悪意あるコードが環境変数やクラウド認証情報にアクセスできる危険がある
Cloud Run Sandboxes(改善後)
アプリ本体 サンドボックス AI生成コード
← アプリ本体とは完全に分離。ネットワークアクセスはデフォルトで遮断され、ファイルの変更も破棄される

Cloud Run Sandboxesは、既存のCloud Runサービスインスタンス内でほぼ瞬時に生成できる軽量な隔離実行境界だ。専用のVMを立ち上げる必要がなく、サーバーレス環境を離れずにすべてが完結する。

サンドボックスの仕組みとセキュリティ設計

サンドボックスの仕組みとセキュリティ設計

シンプルな有効化とネイティブな呼び出し

利用開始は驚くほど簡単だ。Cloud Runサービスをデプロイする際に、gcloudコマンドまたはYAML設定でサンドボックスランチャーを有効にするフラグを1つ追加するだけでよい。有効化すると、軽量なサンドボックスCLIバイナリが実行環境に自動でマウントされ、標準的なサブプロセス呼び出しでプログラムからサンドボックスを生成できる。

実際の動作例として、LLMが動的に生成したPythonコードを安全に実行するデモが公開されている。1000個のサンドボックスを起動し、それぞれの処理を実行して停止するまでの平均レイテンシは500ミリ秒だ。

ゼロトラストを前提とした3層のセキュリティ境界

Cloud Run Sandboxesは、悪意あるコードや誤ったコードからホストアプリケーションとクラウドリソースを守るために、3つの重要なセキュリティ境界を強制する。

Cloud Run Sandboxesの3層セキュリティ境界
境界 1 認証情報と環境変数の隔離
サンドボックス内部からは、Cloud Runサービスの環境変数にアクセスできない。Google Cloudのメタデータサーバーへの呼び出しも不可。AIが誤って認証情報を読み取ろうとしても、物理的に到達できない設計だ。
境界 2 ネットワーク通信のデフォルト遮断
デフォルトでは、サンドボックスからの外向きネットワークアクセスは一切許可されない。仮にAIがデータを外部サーバーに送信しようとするスクリプトを生成しても、システム層でブロックされる。外向き通信が必要な場合は、明示的に許可する設定が可能だ。
境界 3 安全なファイルシステムオーバーレイ
サンドボックスは、コンテナのファイルシステムを読み取り専用で参照する。インストール済みのパッケージやPythonランタイムは利用できるが、書き込みはすべて一時的なメモリオーバーレイに隔離され、サンドボックス終了時に破棄される。必要なファイルはサンドボックス間でインポート・エクスポートできる。
認証情報隔離  ネットワーク遮断  ファイルシステム分離

この3層構造によって、AIが生成したコードがどれほど予測不能な動作をしても、ホスト側への影響は生じない。セキュリティを理由にAIコード実行を諦めていた開発者にとって、大きな転換点になる。

3つの主要ユースケース

3つの主要ユースケース

Cloud Run Sandboxesは特に以下の3つの用途で力を発揮する。いずれも「信頼できないコードを隔離実行する」という共通の要件を持つシナリオだ。

Cloud Run Sandboxesの3つの主要ユースケース
LLMコードインタプリタ
AI製品に高度なデータ分析機能を組み込む。モデルがPython、R、SQLのコードを生成してデータセットを分析し、グラフを作成したり複雑な計算を実行したりする。サンドボックスがあれば、そのコードを安全に実行できる。
ユーザー 自然言語で質問 LLM コード生成 サンドボックス 安全に実行
ヘッドレスブラウザ
AIエージェントに安全なブラウザ実行環境を提供する。Webページのスクレイピング、スクリーンショット取得、Webワークフローの自動化をホストマシンにリスクを及ぼさず実行できる。情報収集や競合調査の自動化に有効だ。
ユーザー提出コードの実行
AI以外の用途でも、Cloud Runでホストするプラットフォームがエンドユーザーのカスタムスクリプト、プラグイン、Webhookを安全に実行できる。オンラインジャッジシステムやローコードプラットフォームの基盤として使える。

ADKとComputeSDKとの統合

ADKとComputeSDKとの統合

Cloud Run Sandboxesは、Googleのエージェント開発キットであるADK(Agent Development Kit)の次期バージョンでネイティブサポートされる。新しいCloudRunSandboxCodeExecutorを使うと、ADKエージェントがわずか1行のコードでサンドボックス内のコード実行を指示できる。

また、ベンダーに依存しないサンドボックス実行用SDKであるComputeSDKにも対応が追加された。このSDKを使えば、Cloud Runサービスの外部からリモートでサンドボックスを呼び出すことも、サービス上のローカルツールとして直接使うこともできる。既存のツールチェーンにスムーズに組み込める設計だ。

コスト面の利点と実運用への影響

Cloud Run Sandboxesの大きな特長は、追加コストが一切かからないことだ。オンデマンドのVMに対して高いプレミアムを課金する専用サンドボックスホスティングプラットフォームとは異なり、既存のCloud Runインスタンスに割り当てられたCPUとメモリを直接共有する。

起動時間がミリ秒単位であることも実運用上の利点だ。従来のVMベースの隔離環境では、新しいVMを立ち上げるたびに数秒から数十秒の待ち時間が発生していた。Cloud Run Sandboxesなら、ユーザーからのリクエストに対してほぼ待ち時間なく応答できる。

Google Cloud Blogの記事で紹介されたデモでは、1000個のサンドボックスを起動してコードを実行し、終了するまでの平均レイテンシが500ミリ秒だった。これは「AIが生成したコードをリアルタイムで安全に実行する」という要件に対して十分実用的な数値だ。

この記事のポイント

  • Cloud Run SandboxesはAI生成コードや信頼できないバイナリを安全に実行する隔離環境で、パブリックプレビューとして公開された
  • 起動はミリ秒単位で、既存のCloud Runインスタンスのリソースを共有するため追加コストは発生しない
  • 環境変数の隔離、ネットワーク通信のデフォルト遮断、安全なファイルシステムオーバーレイの3層でセキュリティを確保
  • LLMコードインタプリタ、ヘッドレスブラウザ、ユーザー提出コードの実行が主要ユースケース
  • ADKとComputeSDKに組み込み対応し、開発者は1行のコードでサンドボックス実行を指示できる
AWS Lambda MicroVMs発表、Firecrackerで隔離サンドボックスを即時起動

AWS Lambda MicroVMs発表、Firecrackerで隔離サンドボックスを即時起動

AWS Lambda MicroVMs発表、Firecrackerで隔離サンドボックスを即時起動する新サーバーレス

AWSが2026年6月22日、Lambdaファミリーの新たなコンピュートサービス「Lambda MicroVMs」を発表した。Firecrackerを基盤に、VMレベルの強固な隔離とスナップショットからの即時起動を両立する。AIが生成したコードやユーザー提供のスクリプトを安全に実行したいマルチテナントアプリケーション向けに設計されている。

この新サービスは、従来の仮想マシンとコンテナ、FaaS(Function as a Service)の間にあった溝を埋める。強い隔離が必要だが起動速度も妥協できない、さらにセッション中の状態も保持したい。そうした要件を単一のサービスで満たす選択肢がついに登場した。

Lambda MicroVMsとは何か

Lambda MicroVMsとは何か

Lambda MicroVMsはAWS Lambdaの一部として提供される新しいサーバーレスコンピュートだ。最大の特徴は、エンドユーザーごと、あるいはセッションごとに専用の隔離実行環境を割り当てられる点にある。基盤技術にはFirecrackerを採用しており、この技術はすでに月間15兆回以上のLambda関数呼び出しを支える実績を持つ。

従来の選択肢との違い

従来、隔離されたコード実行環境を構築するには3つの選択肢があった。それぞれにトレードオフが存在する。仮想マシン(VM)は隔離性能に優れるが起動に数分かかる。コンテナは数秒で起動するが、カーネルを共有するため信頼できないコードを安全に実行するには追加の堅牢化が必須だ。FaaSはイベント駆動のリクエスト-レスポンス型ワークロードに最適だが、長時間の対話セッションや状態保持には向いていない。

Lambda MicroVMsはこの3つの間隙を埋める。VMレベルの隔離を持ちながら、スナップショットからの即時起動で高速なレスポンスを実現し、セッション中の状態も保持できる。さらにアイドル時には自動サスペンドでコストを抑えつつ、トラフィック受信時に自動レジュームする仕組みを備えている。

従来の選択肢(Before)
VM 強力な隔離だが起動に数分
コンテナ 高速起動だがカーネル共有で隔離に課題
FaaS イベント駆動に最適だが状態保持と長時間実行が苦手
※隔離と起動速度と状態保持を同時に満たせない
Lambda MicroVMs(After)
MicroVM VMレベルの隔離(Firecracker)
MicroVM スナップショットから即時起動・レジューム
MicroVM セッション中の状態保持と自動サスペンド対応
※隔離・起動速度・状態保持を単一サービスで統合
VM コンテナ FaaS MicroVMs

この比較図が示すように、Lambda MicroVMsは3つの要件を単一サービスで満たす。開発者はインフラ管理から解放され、アプリケーションの構築に専念できる。

なぜ今MicroVMsが必要なのか

なぜ今MicroVMsが必要なのか

ここ数年で、アプリケーション開発者が書いていないコードをエンドユーザーごとに安全に実行する必要があるマルチテナントアプリケーションが急増している。AIコーディングアシスタント、対話型コード実行環境、データ分析プラットフォーム、脆弱性スキャナ、ユーザースクリプトを実行するゲームサーバーなどがその代表例だ。

市場が求める新たな実行環境

こうしたアプリケーションに共通する要件は明確だ。強い隔離で安全性を担保しつつ、エンドユーザーが待たされない起動速度を実現し、対話セッション中は状態を保持し続けること。しかし従来のサービス群では、このすべてを満たす選択肢が存在しなかった。開発者は性能と隔離のトレードオフを受け入れるか、独自の仮想化基盤を構築するために多大なエンジニアリングリソースを投じるかの二者択一を迫られていた。

Firecrackerが支える信頼性

Lambda MicroVMsの基盤となるFirecrackerは、AWSがオープンソースで提供する軽量仮想化技術だ。すでにLambda FunctionsとFargateで運用実績があり、月間15兆回の呼び出しを支える実績は、この新サービスの信頼性を裏付ける。各MicroVMは独立したカーネルで動作し、ユーザー間のリソース共有は一切ない。あるユーザーが実行した信頼できないコードが、他の環境や基盤システムにアクセスすることはない。

技術的な仕組み

技術的な仕組み

Lambda MicroVMsの中核には3つの技術要素がある。VMレベルの隔離、スナップショットベースの高速起動とレジューム、そしてステートフルな実行だ。これらが組み合わさることで、従来にない実行環境が実現されている。

イメージ作成から起動までの流れ

MicroVMsのライフサイクルは「イメージ作成→起動→実行→サスペンド→レジューム」という流れをたどる。まずDockerfileとアプリケーションコードをzipアーティファクトとしてS3にアップロードし、MicroVM Imageを作成する。AWS LambdaがDockerfileを実行し、アプリケーションを初期化したあと、実行環境のメモリとディスク状態のFirecrackerスナップショットを取得する。以降のMicroVM起動はすべて、このスナップショットからレジュームされるため、コールドスタートが発生しない。

STEP 1 DockerfileとコードをS3にアップロード
STEP 2 AWS LambdaがDockerfileを実行しアプリを初期化
STEP 3 Firecrackerスナップショットを取得(メモリ+ディスク状態)
STEP 4 スナップショットから即時レジュームで起動完了
※以降の全MicroVM起動はSTEP 4から始まり、コールドスタートなし

このフローにより、数ギガバイト規模の対話セッションでもエンドユーザーが体感できるレスポンス速度でレジュームされる。アプリケーションはスナップショット時点で完全に初期化済みのため、起動完了と同時にリクエストを受け付けられる状態になる。

サスペンドとレジュームの自動化

Lambda MicroVMsにはアイドルポリシーが設定できる。設定可能な最大アイドル時間を超過すると自動的にサスペンドされ、メモリとディスク状態がスナップショットとして保存される。サスペンド中は実行コストが大幅に低減し、次のリクエストが到着すると自動的にレジュームされる。クライアント側からはサスペンドの発生を意識することなく、一貫した対話セッションが維持される。1MicroVMあたり最大8時間の連続実行が可能で、vCPUは最大16基、メモリは32GB、ディスクも32GBまでサポートする。

実際の利用シーン

実際の利用シーン

発表時点で対応リージョンは米国東部(バージニア北部、オハイオ)、米国西部(オレゴン)、欧州(アイルランド)、アジア太平洋(東京)だ。アーキテクチャはARM64で、価格はAWS Lambdaの料金ページで公開されている。

想定されるユースケース

AIコーディングアシスタントは最も直接的なユースケースだ。ユーザーがAIに生成させたコードを、安全な隔離環境で即座に実行し結果を返す。データ分析プラットフォームでは、ユーザーごとに専用の分析環境を割り当て、ノートブック形式の対話セッションを長時間維持できる。脆弱性スキャナでは、疑わしいコードを隔離環境で安全に実行し、その振る舞いを観察するといった使い方が考えられる。

Lambda Functionsとの共存

Lambda FunctionsとLambda MicroVMsは競合ではなく補完関係にある。イベント駆動のバックボーンにはLambda Functionsを使い、信頼できないコードを隔離実行する必要がある処理だけをMicroVMsに委ねる構成が自然だ。両者は異なるAPIサーフェスを持ち、それぞれの得意領域で使い分ける設計になっている。

クラウド実行環境の新たな選択肢

Lambda MicroVMsの登場は、サーバーレスコンピュートの概念を一歩拡張するものだ。従来のサーバーレスが「インフラ管理からの解放」を旗印にしてきたのに対し、MicroVMsは「隔離実行環境の構築からの解放」を目指している。開発者は仮想化の専門知識を持たずとも、VMレベルの隔離と高速な起動を両立した環境を手に入れられる。

コスト設計のポイント

サスペンド機能の活用がコスト最適化の鍵を握る。対話型アプリケーションでは、ユーザーが考え込んでいる時間や離席中の時間が少なくない。こうしたアイドル時間に自動サスペンドを適用すれば、状態を保持したまま実行コストを抑えられる。アイドルポリシーの設定値はアプリケーションの特性に合わせて調整する必要がある。短すぎると頻繁なサスペンドとレジュームが発生し、長すぎると不要な実行コストが蓄積する。

今後の展望

初期リリースではARM64アーキテクチャのみのサポートだが、今後のアップデートでx86対応やリージョン拡大が期待される。また、スナップショット作成時にネットワーク接続を確立するアプリケーションや、エフェメラルデータを読み込むアプリケーションでは、サービス提供のフックとの統合が必要になる点にも注意が必要だ。

この記事のポイント

  • Lambda MicroVMsはFirecrackerベースでVMレベルの隔離とスナップショット即時起動を両立する新サーバーレス
  • AIコーディング支援やデータ分析など、ユーザー提供コードを安全実行するマルチテナントアプリに最適
  • アイドル時の自動サスペンドとレジュームで、状態を保持したままコストを最適化できる
  • Lambda Functionsとは補完関係にあり、イベント駆動処理と隔離実行を使い分ける設計が推奨される
  • 東京リージョン含む5リージョンで即日利用可能、最大8時間の連続実行に対応
GitHub Copilotデスクトップアプリ登場、エージェント駆動開発の拠点に

GitHub Copilotデスクトップアプリ登場、エージェント駆動開発の拠点に

GitHubが2026年6月2日、新たなGitHub Copilotアプリをテクニカルプレビューとして公開した。このアプリは、複数のAIエージェントを並行して管理・指示するための「エージェントネイティブ」なデスクトップ体験を提供する。

Copilot Pro、Pro+、Business、Enterpriseの既存ユーザーはすぐに利用を開始できる。My Workビュー、ワークツリーによるセッション分離、Agent Merge、Canvas、サンドボックス、高度なコードレビュー、SDK、刷新されたCLIなど、エージェント主導開発の基盤として設計された機能群を詳しく見ていく。

GitHub Copilotアプリ:エージェントネイティブ開発のコントロールセンター

GitHub Copilotアプリ:エージェントネイティブ開発のコントロールセンター

多くの開発者が日常的に複数エージェントを動かすようになるにつれ、ウィンドウを切り替えながらセッションを追跡する従来のやり方では限界が出てきた。Copilotアプリはその断絶を解消する。

「My Work」ビューは、接続されたリポジトリ全体にわたって稼働中のセッション、Issue、プルリクエスト、バックグラウンド自動化を一覧表示する。各セッションは固有のgit worktree(ブランチの独立した作業コピー)で実行されるため、エージェントどうしが互いの作業を壊すことはない。worktreeの作成や後片付けはアプリが自動的に処理する。

さらにAgent Merge機能は、プルリクエストをレビューからチェック、マージまで運ぶ。CIの監視、必須レビュアーの確認、失敗したチェックの修正をCopilotが代行し、開発者は「CIをグリーンに戻す」「フィードバックに対応する」「条件を満たしたらマージする」といった自動化の範囲を選べる。

GitHub Blogに掲載されたAvanade Inc.のDavid Jobling氏(Master Technology Architect)のコメントによれば、「Forward Deployedのエンジニアは多数のエージェントを一元的に扱い、複数のイニシアチブを管理できる。プランやオートパイロットへのアクセスが容易になり、必要に応じてインタラクティブなセッションを実行したりコードに介入したりできる」と評価している。

この統合感をビフォーアフターで示すと、次のような差になる。

従来のエージェント開発(Before)
エージェントA バグ調査中 → ターミナルウィンドウが散乱
エージェントB PR実装中 → 変更内容が不明瞭
エージェントC レビュー対応中 → フィードバックの追跡に苦労
※複数のエージェントが個別に動作し、文脈が分散
Copilotアプリによる統合管理(After)
My Workビュー エージェントA・B・Cを一覧表示
ワークツリー 各セッションを独立した作業コピーで分離
Agent Merge CI確認 → レビュー対応 → マージまで自動化
※すべてのセッションを一元的に発信・監視・マージ

このデモのように、Copilotアプリはエージェントが「ただコードを提案する」存在から「プロジェクト全体を駆動する」存在へ変わるための統制盤になる。

Canvas:意図を見える化する双方向作業面

Canvas:意図を見える化する双方向作業面

チャットは指示や曖昧さの解消に強い。しかしエージェントが本格的な作業を始めると、チャットスレッドは判断やログ、修正指示の長いスクロールになり、作業そのものの全体像を見失いがちだ。

そこで導入されたCanvasは、人間とエージェントが同じ面で作業する双方向の作業サーフェスだ。プラン、プルリクエスト、ブラウザセッション、ターミナル、デプロイ状況、ワークフローの状態など、エージェントが作業を進めるにつれてCanvasが更新され、開発者はその場で編集、順序変更、承認、方向転換ができる。

従来のチャット単体(Before)
チャット: エージェントに「バグ調査して」依頼 → 長文のログが延々と続く
結果: どこで何が行われたか把握しづらい
Canvasによる可視化(After)
プラン
エージェントが立てた計画を表示・編集
PR
プルリクエストの変更内容を確認
ターミナル
セッションの実行結果
※人間もエージェントも同じキャンバス上で編集・承認・指示

チャットが「思考の場」だとすれば、Canvasは「作業の場」だ。これが、GitHubが提唱するエージェント体験(AX)の出発点になる。

サンドボックス:本番に触れずにエージェントを動かす隔離環境

サンドボックス:本番に触れずにエージェントを動かす隔離環境

コードを提案するだけでなく、実際にコードを実行し、テストし、結果を調べて反復できることがエージェントの実用性を高める。そのために用意されたのが、ローカルとクラウドの2種類のサンドボックスだ。

ローカルサンドボックス
マシン上で隔離実行
・ファイルシステムやネットワーク接続を制限
・ポリシーを一元的に設定・適用
・オフライン作業に最適
クラウドサンドボックス
GitHub上で完全分離のLinux環境
・一時的な環境、セッション終了で破棄
・組織のポリシーを自由に定義
・任意のデバイスからリモート操作

ローカルではマシンのリソースを直接使いつつもポリシーで範囲を絞り、クラウドでは完全に独立したエフェメラル環境が手に入る。いずれも本番環境に手を触れることなく、エージェントがコードの実行と検証を繰り返せる。

コードレビュー機能:エージェント出力にスケールする審査

コードレビュー機能:エージェント出力にスケールする審査

エージェントが生成するプルリクエストが増えるほど、コードレビューの負荷は増す。Copilotコードレビューは、適応的なエージェントシステムでノイズをふるい分け、開発者は本当に重要な判断に集中できる。

新たに追加された「中程度」レビューティアでは、より高精度な推論モデルを利用してレビューの適合率と再現率を向上させる。管理者はリポジトリごとに「低」か「中」を割り当てられ、リスクの低いコードには軽量なモデルを、影響度の高いリポジトリには強力なモデルを振り分けられる。

また、/security-reviewスキルはセキュリティに特化した評価経路を用意し、一般提供された/rubberduckスキルは複数のモデルファミリーを利用して実装を批判的に検証し、新たな問題点を見つける。

さらに、Azure DevOpsユーザーはCopilotコードレビューをネイティブに利用できるようになった。ワンクリックレビュー、インラインコメント、コミット可能な修正提案といった機能がそのまま使える。

従来のレビュー(Before)
多数のPRに圧倒され、手動レビューに追われる
・見落としのリスク
・時間が足りない
Copilotコードレビュー(After)
Copilotが自動レビューを実施、人間は重要な判断に集中
・中程度の推論モデルで高精度チェック
・/security-reviewでセキュリティ専用評価
・/rubberduckで実装の批判的検討
・自社ポリシーに合わせてカスタマイズ

このように、レビューの質とスループットを両立させる仕組みがCopilotアプリの中核に組み込まれている。

Copilot SDKとCLI:開発者自身のツールを構築する土台

Copilot SDKとCLI:開発者自身のツールを構築する土台

エージェント機能はアプリの中だけにとどまらない。Copilot SDKが一般提供され、Node.js/TypeScript、Python、Go、.NET、Rust、Javaといった主要言語から同じエージェントランタイムを利用できる。自社のコード分析ツール、カスタムリリースノート生成、サポートワークフローに組み込むエージェントなどを、共通の土台の上に構築できる。

Copilot SDK(一つのランタイム)
デスクトップアプリ CLI クラウド自動化 モバイル
Node.js/TypeScript、Python、Go、.NET、Rust、Java等に対応。独自のコード分析ツールやリリースノート生成ツールもSDK上で構築可能。

CLIも大きく刷新された。再設計されたTUIではタブでプルリクエスト、Issue、Gistにアクセスでき、音声入力にも対応する(音声データは端末外に出ない)。/everyを使えば定期的なプロンプト実行やバックグラウンドタスクのスケジュールが組める。クラウド自動化では、エージェントがGitHubイベントに反応してIssueを開いたりコメントを残したりできる。初期設定では書き込みアクションの前に都度許可を求めるが、信頼を確立した後はオートパイロットに切り替え可能だ。

さらにMemory++と/chronicleによって、アプリ、CLI、VS Code、github.comをまたいだセッションの文脈が連続する。パートナー企業(LaunchDarkly、Sonar、Amplitude、PagerDutyなど)が構築したエージェントアプリも統合され、開発者はGitHubを離れることなく、馴染みのツールをエージェント主導のワークフローに組み込める。

エージェント主導開発の未来を見据えて

プロフェッショナルなソフトウェア開発には、判断、検証、説明責任が不可欠だ。GitHub Copilotアプリ、サンドボックス、コードレビュー、自動化、文脈連続性、パートナーエコシステムは、エージェントがより多くの作業を担いながらも、開発者が品質、ポリシー、デリバリーの統制を保つための一つのシステムとして結実している。

GitHub Blogの記事では、エージェント主導の開発がプラットフォーム全体で拡大する中、可用性を第一に据え、これらのシステムを堅牢化し、チームが日々の開発で依存できる速さと信頼性を確保していく姿勢が示されている。

この記事のポイント

  • GitHub Copilotアプリは複数エージェントを並行管理し、worktreeとAgent Mergeで混乱を防ぐコントロールセンターとして機能する
  • Canvasにより、チャットの指示を視覚的な作業面に展開し、人間とエージェントが同じキャンバス上で協調できる
  • ローカルとクラウドのサンドボックスで、本番環境に触れずにエージェントがコードを実行・検証できる
  • コードレビュー機能は中程度推論モデルやセキュリティ専用スキルで品質を保ち、Azure DevOpsでもネイティブ利用可能
  • SDKと刷新されたCLIにより、開発者自身のツールや自動化を同じエージェントランタイム上に構築できる
OpenAI、Windows版Codexに独自サンドボックス実装 昇格不要プロトタイプから完全制御へ

OpenAI、Windows版Codexに独自サンドボックス実装 昇格不要プロトタイプから完全制御へ

2026年5月13日、OpenAIはWindows版Codexにおけるサンドボックス実装の技術的詳細を公式ブログで公開した。これまでWindowsユーザーは、コーディングエージェントの操作を逐一承認するか、全アクセスを許可するリスクの高い選択肢しかなかった。今回の独自サンドボックスによって、安全性と生産性を両立する仕組みが実現した。

Codexは開発者のローカルマシン上で動作し、CLIやIDE拡張機能、デスクトップアプリを通じて利用できる。デフォルトではワークスペース内でのファイル書き込みやネットワークアクセスに制限がかかるが、これをOSレベルで強制するサンドボックスが不可欠だった。macOSやLinuxにはSeatbeltやseccompといった確立された分離機能がある一方、Windowsには同様の機能が標準で提供されていなかった。

Codex for Windowsが抱えていた課題

Codex for Windowsが抱えていた課題

Windows版Codexの初期リリースでは、サンドボックス機能が実装されていなかった。ユーザーは次の2つの不十分な選択肢を強いられていた。

  • ほぼすべてのコマンドを手動で承認するモード: ファイル読み取りのような安全な操作も含めて逐一の許可が必要で、煩雑さから本来の自律的作業の利点が損なわれる。
  • フルアクセスモード: 承認なしにすべてのコマンドを無制限に実行させる。操作はスムーズだが、意図しないファイル変更やデータ流出のリスクがある。

Codexは本来、ユーザーの代理としてテスト実行やファイル編集、ブランチ作成などを自律的に処理することで生産性を高めるツールだ。したがって、安全性を確保しつつ、許可の承認を最小限に抑える仕組みが求められた。その鍵となるのが、OSが持つ隔離機能を活用したサンドボックスである。

サンドボックスが果たす役割

サンドボックスとは、プロセスに制約を課す隔離実行環境である。Codexがコマンドを実行する際、OSがそのプロセスツリー全体に制限を伝播させることで、許可なくワークスペース外のファイルへ書き込んだり、インターネットへアクセスしたりできないようにする。macOSやLinuxでは標準機能でこれが実現できるが、Windowsでは一から設計する必要があった。

Windowsが提供する3つの分離機能を検証

Windowsが提供する3つの分離機能を検証

OpenAIのエンジニアリングチームは、Windowsに用意されている隔離プリミティブとしてAppContainer、Windows Sandbox、Mandatory Integrity Control(MIC)を検討したが、いずれもCodexの用途には合致しなかった。

AppContainer: 強力だがワークフローに柔軟性欠く

AppContainerはWindowsネイティブのサンドボックスで、必要なアクセス権限を事前に定義するケイパビリティベースのモデルである。OS境界による本格的な制限を提供するが、Codexはシェル、Git、Python、パッケージマネージャなど多様なツールを動的に制御する必要がある。事前に厳密に権限を絞るAppContainerでは、エージェントのワークフローに対応できなかった。

Windows Sandbox: 強い隔離だが実環境と分断

Windows Sandboxは、使い捨ての軽量仮想マシンである。セッション終了時に内部の変更はすべて破棄される。セキュリティ面では強力だが、Codexはユーザーの実際のチェックアウト環境やツール群を直接操作する必要があり、外部の仮想デスクトップでは実用的ではなかった。さらにWindows SandboxはHomeエディションでは利用できず、製品上の問題も抱えていた。

MIC: 静的制御だがホストファイルシステムへの影響が大きい

Mandatory Integrity Control(MIC)は、低/中/高の整合性レベルを使ってプロセスやオブジェクトの信頼度を制御する。原則として、低整合性プロセスは高整合性オブジェクトに書き込めない。Codexを低整合性で実行し、書き込み可能ディレクトリを低整合性に再ラベルすることで、書き込み範囲を制限できる可能性があった。

しかし、ワークスペース全体を低整合性にすると、「Codexが書き込める」以上の意味が生じる。低整合性プロセス全般がその領域にアクセスできるようになり、開発マシンの信頼モデルを大きく損なうリスクがあった。またACLと同様に実ファイルシステムに変更を加えるため、サンドボックスの制約を動的に変更することも難しかった。

OpenAIの独自アプローチ: SIDと制限トークンによる非昇格サンドボックス

OpenAIの独自アプローチ: SIDと制限トークンによる非昇格サンドボックス

既存機能では要件を満たせないと判断したOpenAIチームは、WindowsのSID(セキュリティ識別子)と書き込み制限トークンを組み合わせた独自のサンドボックスを設計した。最初のプロトタイプは管理者権限なし(非昇格)で動作することを目標とし、ファイル書き込みとネットワークアクセスを制限する仕組みを目指した。

SIDと書き込み制限トークンの仕組み

SIDはWindowsがユーザーやグループ、ログインセッションを識別するために用いるIDである。たとえば、S-1-5-5-X-Yが現在のセッションに割り当てられる。SIDはACL(アクセス制御リスト)と組み合わせて、ファイルやディレクトリへの読み書き実行権限を制御する。OpenAIのチームは、Codex専用の合成SID sandbox-writeを作成し、このSIDを使って書き込み可能範囲を厳密に定めた。

書き込み制限トークン(write-restricted token)は、プロセストークンに追加の書き込みチェックを課す。通常のユーザー権限に加え、トークン内の制限SIDリストに含まれるSIDのいずれかが書き込み先ACLで許可されていなければ書き込みができない。これにより、Codexプロセスの書き込み権限を、ワークスペースと明示的に許可したディレクトリだけに絞り込んだ。

非昇格プロトタイプの流れ

セットアップ時に、sandbox-write SIDを作成し、カレントディレクトリや設定ファイル config.toml に指定した書き込み可能ルートに書き込み・実行・削除のACLを付与する。一方で .git.codex.agents といったディレクトリには明示的に書き込みを拒否した。そのうえでCodexは、制限SIDリストに Everyone、ログインセッションSID、sandbox-write を含む書き込み制限トークンで子プロセスを起動した。

これにより、明示的に許可した場所以外への書き込みはOSレベルでブロックされ、読み取りはユーザー権限で広く許可されるバランスのとれた環境が実現した。しかしネットワーク制御には別の課題が残った。

環境変数によるネットワーク抑制と限界

非昇格環境ではWindows Firewallを管理者権限なしで利用できなかったため、環境変数を用いた間接的なネットワーク抑制が採られた。具体的には HTTPS_PROXY=http://127.0.0.1:9 などのプロキシ変数に無効なアドレスを指定し、GitやSSHなどのツールが外部に接続できないようにした。またPATHにダミーの denybin ディレクトリを追加するなど、一般的なツールの通信を妨げた。

しかしこの方法はあくまで「助言的」な制約であり、プロキシ設定を無視するプログラムや独自のソケット通信を行うバイナリに対しては効果がなかった。悪意あるコードに対しても脆弱だった。

ネットワーク制御を突破した昇格版サンドボックスの実装

ネットワーク制御を突破した昇格版サンドボックスの実装

実用的なネットワーク制御を実現するため、OpenAIチームはWindows Firewallの導入を決断した。ファイアウォールルールをプロセスツリー単位で適用するには、サンドボックス専用のユーザー権限が必要となり、結果として管理者権限でのセットアップを許容する「昇格版サンドボックス」へと設計が進化した。

専用ユーザーとファイアウォール

昇格版では、CodexSandboxOfflineCodexSandboxOnline という2つのローカルユーザーを作成する。Offline のユーザーにはすべての外部ネットワーク通信を遮断するファイアウォールルールが適用される。Codexがネットワークを必要としないコマンドを実行する際にはOfflineユーザーで起動し、ネットワーク許可が必要な場合はOnlineユーザーを選択する。これにより、ファイル書き込み制限と同様にOSレベルでの確実なネットワーク遮断が可能になった。

コマンドランナーと4層アーキテクチャ

ユーザー権限を切り替えて子プロセスを起動するには、Windowsのセキュリティ境界を越える必要があった。OpenAIは専用のバイナリ codex-command-runner.exe を導入し、次のような多層構造を採用した。

  1. codex.exe: 通常のユーザー権限で動作し、コードエージェントのハーネスとして機能する。
  2. codex-windows-sandbox-setup.exe: 管理者権限でセットアップ処理を担当。サンドボックスユーザーの作成、ファイアウォールルールの追加、必要なACLの付与を実行する。
  3. codex-command-runner.exe: サンドボックスユーザーとして起動され、自身のトークンから書き込み制限トークンを作成し、最終的な子プロセスを起動する。
  4. 子プロセス: 制限付きトークンで実行されるGitやPythonなどの実コマンド。

具体的な起動フローは次の通りである。codex.exeCreateProcessWithLogonW を用いて codex-command-runner.exe をサンドボックスユーザーとして起動。ランナーは自身のプロセストークンからログオンSIDを抽出し、書き込み制限トークンを構築したうえで CreateProcessAsUserW により制限付きの子プロセスを立ち上げる。

1. codex.exe(実ユーザー)
CreateProcessWithLogonWでCodexSandboxOffline/Onlineユーザーとしてrunnerを起動
2. codex-command-runner.exe(サンドボックスユーザー)
自身のトークンから制限SIDリストを含む書き込み制限トークンを作成
3. 子プロセス(制限トークン付き)
GitやPythonなどの実コマンド。OfflineユーザーならFirewallでネットワーク遮断
通常ユーザー
サンドボックスユーザー
制限付き子プロセス
※実際の起動時には、codex-windows-sandbox-setup.exeが事前にユーザーとファイアウォールルールを作成する

このデモで示したように、昇格版ではOSのファイアウォール機能を組み込むことで、非昇格版のネットワーク上の弱点を克服した。また、システム全体へのACL変更は最小限にとどめ、非同期処理を用いてセットアップのブロック時間を短縮している。

この記事のポイント

  • Windows版Codexは当初、サンドボックスが存在せず、手動承認かフルアクセスの選択肢しかなかった。
  • OpenAIはAppContainer、Windows Sandbox、MICを検討したが、いずれも動的な開発ワークフローに適さず、独自サンドボックスを開発した。
  • 最初の非昇格プロトタイプは、SIDと書き込み制限トークンでファイル書き込み範囲を制限したが、ネットワーク抑制は弱かった。
  • 最終的な昇格版サンドボックスでは、専用のWindowsユーザーとファイアウォールルールを導入し、ネットワーク遮断をOSレベルで実現。
  • codex-command-runner.exeによる多層アーキテクチャで、安全性を保ったままコードエージェントの自律実行を可能にした。
AIエージェント実行を100倍高速化。Cloudflare Dynamic Worker Loaderの革新性

AIエージェント実行を100倍高速化。Cloudflare Dynamic Worker Loaderの革新性

AIエージェントが自らコードを書き、それを実行してタスクを完結させる「コード実行型」のワークフローが注目を集めている。しかし、AIが生成したコードを安全に動かすには、メインのシステムから隔離された「サンドボックス」が不可欠だ。

Cloudflareは2026年3月24日、このサンドボックスをオンデマンドで、かつ従来のコンテナ技術より100倍高速に起動できる「Dynamic Worker Loader」のオープンベータ公開を発表した。V8 Isolate技術を基盤とすることで、ミリ秒単位の起動と圧倒的なリソース効率を実現している。

この記事では、Dynamic Worker LoaderがなぜAIエージェントのスケールにおいて重要なのか、そしてエンジニアがどのようにこれを活用できるのかを詳しく解説する。

AIエージェントの安全性を支える「サンドボックス」の課題

AIエージェントの安全性を支える「サンドボックス」の課題

AIエージェントがAPIを呼び出す際、単なる「ツール呼び出し(Tool Calling)」ではなく、コードを生成して実行させる手法は、トークン消費量を大幅に削減できることが分かっている。記事によれば、TypeScript APIを使用することで、トークン使用量を最大81%削減できた例もあるという。

なぜAI生成コードの直接実行は危険なのか

AIが生成したコードをアプリケーション内で直接実行(evalなど)することは、セキュリティ上の致命的なリスクとなる。悪意のあるユーザーがプロンプトを通じて脆弱性を注入し、システムの機密情報にアクセスしたり、不正な操作を行ったりする可能性があるからだ。

そのため、コードを実行する場所は、アプリケーションや他の環境から完全に隔離された「サンドボックス(砂場)」でなければならない。サンドボックスとは、特定の権限やリソースのみにアクセスを制限した実行環境のことだ。

既存のコンテナ技術が抱える「重さ」の壁

これまで、サンドボックスの構築にはDockerなどのLinuxコンテナが一般的に使われてきた。しかし、コンテナには大きな弱点がある。起動に数百ミリ秒から数秒かかり、メモリ消費量も数百MB単位と「重い」ことだ。

数百万人のユーザーがそれぞれAIエージェントを動かすようなコンシューマー規模のサービスでは、コンテナを都度立ち上げるコストは無視できない。かといって、セキュリティのためにコンテナを使い回さず、リクエストごとにクリーンな環境を用意しようとすると、パフォーマンスとコストの両面で限界に突き当たる。

Dynamic Worker Loader:V8 Isolateによる100倍速の革新

Dynamic Worker Loader:V8 Isolateによる100倍速の革新

Cloudflareが提供する「Dynamic Worker Loader」は、この「重さ」の問題を根本から解決する。その鍵となるのが、Google Chromeでも採用されているJavaScript実行エンジン「V8」の「Isolate(アイソレート)」という仕組みだ。

起動時間は数ミリ秒、メモリ消費も最小限

Isolateは、OSレベルの仮想化であるコンテナとは異なり、プロセス内でメモリを論理的に分離する。これにより、起動時間はわずか数ミリ秒、メモリ消費も数MB程度に抑えられる。著者のKenton Varda氏らは、これが一般的なコンテナと比較して「100倍高速で、10〜100倍メモリ効率が良い」と指摘している。

この軽量さにより、1つのリクエストごとに新しいサンドボックスを生成し、実行が終わったら即座に破棄するという運用が現実的になる。同時並行で数百万のリクエストが発生しても、Cloudflareのインフラ上でシームレスにスケール可能だ。

世界数百拠点でのゼロレイテンシ実行

Dynamic Worker Loaderで生成されたワーカーは、通常、それを作成した親ワーカーと同じマシン、あるいは同じスレッド上で動作する。そのため、遠くのサーバーにある「ウォーム状態のコンテナ」を探しに行く必要がない。

Cloudflareが世界中に持つ数百の拠点すべてで動作するため、ユーザーに最も近い場所で、遅延(レイテンシ)をほぼ感じさせることなくAIコードを実行できるのが強みだ。

TypeScript RPCによる効率的なAPI連携

TypeScript RPCによる効率的なAPI連携

AIエージェントが外部のAPIと通信する際、従来はOpenAPI(REST)などの定義ファイルが使われてきた。しかし、Dynamic Worker Loaderでは、より簡潔な「TypeScript」による定義を推奨している。

OpenAPIより優れたトークン効率

OpenAPIの定義ファイルは冗長になりがちで、LLM(大規模言語モデル)に読み込ませる際のトークン消費が激しい。一方、TypeScriptのインターフェース定義は非常にコンパクトだ。AIにとっても理解しやすく、少ないトークン数でAPIの仕様を正確に伝えられる。

Dynamic Worker Loaderは「Cap’n Web RPC」という技術を使って、サンドボックス内のエージェントと親ワーカーの間で高速な通信を行う。エージェント側からは、あたかもローカルライブラリを使っているかのように、型安全なメソッド呼び出しが可能になる。

認証情報の注入とセキュアな外部接続

セキュリティ面でも、このRPCモデルは有利に働く。例えば、外部サービスへの認証トークンをエージェントに直接教える必要はない。エージェントがHTTPリクエストを送る際、親ワーカー側でリクエストをインターセプト(傍受)し、そこで認証ヘッダーを付与する「Credential Injection(認証情報の注入)」が可能だからだ。

これにより、万が一AIが生成したコードに悪意があったとしても、生の認証情報がエージェント側に漏洩するリスクを最小限に抑えられる。

AI開発を加速させる3つの公式ヘルパーライブラリ

AI開発を加速させる3つの公式ヘルパーライブラリ

Cloudflareは、Dynamic Worker Loaderをより使いやすくするために、3つの強力なヘルパーライブラリを提供している。これらを組み合わせることで、高度なAIエージェント環境を短期間で構築できる。

コード実行を簡略化する「Code Mode」

@cloudflare/codemodeは、LLMが生成したコードの実行を管理するライブラリだ。コードの正規化(フォーマットエラーの修正)や、fetch()の挙動制御を簡単に行える。完全に隔離された状態(ネットワークアクセス禁止)から、特定のプロキシ経由の通信まで、柔軟に設定可能だ。

ランタイムでのバンドルを可能にする「Worker Bundler」

Dynamic Workerは、依存関係が解決された「バンドル済み」のモジュールを必要とする。@cloudflare/worker-bundlerを使えば、実行時にnpmパッケージを含むソースコードをバンドルできる。例えば、Honoなどの軽量フレームワークをAIエージェントに使わせることも容易だ。

仮想ファイルシステムを提供する「Shell」

@cloudflare/shellは、サンドボックス内に仮想的なファイルシステムを提供する。エージェントはファイルの読み書き、検索、置換、diffの取得などが可能になる。ストレージの実体はSQLiteやR2(Cloudflareのオブジェクトストレージ)に保存されるため、実行を跨いでファイルを永続化させることもできる。

実務への応用とコストパフォーマンスの分析

実務への応用とコストパフォーマンスの分析

Dynamic Worker Loaderの導入は、AIアプリケーションのアーキテクチャに大きな変革をもたらす。筆者の分析によれば、特に以下の3つの分野で大きなメリットがある。

第一に、「Tool Calling」のオーバーヘッド削減だ。従来のように、AIが1つずつツールを呼び出して結果を待ち、次のアクションを決めるループを繰り返すと、その都度コンテキストが膨らみ、レイテンシも増大する。Dynamic Workerを使えば、AIが「一連の処理をまとめたスクリプト」を一度に書き、それを実行するだけで済む。これは、大規模なAPIセットを持つシステムほど効果が高い。

第二に、コスト効率の劇的な向上だ。Dynamic Workerの料金は、ロード1回につき0.002ドル(ベータ期間中は無料)に、通常のCPU使用料が加算される仕組みだ。これはLLMの推論コストと比較すれば微々たるものだ。重いコンテナを常時起動させておく「ウォームスタンバイ」のコストから解放される意味は大きい。

第三に、プロトタイピングの高速化だ。Ziteなどの企業がすでに導入しているように、ユーザーの要望に応じてその場でCRUDアプリや自動化ロジックを生成し、即座にデプロイして動かすような「AIネイティブなPaaS」の構築が容易になる。

この記事のポイント

  • 100倍の高速化: V8 Isolateにより、コンテナより圧倒的に速く軽量なサンドボックスを実現。
  • セキュアな隔離: AI生成コードをメインシステムから分離し、安全にオンデマンド実行できる。
  • 高いトークン効率: TypeScript RPCを活用し、冗長なOpenAPI定義を避けてコストを削減。
  • 充実のライブラリ: コード実行、バンドル、ファイル操作を支援する公式ツールが提供されている。
  • スケーラビリティ: Cloudflareのグローバルネットワーク上で、数百万のリクエストに即座に対応可能。

出典

  • Cloudflare Blog「Sandboxing AI agents, 100x faster」(2026年3月24日)