🔥

Gemini CLI とDocker でつくるSandbox 環境

に公開

概要

仕事でGemini CLIを使う際は、セキュリティのリスクを考慮に入れて、安全な運用を心がけることが大切です。

CLIがシステム内のファイルやネットワークリソースに無制限にアクセスできると、機密情報の漏洩や、誤ったコマンドによる重要なシステムファイルの削除・上書きといったリスクが生じます。

これらのリスクを軽減するために、Gemini CLIにはサンドボックス機能が用意されています。

この記事では、サンドボックス機能の設定を解説します。

前提条件

  • Gemini CLIを既にインストールしている

https://github.com/google-gemini/gemini-cli

サンドボックスとは?

サンドボックス機能は、AIが実行する潜在的に危険な操作(シェルコマンドやファイルの変更など)をホストシステムから隔離し、セキュリティ上のバリアを提供します。

メリット

  • セキュリティ: 偶発的なシステム損傷やデータ損失を防止。
  • 分離性:ファイルシステムへのアクセスをプロジェクトディレクトリに制限します。
  • 一貫性:異なるシステム間で再現可能な環境を確保します。
  • 安全性:信頼できないコードや実験的なコマンドを扱う際のリスクを低減します。

デメリット

  • パフォーマンスのオーバーヘッド: ファイルの入出力やネットワーク通信が多い場合、動作が遅くなる可能性。
  • 設定管理の複雑化: 設定ファイルや環境変数をホストシステムからコンテナへマウントする追加作業が必要。
  • ホストシステムへのアクセス制限: セキュリティのため、コンテナからホストシステムのファイルやリソースへ自由にアクセスできません。
  • イメージサイズの増大: 必要な依存関係がすべてDockerイメージ内に含まれるため、イメージサイズが大きくなります。

サンドボックス環境の構築方法

1. サンドボックス設定の追加

~/.gemini/settings.jsonに、以下の内容を追記します。
この設定により、Gemini CLIのサンドボックス機能がDockerコンテナを使用するようになります。
デフォルトでは、geminicli/ディレクトリ内のDockerfileが使用されます。

2.起動方法

設定後、ターミナルにgemini -sと入力すると、DockerfileがビルドされてGemini CLIが起動します。

起動時にsandbox-0.2.1-0のような表示が出れば、Dockerコンテナを使ってサンドボックス環境が正常に立ち上がっていることを示します。

まとめ

Gemini CLIをDockerコンテナのサンドボックス環境で利用することで、セキュリティリスクを大幅に抑えられます。
実際の開発現場でGemini CLIを使用する際は、この機能を積極的に活用することを検討することをおすすめします。

EMP Tech Blog

Discussion