はじめに
何を試したのか
何も設定していない環境で、AIエージェントが .env などの機密ファイルを読み書きする挙動を確認しました。また、それを防ぐための最低限の設定を試しました。
誰向けの記事か
Claude CodeやClineなどのツールを、ひとまずデフォルト設定のまま使っている方
結論
何も設定を変えていない場合、AIエージェントは指示次第で普通に .env を読み、必要であれば書き換えます。
対策として、公式ドキュメント(Sandboxing)に沿った環境の隔離や、ルールファイル(AGENTS.md など)による最低限のアクセス制限があります。
背景
ローカル環境で動くAIエージェントは非常に便利です。しかし、周囲で「何も設定を変えずに、そのまま本番環境に近いローカルリポジトリで動かしている」という話を聞き、少し怖くなりました。
AIエージェントに「.env の中身を教えて」と伝えると、以下のように普通に中身を読み取ってしまいます。
| Codex | ClaudeCode |
|---|---|
![]() |
![]() |
上書きリスクもありますし、普通にセキュリティリスクです。
手順・内容
1. 公式が推奨するサンドボックス環境(隔離環境)を知る
Claude Codeの公式ドキュメント(Sandboxing)では、ツールを安全に動かすためのアプローチが紹介されています。
2. 最低限の対策:ルールファイル(Markdown)で縛る
「環境を構築する時間がすぐには取れない」という場合でも、最低限の対策は可能です。プロジェクトのルートディレクトリに、AI向けのルールファイル(AGENTS.md など)を作成します。
以下は、シンプルな設定例です。
# AIへの指示
## 禁止事項
- `.env` や `.env.local` などの環境変数ファイルは、いかなる理由があっても読み込まないでください。
- これらのファイルを変更、削除、または外部へ送信する行為も禁止します。
やっていることは非常にシンプルですが、これだけでもAIが一度踏みとどまるようになります。
注意点
ルールファイルは万能ではない
Markdownファイルによる指示は、地味ですが一定の効果があります。しかし、AIのいわゆる「脱獄(Jailbreak)」や、指示の解釈ミスによって、ルールを無視してファイルを読んでしまう可能性はゼロではありません。
「ルールファイルを書いたから絶対に安全」とは言い切れない点には注意が必要です。
本当に機密情報を守る必要がある場合は、やはり公式ドキュメントにあるような、Dockerなどを用いた物理的なサンドボックス環境への隔離が必要だと感じました。
おわりに
セキュリティに注意して、安全なAI開発ライフを!

