こんにちは。Tomoyuki(@tomoyuki65)です。
近年は生成AIが急激に普及し、非エンジニアの方も含めて、様々な方が各種AIツールを利用し始めていると思います。
ただその一方で、“機密情報の漏洩”といったセキュリティ問題も多発しており、AIツールの利用には注意が必要です。
この記事では、そんなAIツールを利用する上で知っておきたいセキュリティ知識についてまとめておきます。
生成AIツールを利用した開発における機密情報の漏洩リスクについて
生成AIの普及により、各種AIツールを利用することで、誰もが簡単にWebサイトなどのプロダクト開発をできるようになりましたが、その一方でセキュリティ知識が乏しい人がツールを利用していることも多く、知らないうちに”機密情報の漏洩”をしてしまっていることも少なくありません。
特に注意が必要なのは以下のような場面です。
・個人情報を含むデータのファイルを入力ファイルとして利用する
・AIツールを起動したディレクトリ内など、AIツールがアクセスできる範囲内に漏洩して困るような機密情報(例えば外部サービスを利用するためのAPIキーなど)が存在する
・AIツールをデフォルト設定で利用し、AIツールからインターネットにアクセスできる状態になっている
これらはセキュリティの知識がなければついついやってしまうようなことだと思いますが、AIツールを普通に使おうとするだけでも情報漏洩につながるリスクが常に伴います。
他にも意図せず情報漏洩につながった実例としては以下のようなものがあります。
・APIキーや秘密情報の貼り付け(クラウド課金・不正アクセス被害)
・個人情報(顧客データ)をそのまま入力(法的リスクや信用失墜)
・社内仕様・未公開プロダクト情報の漏洩(競争優位性の喪失)
・コード補完AIによる”逆流”リスク(他社のコード断片が意図せず混入し、ライセンス違反の問題に発展)
・SaaS型AIツールのログ保存・学習利用(社外に出してはいけない情報が保存される)
ゼロトラストとは?
ゼロトラスト(Zero Trust)とは、「何も信頼しない」という前提に基づいたセキュリティモデルで、社内外を問わずすべてのアクセスを検証するという考え方です。
従来のように「社内ネットワークは安全、外部は危険」といった境界型防御とは異なり、あらゆる通信やユーザーを常に疑い、都度認証・認可を行う点が特徴になっています。
特に「侵入される(漏れる)前提で被害を最小化する」ような設計をしておくことが大事になります。
結局どうすればいい?AIツール開発における機密情報保護とゼロトラスト設計・サンドボックス活用
最近だと「.env」ファイルは使うなとか、AIツールの設定で「.env」ファイルなどを読み込まない設定にしろとか、1Password CLIを使って環境変数の値を渡せとか、色々言われていますが。。。
残念ながら、それらは根本原因の解決になってません
AIツールがアクセスできる範囲内に存在する情報については、特にインターネット通信ができる状態だと「プロンプトインジェクション」といったサイバー攻撃を受ける可能性があり、それによって意図せず情報漏洩する可能性があるからです。
※プロンプトインジェクションの具体例:AIツールがインターネットから情報を取得する際に、開いたWebページ内に見えない指示があり、AIツールがそれを”正しい命令”として実行することによって、意図せず変数や環境変数の値がログに出力され、そこから機密情報が外部に漏れる。
結局どうすればいいのかについて、具体的に取れる対策は以下の通りです。
・サンドボックス内でAIツールを利用し、AIツールが利用できる機能や権限等を制限する(特にインターネット通信は遮断)
・外部サービスのAPIキーを利用するような開発を行いたい場合は、AIツールを使わず、今まで行われてきたように手動でローカル開発する
特に外部サービスを利用するためのAPIキーを「.env」ファイルや環境変数に設定し、SDK(Software Development Kit)やパブリックAPIを利用するようなライブラリを使った開発をしたいような場合は、APIキーに有効期限を付けて使い捨て前提(漏れる前提)で利用したり、AIツールは使わず今まで行っていたように手動でローカル開発する必要があります。
SNSなどで話題になったりしている解決方法(例えば1Password CLIなど)が、実際には根本解決にはなっておらず、『対策を講じていたけど、機密情報を漏洩してしまった。』という結果になりかねないので、その点は注意しましょう。
サンドボックス(sandbox)とは?
サンドボックス(sandbox)というのは、コードの実行やデータ処理を安全に行うために用意された隔離環境のことです。
本来のシステムとは切り離された空間で動作し、万が一問題のある処理が実行された場合でも、外部への影響が及ぶのを防ぐことができます。
この仕組みにより、ユーザーは安心してコードのテストやデータ分析などを行うことができ、開発時の安全性を保つことが可能です。
「.env」ファイルの扱い方について
よく開発で用いられる「.env」ファイルについて、これはアプリケーションで利用する環境変数を管理するための仕組みです。
具体的には本番環境で利用する環境変数名をまとめておき、ローカル開発時には何らかのダミー値(漏洩してもいい値)を設定して使います。
※本番環境では、各種クラウドインフラサービスにあるシークレット管理サービス(例えばGoogle CloudならSecret Manager)で環境変数を設定し、そのシークレット管理サービスを利用してインフラ構築する。
プログラム実行時に使用する「.env」ファイル自体はGitで管理しないようにしますが、本番環境で利用する環境変数名は管理したいため、その場合は環境変数名(およびダミー値)をまとめた「.env.example」ファイルを別途作ってGit管理します。
※ローカル開発する際は、「リポジトリをクローン→”.env.example”を”.env”にリネーム→.envファイルの環境変数値を必要に応じて修正(変更不要ならダミー値のまま使う)→ローカルサーバーの起動」というような感じで利用します。
各種AIツールにおけるサンドボックスの利用方法
Google Gemini CLI
・起動時にオプション「-s」または「–sandbox」を利用する
$ gemini -s
・コードを直接実行する場合の例
$ gemini -s -p "プロンプト"
GitHub Copilot CLI
※2026年3月時点ではサンドボックスにするオプションは無いため、別途Dockerのサンドボックスなどを利用して下さい。
OpenAI Codex CLI
Codex CLIでは、デフォルトでサンドボックスが有効になっています。
Claude Code
・Claude Codeを起動後、以下のコマンドを実行する
/sandbox
実行後、以下の2種類からモードを選択できます。
・通常パーミッション:サンドボックス内でも承認が必要
尚、2026年3月時点では「claude -p “プロンプト”」のようなコマンドで直接実行する際に、サンドボックスを利用するオプションは無いため、この場合は別途Dockerのサンドボックス機能などを利用する必要があります。
AIエディタ「Google Antigravity」
AIエディタ「Google Antigravity」にもサンドボックス機能があります。
利用するにはまず画面右上の歯車アイコンをクリックしてメニューを開き、「Open Antigravity User Settings」をクリックします。

次にSettings画面が開くので、Agentメニューの画面下にある「Enable Terminal Sandbox」をオンにすると有効化します。
※有効化するとネットワークの設定「Sandbox Allow Network」も表示されますが、これもデフォルトでONになってます。

Dockerのサンドボックスを利用する場合について
Dockerでは2026年3月時点で試験的なサンドボックス機能を提供しており、以下のようなコマンドで利用できたりします。
$ docker sandbox run claude
ただし、AIツールの認証のために別途環境変数の設定などが必要になったりするため、詳しくはDocker公式のドキュメント「Docker Sandboxes」ページをご確認下さい。
最後に
今回はAIツールを利用する上で知っておきたいセキュリティ知識についてまとめました。
AIツールは非常に便利ですが、知らないうちに意図せず機密情報の漏洩というセキュリティ問題が起きる可能性があるため、その点は十分注意しながら利用するようにして下さい。


コメント