Claude Code や Codex などの AI エージェントに、API キーを使う作業を頼みたいことがあります。そのとき、利用者は鍵をどう渡せばよいのでしょうか。対話文に貼る、.env に書いて読ませる、.zshrc の環境変数にしておく……。渡し方によって、鍵に起きることは違います。
冒頭の図のとおり、利用者の操作で分けると、鍵の渡し方は 6 つです。鍵の文字列が AI の目に触れる所にあるほど、鍵が漏れる道は増えます。いちばん安全なのは、鍵の文字列そのものを AI に渡さない OAuth です。
この記事では、Claude Code・Codex・Gemini CLI・GitHub Copilot・Cursor の 5 つの道具の公式文書から、渡し方ごとに何が起きるか、どう設定すれば鍵を守れるかを答えます。引用した原文は、調査ページ AI エージェントに鍵を渡しても大丈夫か — 6 つの渡し方 に 1 行ずつ載せています。
1. まず、言葉をそろえる
| 言葉 | 意味 |
|---|---|
| 鍵 | システムが「使ってよい相手か」を確かめるための、秘密の文字列。パスワード、API キー、アクセストークンなどがある。この記事では、これらをまとめて「鍵」と呼ぶ |
| API キー | 鍵の一種。プログラムが別のシステムの API を呼ぶときに、自分が誰かを示すために送る文字列。API キーを持っている人は、持ち主と同じ操作ができる |
| AI エージェント | 指示を受けて、自分でファイルを読み、コマンドを動かして作業を進める AI |
| シェル・コマンド | パソコンに文字で命令する画面(シェル)と、そこに打つ命令(コマンド) |
| .env | API キーやパスワードなど、秘密の設定を書いておくファイル |
| 環境変数 | プログラムを動かすときに外から渡す設定の値。利用者は .zshrc などに書いておく |
| MCP | AI に外のサービスや道具をつなぐための決まり |
| OAuth | 固定の鍵の代わりに、期限と範囲を決めて許可を出す仕組み |
2. 対話文に貼ると、どうなるか
対話文に貼った鍵は、AI の会社に送られ、会話の記録として手元にも残ります。Copilot CLI は、初期設定で会話を GitHub のアカウントに同期します。Google は、無料版の Gemini API に機微な情報を送らないよう、利用規約に書いています。利用者は、鍵を対話文に貼らないのがいちばんです。
📎 各道具の原文は AI エージェントに鍵を渡しても大丈夫か の「対話文に貼る」 にあります。
3. .env に書いて読ませると、どうなるか
AI が .env を読めば、.env の中身は会話に入り、鍵を対話文に貼ったのと同じことになります。Gemini CLI は、.env を自動で読み込みます。
AI に読ませないための「除外設定」は、AI の道具に組み込まれた「ファイルを読む」機能には効きます。Claude Code は、cat のようにファイル名を名指しするコマンドも止めます。一方、除外設定は、ファイル名を出さずに読むコマンドや、スクリプトが自分でファイルを開く場合を止めません。
📎 除外設定の書き方と効かないところは AI エージェントに鍵を渡しても大丈夫か の「調査の詳細」 に、道具ごとに並べています。
4. 環境変数にしておくと、どうなるか
利用者が .zshrc などで export した鍵は、AI が表示させない限り、会話には入りません。ただし、AI が動かすコマンドは、初めからその環境変数を受け継ぎます。Codex は、初期設定で環境変数をすべてコマンドに渡します。また、AI が読んだ文章に仕込まれた指示によって、環境変数がまるごと外に送られた実証もあります(Gemini CLI)。
コマンドに渡す変数を絞る設定は、Codex・Copilot CLI・Claude Code にあります。どの道具でも、利用者が自分でその設定を有効にする必要があります。
📎 原文は AI エージェントに鍵を渡しても大丈夫か の「環境変数にしておく」 にあります。
5. MCP の設定に書くときは
MCP の設定ファイルに鍵を直接書くと、設定ファイルが漏れたときに鍵も一緒に漏れます。各社とも、鍵を直接書かず、環境変数で参照するよう勧めています。Astrix Security の調べでは、公開されている MCP サーバーの 53% が期限の長い固定の鍵を使い、OAuth を使うサーバーは 8.5% でした。
MCP サーバーを足す前に確かめることは、MCP サーバーを追加する前に、何を確かめるか にまとめています。
📎 原文は AI エージェントに鍵を渡しても大丈夫か の「MCP の設定に書く」 にあります。
6. いちばん安全なのは、OAuth で許可すること
OAuth で許可する場合、利用者は鍵の文字列を AI に渡しません。利用者は期限と範囲を決めて許可を出すので、許可が漏れたときの被害も小さくなります。5 つの道具とも、外部の MCP サーバーに OAuth でつなげます(GitHub Copilot のクラウドのエージェントは未対応)。
クラウドで動かすエージェントには、鍵をクラウドの鍵置き場に登録する方法もあります。Claude Code と Codex のクラウドでは、AI は本物の鍵を持ちません。
📎 原文は AI エージェントに鍵を渡しても大丈夫か の「OAuth で許可する」 にあります。
7. 道具ごとの、鍵を守る設定
読ませない設定・環境変数を絞る設定・MCP の鍵の書き方・OAuth の 4 つで並べると、どの道具にも「初めは何もしない」所があります。使っている道具の行だけでも、一度確かめてください。各道具の学習利用や料金などは、Claude Code・Codex・GitHub Copilot・Cursor の製品のページにまとめています。
📎 各行の原文は AI エージェントに鍵を渡しても大丈夫か の「調査の詳細」 にあります。
8. 渡すなら、この順で
利用者が最初にすることは、鍵を対話文に貼らないことです。次に、権限を絞った鍵を作ります。除外設定は守りの一つにすぎないので、除外設定だけに頼らないようにします。
鍵の置き場所の考え方は シークレット管理とは、鍵の期限と取り消し方は API トークンはいつ切れ、どう取り消すか にまとめています。鍵がどこから漏れるかは API キーはどこから漏れるのか、漏れた鍵を誰が止めるのかは シークレットスキャンとは にまとめています。
一次出典
| 出典 | 内容 |
|---|---|
| Claude Code Docs: Data usage | 会話が送られる先と、手元の記録 |
| Claude Code Docs: Configure permissions | 読み取りを拒む規則と、効かないところ |
| Claude Code Docs: Cloud environments | クラウドでは AI が本物の鍵を持たない |
| OpenAI Codex Docs: Advanced configuration | コマンドに渡す環境変数の設定 |
| OpenAI Codex Docs: MCP | MCP の鍵と OAuth |
| Gemini CLI Docs: Configuration | .env の自動の読み込み |
| Gemini CLI Docs: MCP servers | 鍵を直接書かない・OAuth |
| Gemini API 追加利用規約 | 無料版に機微な情報を送らない |
| GitHub Docs: Copilot のセッションデータ | 会話を GitHub のアカウントに同期 |
| GitHub Docs: Copilot CLI command reference | 環境変数を伏せる・OAuth |
| Cursor Docs: 無視ファイル | .cursorignore と、端末では止まらないこと |
| Cursor Docs: MCP | 鍵は環境変数で・OAuth |
| Astrix Security: State of MCP Server Security 2025 | MCP サーバーの鍵の受け取り方 |
| Tracebit: Gemini CLI の実証 | 環境変数が外に送られた |
引用した原文と出典は、すべて調査ページで 1 行ずつ公開しています。確かめたい方は AI エージェントに鍵を渡しても大丈夫か — 6 つの渡し方 をご覧ください。
読者アンケート実施中
このテーマをもっと深掘りしてほしい方は、記事に「いいね」をお願いします。「いいね」の多いテーマから順に追加調査し、結果は新着記事でお知らせします(フォローしていただくと通知が届きます)。
【転載OK】本記事の転載について
本記事の文章・図表は、すべて転載 OK です。図は加工しないままお使いください。転載の際は、出典として、この記事の完全版 『AI エージェントに鍵を渡しても大丈夫か』(renkeimap.jp)へのリンクをお願いします。事前の連絡は不要です。
※ 筆者は日立系ITベンダー・介護ソフトベンダー・大学病院IT部門を経て独立し、現在は中小企業のIT・DX支援をしながら、業務システムの「つながり」を一次資料で調べています。 文中の「編集部」は、筆者が所属する IT連携マップ編集部 のことです。誤りを見つけられましたら 訂正窓口(無料・アカウント不要)へお願いします。訂正履歴も公開しています。