正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

リモート実行環境サンドボックス

  • プラン: 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から到達可能な任意のドメインにアクセスできます。

前提条件

実行環境サンドボックスを使用するには、以下が必要です:

仕組み

実行環境サンドボックスは、Anthropic Sandbox Runtime(SRT)を使用してフローの実行をラップし、次の保護を行います:

  • ネットワーク分離: すべてのネットワークリクエストが実行環境を離れる前に傍受し、許可リストドメインに対して検証する。
  • ファイルシステムの制限: 特定のディレクトリへの読み取りおよび書き込みアクセスを制限し、機密ファイルへのアクセスをブロックします。
  • グレースフルフォールバック: SRTが使用できない場合、または必要なオペレーティングシステムの権限がない場合、フローは警告メッセージとともに直接実行されます。

ネットワークとファイルシステムの制限

実行環境サンドボックスを適用すると、次の制限が適用されます。

ネットワーク構成

サンドボックスは、以下へのネットワークアクセスを許可します:

  • 許可リストドメイン(自動構成)。
  • Unixソケットアクセス(Dockerソケット)。
  • ローカルバインディング。

ファイルシステム構成

サンドボックスは、次のファイルシステムの制限を適用します:

  • 読み取り制限: SSHキー(~/.ssh)はブロックされています。
  • 書き込み許可: 現在のディレクトリ(./)と一時ディレクトリ(/tmp/)。
  • Git構成アクセス: 許可。

許可リストドメイン

次のドメインのみが、ネットワークアクセスに対して自動的に許可リストに登録されます:

  • host.docker.internal
  • localhost
  • GitLabインスタンスドメイン
  • GitLabインスタンスワイルドカードドメイン(例: *.gitlab.example.com

許可リストのカスタマイズの進捗状況を追跡するには、このエピックを参照してください。

警告とフォールバックの動作

サンドボックスが利用できない場合、または適用できない場合:

  • フローはサンドボックス保護なしで直接実行される
  • 警告メッセージが、Runner設定ガイダンスへのリンクとともに、CIジョブログ内に表示される

これにより、サンドボックスを有効にできない場合でもフローが確実に実行され、状況がアラートされます。