KubernetesにおけるgVisorとマイクロVMによるAIエージェントの保護
Kagent v1.0とAgent Substrateは、ハードウェアおよびソフトウェアレベルでの分離をAIエージェントに導入し、gVisorとマイクロVMを使用してエスケープを防ぎ、Kubernetesクラスタ内でポリシーを強制します。
英語の原文から自動翻訳されました。
2026年10月26日、Cloud Native Computing Foundation(CNCF)は、Kubernetes環境内での自律型AIエージェントのセキュリティ確保に関する技術的な詳細解説を公開しました。この記事では、kagent v1.0とAgent Substrateプラットフォームの組み合わせにより、エージェント型ワークロードにおける分離性、セキュリティ、スケーラビリティの重要な課題がどのように解決されているかを詳述しています。このアプローチは標準的なコンテナ化を超え、本番グレードのAIシステムに対して堅牢なポリシー適用とリソース管理を提供します。
何が起きたか
標準的なコンテナランタイムは、信頼できないコードに対して不十分な分離しか提供しないことがよくあります。Dockerや同様のエンジンでは名前空間を分離しますが、ホストカーネルを共有しているため、エスケープや横方向の移動への潜在的な経路が残ります。任意のツール呼び出しを実行したり、機微な認証情報を扱ったり、信頼できないモデル出力を処理したりする可能性のあるAIエージェントの文脈では、この「フラット」なサンドボックスモデルは重大なリスクをもたらします。イングレスおよびエグレストラフィックはしばしば広く開かれており、厳格なネットワークポリシーがない場合、エージェントは任意のエンドポイントと通信できてしまいます。
これらの脆弱性に対処するため、CNCFの記事ではkagentとAgent Substrateを中心に据えた階層型アーキテクチャを紹介しています。Kagentは、LangGraphやADKなどのフレームワークをサポートする、宣言的およびBYO(Bring Your Own)エージェントのためのランタイム環境として機能します。Agent Substrateは基盤となるインフラストラクチャレイヤーとして働き、必要なサンドボクシング機能を提供します。両者を組み合わせることで、エージェントが厳密に定義された境界内で動作することが保証され、万一の侵害時の影響範囲(ブラスト半径)を最小限に抑えつつ、効率的なリソース多重化を通じて高可用性を確保します。
提案されたソリューションには、ハードウェアレベルとソフトウェアレベルの両方での分離が必要です。また、トラフィックが目的地に到達する際に制御するために、AI Gatewayレベルでのポリシー適用も義務付けられています。これらのコントロールを実装することで、エンジニアリングチームは信頼できないエージェントコードがホスト環境へエスケープしたり、基盤インフラストラクチャを侵害したりすることを防げます。さらに、この構成では状態のスナップショット取得が可能になり、中断後にエージェントがシームレスに操作を再開できるようになります。
仕組み
Agent Substrateは、ateapiというコントロールプレーンによって管理されるKubernetes PodであるWorkers上でエージェントを実行することにより、分離を実現します。これらのWorkersがエージェントプロセスを分離する方法こそが核心的な革新です。ソフトウェアレベルの分離のため、システムはgVisorを使用します。gVisorはSentryという専用のアプリケーションカーネルを用いて、ユーザー空間でワークロードを実行します。Sentryはシステムコールをインターセプトして処理し、エージェントがホストカーネルと直接やり取りすることを防ぎます。これにより、完全な仮想化に伴うオーバーヘッドなしに、堅牢なセキュリティ境界を追加できます。
ハードウェアレベルの分離のため、Agent SubstrateはマイクロVMを採用しています。これらの軽量仮想マシンは、ハードウェア仮想化拡張機能を使用して物理CPUコア上で直接実行されます。このアプローチにより、仮にソフトウェア分離レイヤーが破られたとしても、エージェントは仮想化されたハードウェア環境内に閉じ込められます。gVisorとマイクロVMの組み合わせは多層防御(ディフェンス・イン・デプス)を提供し、悪意あるまたは不安定なエージェントの挙動からカーネルと物理ハードウェアの両方を保護します。
Kagentはこの複雑なインフラストラクチャとの連携を簡素化します。kagentがない場合、開発者は特定のActorsに対するcurlリクエストなど、低レベルのプログラム経由でAgent Substrateとやり取りする必要がありました。Kagentはユーザーインターフェースと宣言的な設定オプションを提供し、チームが慣れ親しんだKubernetesのパターンを使ってエージェントを管理できるようにします。これは基盤となるSubstrateの複雑さを抽象化し、厳格なセキュリティ保証を維持しながら標準的な開発ワークフローで利用可能にします。
主要な詳細
- 分離レイヤー: Agent Substrateは、Sentryユーザー空間カーネルを介したソフトウェアレベルの分離にgVisorを、物理CPUコア上でのハードウェアレベルの分離にマイクロVMを使用します。
- ランタイム管理: Kagent v1.0はランタイムとして機能し、LangGraphやADKなどのフレームワークからの宣言的デプロイメントおよびBYOエージェントをサポートします。
- リソース効率: エージェントはアクティブなセッション中のみ起動し、その後停止するActorsとして実行され、マルチテナント環境でのハードウェアリソース使用を最適化します。
- 状態管理: システムはスナップショットを取得することをサポートしており、エージェントは状態を保存し、中断した場所から操作を再開できます。
- デプロイメントモデル: インストールには
kubectl-ateの設定、Agent Substrateのインストール、そしてHelm経由でのkagentのデプロイが含まれます。これにより、2つのWorkersを持つデフォルトのWorkerPoolが作成されます。 - 設定: エージェントは
HarnessおよびAgentTemplateカスタムリソース定義(CRDs)を使用して定義され、イメージパス、スナップショットの場所、許可されたテンプレートを指定します。
なぜ重要なのか
ソフトウェアエンジニアや技術リードにとって、エージェント型ワークフローへの移行は新たな運用上の課題をもたらします。従来のマイクロサービスには予測可能な入出力がありますが、AIエージェントは自然言語のプロンプトに基づいて動的なコードを生成し、外部API呼び出しを行い、機微なデータにアクセスする可能性があります。強力な分離がない場合、単一の侵害されたエージェントがクラスタ内の他のサービスにアクセスしたり、データを流出させたりする可能性があります。CNCFが説明するアーキテクチャは、パフォーマンスや開発速度を犠牲にすることなく、これらのリスクを軽減するための青写真を提供します。
さらに、エージェント設定を宣言的に記述し、UIを通じて管理できる能力は、現代のDevOpsプラクティスと整合します。チームはエージェント定義のバージョン管理ができ、環境全体で一貫したポリシーを適用し、リソース使用状況を効果的に監視できます。セッションベースのアクターモデルにより、エージェントがリクエストをアクティブに処理しているときのみリソースが消費されるため、コストを管理可能な範囲に保つことができます。この効率性は、数千人の同時ユーザーに向けてエージェント型アプリケーションをスケーリングする上で極めて重要です。
このレベルのセキュリティを採用することは、規制コンプライアンスの促進にも役立ちます。エージェントコードがサンドボックスからエスケープできないこと、すべてのトラフィックがポリシー適用の対象であることを保証することで、組織はAIシステムに対する制御をより適切に証明できます。政府や業界団体が重要分野でのAI展開に対するより厳しいガイドラインを導入するにつれて、この点はますます重要になっています。
実施できること
- KindまたはMinikubeを使用してローカルKubernetesクラスタを設定し、CNCFガイドに記載されているインストール手順をテストします。
kubectl-ateをインストールし、Agent Substrateコントロールプレーンとのコマンドラインインタラクションを有効にします。- Helm経由でkagent v1.0をデプロイし、デフォルトのWorkersをプロビジョニングするために
substrateWorkerPool.create設定が有効になっていることを確認します。 - 提供されたYAML例を使用して
AgentTemplateとHarnessを定義し、プレースホルダーのイメージパスとスナップショットの場所を独自値に置き換えます。 - kagent UIを使用して新しいエージェントテンプレートとハーネスを作成し、Actorsがアクティブなセッション中のみ起動することを確認します。
- 現在のネットワークポリシーを見直し、gVisorとマイクロVMの分離がAIワークロード向けの既存のセキュリティ対策をどのように補完できるかを検討します。



