GeminiCLIからパソコンを守るために行なっていること






GeminiCLIのセキュリティ対策について私が実際に行っている方法を紹介します。


はじめに


みなさんAIエージェントは使っていますか?


私は普段GeminiCLIを使っています。

無料で使うことができ拡張性も十分にあるのでその性能には満足しています。

GeminiCLIについては以下の記事で解説しています。

GeminiCLIガイド 高性能で無料のAIエージェントGeminiCLIを使いこなそう


しかし非常に強力な反面、なんでもできてしまうがゆえにセキュリティが心配なところがありますよね?


具体的には以下のようなリスクがあります。

  • ファイルや環境変数から機密情報の漏洩
  • システムやファイルの破壊的変更
  • CPUやメモリなどリソースの浪費


こういったリスクを最小限にするために私が実際に行っていることを紹介します。


サンドボックスモードの利用


GeminiCLIの実行の際に以下のように--sandbox」というオプションをつけるとサンドボックスモードで起動することができます。


     gemini --sandbox
   

--sandboxを短縮して「-s」でも問題ありません。


サンドボックスモードでは以下のものが制限されます。

  • ファイルアクセス
  • ネットワーク通信
  • プロセス実行
  • リソース(CPUやメモリなど)

OSがGeminiCLIを隔離した環境で実行させるため安全に利用することが可能になります。

システムの破壊的変更やリソースの浪費を抑制できます。

特にデメリットはないので実行するだけ得になります。


特定のディレクトリでのみ実行


基本的にGeminiCLIは現在のディレクトリの直下にしかアクセスすることができません。


そのためGeminiCLIを実行する専用のディレクトリを作り実行するだけで破壊的変更を一定量抑制することが可能になります。


常に特定ディレクトリのみで実行することを意識しましょう。


.geminiignoreの利用


GeminiCLIの実行ディレクトリに.geminiignoreというファイルを作ることで、特定のファイルを読み込ませないことが可能です。

.geminiignoreの記述形式は.gitignoreと同じです。

またGeminiCLIは.gitignoreに書かれているファイルも無視します。

なので既にgitignoreが存在するという場合はわざわざ新しくファイルを作る必要がありません。


上記の.geminiignoreを利用する方式だと特定のプロジェクトでのみの設定となります。


全てのプロジェクトで無視するファイルを指定したい場合以下の手順に従ってください

手順1 設定ファイルの編集

ホームディレクトリ直下の.geminiディレクトリの設定ファイル(~/.gemini/settings.json)に以下の要素を追加してください
{
  "context": {
    "fileFiltering": {
      "customIgnoreFilePaths": ["~/.gemini/global_ignore"]
} } }


手順2 global_ignoreの作成

~/.gemini/global_ignoreファイルにgitignoreと同じ形式で無視するファイルを書き込んでください。

これで指定のファイルを読み込ませない機能が有効になるはずです。

ちなみに私の環境では以下のファイルを読み込ませないようにしています。

ぜひ参考にしてください。


# --- セキュリティ: パスワードなどは絶対に読み取らせない ---
.env*                # 環境変数ファイル(.env, .env.local等)
*.pem                # 秘密鍵・証明書
id_rsa*              # SSH鍵

# --- システム・Git内部情報 ---
.git/                # Gitの管理データ(コミット履歴など)
.DS_Store            # macOSのシステムファイル
.vscode/             # エディタ設定

# --- バイナリ・画像(そもそも中身を読めないもの) ---
*.png
*.jpg
*.jpeg
*.gif
*.pdf
*.exe
*.bin


ファイルのバックアップ


もはや説明不要でしょう。単純にして強力な対策です。

GeminiCLIに触らせるファイルは基本的にバックアップを取ると良いです。


GeminiCLIには、ユーザーの好みを記憶する save_memory という機能があります。

これを使って、「ファイルを編集する際は必ず filename_backup.ext という名前でコピーを作ってから作業して」と覚えさせておくのも一つの手です。

ですがこの指示を100%守る保証があるわけではないので、安全性を重視するなら手動バックアップするべきです。


その他の対策


さらにセキュリティを高めるにはGeminiCLI専用のユーザーをOSにつくり、厳密に権限を管理するといいかもしれません。


私はそこまではしていませんが、dockerを使うのも方法の一つとして思い付きます。


まとめ


いかがでしょうか。

これらの対策は実際に私が実行している方法で、個人的に一定の信頼性があると思っています。

ぜひ参考になれば幸いです。