リモート実行環境サンドボックス
実行環境サンドボックスは、アプリケーションレベルのネットワークとファイルシステムの分離を実現し、GitLab Duo Agent Platformのリモートフローを不正なネットワークアクセスやデータ流出から保護します。このサンドボックスは、正当なフロー操作に必要な接続を維持しながら、データ流出の試み、外部ソースからの悪意のあるコードの読み込み、不正なデータ収集を防止するように設計されています。
サンドボックスが適用される条件
実行環境サンドボックスは、GitLab Duo Agent PlatformでデフォルトのGitLab Dockerイメージ(リリースv0.0.6以降)を使用する場合にのみ自動的に適用されます。
サンドボックスは、次の条件を満たす場合に有効になります:
agent-config.ymlファイルでカスタムDockerイメージが指定されていない。- GitLab Duo Agent PlatformのセッションがRunner上で実行されている(ローカル環境はサンドボックス化されません)。
カスタムDockerイメージを指定した場合、サンドボックスは適用されず、フローはRunnerから到達可能な任意のドメインにアクセスできます。
前提条件
実行環境サンドボックスを使用するには、次の条件を満たしている必要があります:
- プロジェクトでGitLab Duo Agent Platformが有効になっていること。
- 特権Runnerモードが有効になっていること。これはサンドボックスを機能させるために必須です。
- バージョン
v0.0.6以降のデフォルトのGitLab Dockerイメージを使用していること(カスタムイメージにはサンドボックスは適用されません)。
仕組み
実行環境サンドボックスは、Anthropic Sandbox Runtime(SRT)を使用してフローの実行をラップし、次の保護を行います:
- ネットワーク分離: 実行環境から外部に送信される前にすべてのネットワークリクエストを傍受し、許可リストに登録されたドメインに対して検証します。
- ファイルシステムの制限: 特定のディレクトリへの読み取りおよび書き込みアクセスを制限し、機密ファイルへのアクセスをブロックします。
- グレースフルフォールバック: SRTが使用できない場合や必要なオペレーティングシステムの権限が不足している場合でも、警告メッセージを表示したうえでフローを直接実行します。
ネットワークおよびファイルシステムの制限
実行環境サンドボックスを適用すると、次の制限が適用されます。
ネットワーク設定
サンドボックスでは、次へのネットワークアクセスが許可されます:
- 許可リストに登録されたドメイン(自動設定)。
- Unixソケットへのアクセス(Dockerソケット)。
- ローカルバインディング。
ファイルシステム設定
サンドボックスでは、次のファイルシステムの制限が適用されます:
- 読み取り制限: SSHキー(
~/.ssh)へのアクセスはブロックされます。 - 書き込み許可: 現在のディレクトリ(
./)および一時ディレクトリ(/tmp/)。 - Git設定へのアクセス: 許可されます。
許可リストに登録されたドメイン
次のドメインのみが、ネットワークアクセスについて自動的に許可リストに登録されます:
host.docker.internallocalhost- GitLabインスタンスのドメイン
- GitLabインスタンスのワイルドカードドメイン(例:
*.gitlab.example.com)
許可リストのカスタマイズに関する進捗状況を追跡するには、このエピックを参照してください。
警告およびフォールバックの動作
サンドボックス化が利用できない、または適用できない場合:
- フローはサンドボックス保護なしで直接実行される
- CIジョブログ内に警告メッセージが表示され、Runner設定ガイダンスへのリンクが提示される
これにより、サンドボックスを有効にできない場合でもフローの実行が継続され、状況が通知されます。