<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>サンドボックスの分離 on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%82%B5%E3%83%B3%E3%83%89%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E5%88%86%E9%9B%A2/</link>
        <description>Recent content in サンドボックスの分離 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sun, 12 Jul 2026 10:35:00 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%82%B5%E3%83%B3%E3%83%89%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AE%E5%88%86%E9%9B%A2/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>CubeSandbox は AI エージェントの分離環境をどのように構成しますか: 同時実行、権限、コストのトレードオフ</title>
        <link>https://knightli.com/ja/2026/07/12/cubesandbox-ai-agent-isolation-concurrency-permission-cost-guide/</link>
        <pubDate>Sun, 12 Jul 2026 10:35:00 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/07/12/cubesandbox-ai-agent-isolation-concurrency-permission-cost-guide/</guid>
        <description>&lt;p&gt;AI エージェントがコードの実行、依存関係のインストール、Web ページへのアクセス、ツールの呼び出し、または長時間のタスクの実行を継続する必要がある場合、問題はもはや「実行できるか?」というだけではありません。しかし、「この信頼できない、または不完全な命令をどこで実行すべきか、何にアクセスできるか、エラー発生後にどのように停止してロールバックするか」。 CubeSandbox は、高速起動、高い同時実行性、KVM ハードウェア レベルの分離に重点を置いたエージェント用のサンドボックス サービスです。&lt;/p&gt;
&lt;p&gt;これは、エージェントの実行面をホストおよび運用環境から分離するのに適しています。すべてを自動的に安全にするというわけではありません。マウントされたディレクトリ、ネットワーク出口、挿入された認証情報、イメージ テンプレート、およびスケジュール クォータは、引き続きチームによって明示的に構成する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;まず-cubesandbox-が本当に必要かどうかを判断します&#34;&gt;まず CubeSandbox が本当に必要かどうかを判断します
&lt;/h2&gt;&lt;p&gt;すべてのエージェントがマイクロ仮想マシンを必要とするわけではありません。リスクとタスクの種類に応じて選択できます。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;シナリオ&lt;/th&gt;
          &lt;th&gt;より適切な方法&lt;/th&gt;
          &lt;th&gt;理由&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;読み取り専用コード Q&amp;amp;A、静的検索&lt;/td&gt;
          &lt;td&gt;ローカル読み取り専用ツールまたは制限付き MCP&lt;/td&gt;
          &lt;td&gt;スタンドアロンの実行環境を起動する必要はありません&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;単体テストの実行、依存関係のインストール、生成されたコードの実行&lt;/td&gt;
          &lt;td&gt;CubeSandbox またはその他の強力な分離サンドボックス&lt;/td&gt;
          &lt;td&gt;コードと依存関係が信頼されておらず、ファイル システムに書き込まれている可能性があります&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;同時実行性の高いエージェント評価、バッチ タスク、ブラウザ自動化&lt;/td&gt;
          &lt;td&gt;CubeSandbox クラスター&lt;/td&gt;
          &lt;td&gt;複数の実行ユニットを迅速に作成、リサイクル、分離する必要がある&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;本番データベースの操作、電子メールの送信、デプロイ&lt;/td&gt;
          &lt;td&gt;手動承認と制御された専用システム&lt;/td&gt;
          &lt;td&gt;サンドボックスはビジネスの承認と変更プロセスを置き換えることはできません&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;エージェントがファイルを取得してパッチを提案する必要があるだけの場合は、読み取り専用権限と差分レビューから始めます。タスクで信頼できないコードまたは大量の同時実行を実際に実行する必要がある場合にのみ、完全なサンドボックスを導入して、アクセス許可ポリシーで処理できる問題を解決するためにインフラストラクチャの複雑さを利用することを回避します。&lt;/p&gt;
&lt;h2 id=&#34;cubesandbox-の分離モデルとは何ですか&#34;&gt;CubeSandbox の分離モデルとは何ですか?
&lt;/h2&gt;&lt;p&gt;CubeSandbox は RustVMM と KVM に基づいており、サンドボックスごとに独立したゲスト OS カーネルを提供します。その目標は、ホスト カーネルを共有する通常のコンテナと比較して、コンテナ エスケープによって引き起こされる影響範囲を減らすことです。このリポジトリは、eBPF ネットワーク分離、出力制御、監査、資格情報ボールトなどのコンポーネントも提供します。&lt;/p&gt;
&lt;p&gt;これらの概念は個別に理解する必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;コンピューティングの分離&lt;/strong&gt;: エージェントが独自のサンドボックスでコードを実行するように制限し、ホスト プロセスとカーネルの権限を直接取得しません。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ファイルの分離&lt;/strong&gt;: サンドボックスが認識できるマウントされたディレクトリ、テンプレート、永続ボリュームを決定します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ネットワーク分離&lt;/strong&gt;: アクセスできるドメイン、API、内部サービスを決定します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;アイデンティティの分離&lt;/strong&gt;: 資格情報を環境、ログ、またはモデルのコンテキストに直接入れるかどうかを決定します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ビジネスの分離&lt;/strong&gt;: エージェントに実際のデータの変更、メッセージの送信、または展開のトリガーを行う権限があるかどうかを判断します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;KVM は最初の 4 つの層を改善できますが、最後の層を自動化することはできません。コードが独立した仮想マシンで実行される場合でも、高い特権の実稼働トークンを取得すると、実際のビジネスに影響を与える可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;導入前の基本条件&#34;&gt;導入前の基本条件
&lt;/h2&gt;&lt;p&gt;公式クイック スタート要件 &lt;strong&gt;KVM サポートを備えた x86_64 Linux 環境&lt;/strong&gt;。単一ノードの展開をサポートしており、マルチノード クラスターに拡張することもできます。 KVM がない場合でも開発環境ソリューションを使用できますが、公式にはパフォーマンスが低いとマークされているため、同時実行性の高い運用ベンチマークとして直接使用しないでください。&lt;/p&gt;
&lt;p&gt;環境を準備するときは、まず次のことを確認してください。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;CPU 仮想化は BIOS およびホスト システムで有効になっており、KVM デバイスが利用可能です。&lt;/li&gt;
&lt;li&gt;コントロール プレーンがビジネス データと混在しないように、コントロール ノード、コンピューティング ノード、およびストレージの場所の責任が分割されます。&lt;/li&gt;
&lt;li&gt;イメージまたはテンプレートのソースは追跡可能で、ランタイム、パッケージ マネージャー、および基本ツールの修正バージョンが含まれています。&lt;/li&gt;
&lt;li&gt;ログ、インジケーター、および監査データには独立したストレージおよび保持ポリシーがあり、何が起こったのかを説明するためにエージェントに依存しません。&lt;/li&gt;
&lt;li&gt;クラスター全体を停止するだけでなく、個々のサンドボックスを停止したり、キューを停止したり、例外時に終了を遮断したりする機能。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;インストールが完了すると、公式 Web コンソールはデフォルトで制御ノードの &lt;code&gt;:12088&lt;/code&gt; ポートを使用します。コンソールは制限されたネットワークに配置し、パブリック ネットワークに直接公開しないでください。管理者向けに独立した ID 認証とネットワーク アクセス ルールを設定します。&lt;/p&gt;
&lt;h2 id=&#34;同時実行を計画する方法&#34;&gt;同時実行を計画する方法
&lt;/h2&gt;&lt;p&gt;CubeSandbox の利点の 1 つは、迅速な作成と高密度の操作です。公式ベンチマークでは、コールド スタートは平均単一同時実行性が 60 ミリ秒未満であり、小規模なインスタンスの場合は基本的なメモリ オーバーヘッドが 5 MB 未満であると説明されています。ただし、これらは特定の環境におけるパフォーマンス データであり、ビジネス能力と直接的に同等であるべきではありません。&lt;/p&gt;
&lt;p&gt;同時実行性を計画するときは、容量を 4 つの変数に分割します。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;変数&lt;/th&gt;
          &lt;th&gt;質問&lt;/th&gt;
          &lt;th&gt;よくある誤解&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;キューの長さ&lt;/td&gt;
          &lt;td&gt;同時に実行を待機しているエージェント タスクはいくつありますか?&lt;/td&gt;
          &lt;td&gt;ピークバーストではなく、平均リクエスト量のみを確認してください&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;シングルタスクのリソース&lt;/td&gt;
          &lt;td&gt;各タスクの CPU、メモリ、ディスク、実行時間はどれくらいですか?&lt;/td&gt;
          &lt;td&gt;モデル トークンのみが評価され、コンパイルと依存関係のインストールは評価されません。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;テンプレートのヒット&lt;/td&gt;
          &lt;td&gt;タスクは予熱されたテンプレートを使用しますか、または依存関係を頻繁に再インストールしますか?&lt;/td&gt;
          &lt;td&gt;すべてのタスクは空のイメージから始まります&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;外部のボトルネック&lt;/td&gt;
          &lt;td&gt;ネットワーク、LLM API、データベース、またはブラウザ サービスは同時実行を許容できますか?&lt;/td&gt;
          &lt;td&gt;サンドボックスが十分に高速であれば、リンク全体が十分に高速であるとみなされます。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;少量の同時実行から始めて、実際のタスクを使用して作成レイテンシ、実行時間、失敗率、メモリのピーク、出力リクエストの量を測定し、テナントごと、プロジェクトごと、タスク タイプごとに上限を設定することをお勧めします。 「単一ノードで多数のインスタンスを実行できる」ということを、無制限の外部リクエストを受け入れることができるという意味として理解していない。&lt;/p&gt;
&lt;h2 id=&#34;権限設定は最小限の範囲に従う必要があります&#34;&gt;権限設定は最小限の範囲に従う必要があります
&lt;/h2&gt;&lt;p&gt;最も安全なデフォルト状態は、マウントなし、認証情報なし、ネットワーク出口なし、および永続化なしです。次に、タスクごとに機能を 1 つずつ追加します。&lt;/p&gt;
&lt;p&gt;実行可能権限の階層は次のとおりです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;読み取り専用分析サンドボックス&lt;/strong&gt;: 読み取り専用コード スナップショット、ネットワークなし、キーなしにより、静的分析とテスト計画が可能になります。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;サンドボックスのビルドとテスト&lt;/strong&gt;: 書き込み可能な一時作業ディレクトリ。内部製品ソースから依存関係をダウンロードできますが、ホスト プロジェクト ディレクトリはマウントされません。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;制御された統合サンドボックス&lt;/strong&gt;: ホワイトリストに登録されたテスト API へのアクセスのみを許可します。認証情報はリクエストに応じてボールトによって挿入され、最小有効期間が設定されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;手動承認タスク&lt;/strong&gt;: アウトソーシング、本番データ、有料リソース、またはインフラストラクチャの変更が関係する場合は、エージェントが機能を直接取得できないように、最初に一時停止して承認を要求します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ユーザーのホーム ディレクトリ全体、Docker ソケット、SSH 秘密キー ディレクトリ、クラウド認証情報ディレクトリ、または運用環境構成をマウントしないでください。マウントはプロンプトの言葉よりも決定的です。ディレクトリが書き込み可能になると、エージェントが生成したコードやツールがディレクトリ内のすべてに影響を与える可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;ネットワーク出口と資格情報の処理方法&#34;&gt;ネットワーク出口と資格情報の処理方法
&lt;/h2&gt;&lt;p&gt;CubeSandbox は、ドメイン名フィルタリング、資格情報の挿入、およびアクセス監査のための CubeEgress を提供します。目標は、API キーがサンドボックス、モデル コンテキスト、または通常のログに直接入力されるのを防ぐことです。 「Credential Vault」を監査不要のフラグとして扱うのではなく、ポリシーを使用するときにも独自のポリシーを検証する必要があります。&lt;/p&gt;
&lt;p&gt;提案:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;外部ネットワークはデフォルトで拒否され、タスクに必要なドメイン名とポートのみが許可されます。&lt;/li&gt;
&lt;li&gt;パッケージ リポジトリ、モデル API、テスト サービス、内部ドキュメントをそれぞれホワイトリストに登録します。&lt;/li&gt;
&lt;li&gt;タスクの種類ごとに、最小限の権限、有効期間が短い、取り消し可能な資格情報を使用します。&lt;/li&gt;
&lt;li&gt;リクエストのターゲット、時間、タスク ID、結果コードを記録しますが、完全なキーや機密リクエストの本文は記録しません。&lt;/li&gt;
&lt;li&gt;不明なドメイン名、異常なトラフィック、または繰り返しの認証失敗が発生した場合、タスクを自動的に停止して警告します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ネットワーク許可リストは無関係な外部接続を減らすことができますが、サービス要求が正しいかどうかを判断することはできません。支払い、ユーザー データ、生産コントロール プレーンについては、認証、承認、レート制限をビジネス システム側で実装する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;自動一時停止スナップショットロールバックによってコストが削減される仕組み&#34;&gt;自動一時停止、スナップショット、ロールバックによってコストが削減される仕組み
&lt;/h2&gt;&lt;p&gt;タスクに時間がかかるということは、各環境を永久に実行し続けることを意味するわけではありません。 CubeSandbox は、自動一時停止/再開、スナップショット、クローン、ロールバック機能を提供しており、アイドル コストを削減し、同様のタスクの起動を高速化するために使用できます。&lt;/p&gt;
&lt;p&gt;合理的な使用法は次のとおりです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アイドル状態の開発環境または評価環境に対して自動一時停止を設定します。&lt;/li&gt;
&lt;li&gt;安定した依存関係をインストールし、ランタイムを構成した後、テンプレートまたはスナップショットを作成します。&lt;/li&gt;
&lt;li&gt;最初から繰り返しインストールするのではなく、クローンを使用して同じタスクの同時コピーを起動します。&lt;/li&gt;
&lt;li&gt;エージェントの変更で例外が発生した場合は、既知のチェックポイントにロールバックします。&lt;/li&gt;
&lt;li&gt;スナップショット、ログ、永続ボリューム、および長期停止環境のストレージ コストを個別に計算します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自動一時停止はコンピューティング リソースを節約しますが、回復に遅れが生じます。スナップショットと永続ボリュームは再現性を向上させますが、ストレージとライフサイクル管理の負担も増加します。コスト モデルには、コンピューティング、ストレージ、ネットワーク出力、テンプレートの構築、観察、および手動レビュー時間の両方を含める必要があります。&lt;/p&gt;
&lt;h2 id=&#34;エージェントタスクの安全な実行プロセス&#34;&gt;エージェントタスクの安全な実行プロセス
&lt;/h2&gt;&lt;p&gt;高リスクのタスクは次の順序で実行できます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;タスクを受け取ったら、まずタスクを読み取り専用、ビルドテスト、制御された統合、または承認が必要に分類します。&lt;/li&gt;
&lt;li&gt;タスクの最小テンプレート、リソース割り当て、有効期間、およびネットワーク ホワイトリストを選択します。&lt;/li&gt;
&lt;li&gt;独立したサンドボックスを作成し、タスク ID、テンプレート バージョン、ポリシー バージョンを記録します。&lt;/li&gt;
&lt;li&gt;サンドボックス内でコマンドを実行し、標準出力、終了コード、リソース使用量、ネットワーク監査をリアルタイムで収集します。&lt;/li&gt;
&lt;li&gt;外部システムへの書き込み、機密性の高い資格情報の使用、または予算を超過するアクションを一時停止して承認を要求します。&lt;/li&gt;
&lt;li&gt;「完了」だけではなく、結果、差分、テスト記録、引用元を出力します。&lt;/li&gt;
&lt;li&gt;一時的なサンドボックスをリサイクルします。再利用が必要な場合は、ポリシーに従ってスナップショットを一時停止または保存します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;このプロセスは、[AI エージェントの長時間のタスク中断後の回復方法] (/ja/2026/07/10/ai-agent-long-task-resume-guide/) にも当てはまります。回復するときは、まずスナップショット、タスク入力、および権限ポリシーがまだ有効であるかどうかを確認し、古い状態からやみくもに実行を続行しないでください。&lt;/p&gt;
&lt;h2 id=&#34;よくある誤解&#34;&gt;よくある誤解
&lt;/h2&gt;&lt;h3 id=&#34;kvmを使えば権限管理が不要&#34;&gt;「KVMを使えば権限管理が不要」
&lt;/h3&gt;&lt;p&gt;エラーです。 KVM は主にコンピューティング環境を分離します。マウント、ネットワーク、資格情報、およびビジネス API のアクセス許可は、引き続き構成によって決まります。最も危険な組み合わせは、多くの場合、強く分離された VM と過剰に承認された運用トークンとの組み合わせです。&lt;/p&gt;
&lt;h3 id=&#34;同時実行性が高くなるほどコストは低くなります&#34;&gt;「同時実行性が高くなるほど、コストは低くなります」
&lt;/h3&gt;&lt;p&gt;必ずしもそうとは限りません。同時実行性が高いと、LLM API、データベース、帯域幅、イメージ プル、およびログ システムへの負荷が増大します。最初にクォータ、キュー、バックオフ戦略を設定し、実際のユーザー タスクで試行錯誤するのではなく、段階的にストレス テストを実行します。&lt;/p&gt;
&lt;h3 id=&#34;自動停止後は費用はかかりません&#34;&gt;「自動停止後は費用はかかりません」
&lt;/h3&gt;&lt;p&gt;一時停止した環境でも、スナップショット、永続ボリューム、ログ、およびコントロール プレーンのリソースが消費される可能性があります。有効期限のクリーンアップ ルールを設定し、回復頻度の統計を使用して、短期キャッシュが永続的にアイドル状態の資産になるのを避ける必要があります。&lt;/p&gt;
&lt;h2 id=&#34;概要&#34;&gt;概要
&lt;/h2&gt;&lt;p&gt;CubeSandbox は、信頼できないコード、ツール呼び出し、または同時実行性の高いエージェントを実行する必要がある実行環境に適しています。その価値は、コンピューティング、ファイル、ネットワーク、資格情報を階層的に分離し、一時停止、テンプレート、スナップショット、クローンを使用して起動コストとリソース コストを制御できることにあります。本当に安全な構成とは、「サンドボックスを開く」ことではなく、タスクの種類ごとに最小限の権限、監視可能な実行、明確な承認、およびリサイクル可能なライフサイクルを設定することです。&lt;/p&gt;
&lt;p&gt;公式倉庫: &lt;a class=&#34;link&#34; href=&#34;https://github.com/TencentCloud/CubeSandbox&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/TencentCloud/CubeSandbox&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
