リモート実行環境サンドボックス
- プラン: Premium、Ultimate
- アドオン: GitLab Duo Core、Pro、またはEnterprise
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
実行環境サンドボックスは、アプリケーションレベルのネットワークとファイルシステムの分離を提供し、権限のないネットワークアクセスとデータ流出からGitLab Duo Agent Platformリモートフローを保護します。これは、正当なフロー操作に必要な接続を維持しながら、データ流出の試み、外部ソースからの悪意のあるコードの読み込み、および不正なデータ収集を防止するように設計されています。
サンドボックスが適用される場合
実行環境サンドボックスは、GitLab Duo Agent PlatformでデフォルトのGitLab Dockerイメージ(リリースv0.0.6以降)を使用する場合にのみ自動的に適用されます。
サンドボックスが有効になるのは次のブロックです:
- カスタムDockerイメージが
agent-config.ymlファイルで指定されていない。 - 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)
許可リストのカスタマイズの進捗状況を追跡するには、このエピックを参照してください。
警告とフォールバックの動作
サンドボックスが利用できない場合、または適用できない場合:
- フローはサンドボックス保護なしで直接実行される
- 警告メッセージが、Runner設定ガイダンスへのリンクとともに、CIジョブログ内に表示される
これにより、サンドボックスを有効にできない場合でもフローが確実に実行され、状況がアラートされます。