gVisor(じゔぃざー)
最終更新:2026/4/28
gVisorは、Googleが開発した、ユーザー空間でLinuxシステムコールをインターセプトして実行するサンドボックス型コンテナランタイムである。
ポイント
gVisorは、コンテナのセキュリティを強化するために設計されており、カーネルの攻撃対象領域を減らすことを目的としている。コンテナ化されたアプリケーションをより安全に実行できる。
概要
gVisorは、コンテナ化されたワークロードのセキュリティを向上させることを目的とした、オープンソースのコンテナランタイムです。従来のコンテナランタイム(Dockerなど)がホストOSのカーネルを介してシステムコールを実行するのに対し、gVisorはユーザー空間でシステムコールを実装することで、攻撃対象領域を大幅に削減します。
アーキテクチャ
gVisorの主要なコンポーネントは以下の通りです。
- ユーザー空間カーネル: Linuxシステムコールを実装し、コンテナからのシステムコール要求を処理します。
- Goランタイム: gVisorはGo言語で記述されており、Goランタイム上で動作します。
- Sentry: コンテナからのシステムコールをインターセプトし、ユーザー空間カーネルにルーティングします。
特徴
- セキュリティの向上: カーネルを介さないシステムコール実行により、コンテナからの攻撃がホストOSに影響を与えるリスクを軽減します。
- 互換性: 既存のコンテナイメージとの互換性が高く、特別な変更なしにgVisorで実行できます。
- パフォーマンス: 従来のコンテナランタイムと比較して、パフォーマンスに若干のオーバーヘッドが生じる場合がありますが、セキュリティの向上とのトレードオフとして受け入れられます。
用途
gVisorは、以下のような用途に適しています。
- 信頼できないコードの実行: 不明なソースからのコンテナイメージを実行する場合。
- 機密データの保護: 機密データを扱うコンテナを保護する場合。
- コンテナのセキュリティ強化: 全体的なコンテナ環境のセキュリティを向上させたい場合。
制限事項
gVisorは、すべてのLinuxシステムコールを完全にサポートしているわけではありません。一部のシステムコールは実装されておらず、または制限されています。そのため、特定のアプリケーションではgVisorで正常に動作しない場合があります。