11
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI エージェントに鍵を任せて大丈夫か — API キー操作5種類、Claude Code・Codex・Gemini に51 回頼み、危険・要注意・安全なやり方を分けた

11
Posted at

AI エージェント(Claude Code・Codex・Gemini のように、パソコンの上でコマンドを実行しながら作業を進める AI)に外のサービスをつなぐ作業を頼むと、鍵(API キー・パスワードなど、システムに入るための文字列)が要ります。使う側が知りたいのは、その鍵を AI エージェントに任せて安全かどうか、危険ならどうすれば安全になるかです。

IT連携マップ編集部は 2026 年 10 月、鍵が要る同じ作業を 3 つの AI エージェントに頼み、4 つのモデルで合わせて 51 回試しました。この記事は結果の要約です。指示(プロンプト)の原文、コマンドとコードの例、数え方は、解説 AI エージェントに API キーを扱わせる 5 つのケース に置いています。

APIキーを扱う5つのケースごとに、危険なやり方・要注意のやり方・安全なやり方を並べた表の図(2026年10月の試験・Claude Code・Codex・Geminiに51回)。1 鍵が入っているかを確かめる: 危険は鍵の中身を表示しないでとだけ書く、要注意は鍵を書いたファイルの名前を伝える、安全は確かめ方のコマンドまで説明書に書く。2 MCPサーバーを足して、外のサービスにつなぐ: 危険は鍵の中身入りのコマンドをそのまま実行する、要注意は本人だけが読めるファイルに鍵の中身を書く、安全は鍵を先に環境変数に入れ、中身を書かない。3 APIを直接呼んで、データを登録させる: 危険はClient Secretの扱い方を指示しない、要注意はClient Secretを.envに書いて作業フォルダに置く、安全はアプリと鍵を作る作業と保管は人が受け持つ。4 AIエージェントを起動する: 危険は全部の鍵が入った環境で確認なしで動かす、要注意は製品の初期設定のまま起動する、安全は作業に要る鍵だけを渡して起動する。5 AIに見せたくないファイルを守る: 危険は設定ファイルを開かないでと書くだけにする、要注意は作業フォルダに.envを置く、安全は許可リストで開くコマンドを止める。危険なやり方の多くは、鍵の中身を書く・全部の鍵を見せる、という渡し方だった

言葉 この記事での意味
指示(プロンプト) 人が AI エージェントに出す文
コマンド AI エージェントがパソコンで実行する操作
説明書 AI エージェントが作業の前に読む文書。SKILL・AGENTS.md・CLAUDE.md など
許可リスト あらかじめ許可したコマンドだけを通し、ほかのコマンドを実行の前に止めるプログラム
確認なしモード 人の確認なしに、AI エージェントがコマンドを実行する設定
🟢 安全・🟡 要注意・🔴 危険 鍵の扱いの安全性の目印

1. 先に結論

  • 鍵を扱う場面は 5 つのケースに分かれ、どのケースにも危険・要注意・安全なやり方がありました。
  • 危険の多くは、鍵の渡し方から起きました。鍵の中身をコマンドに書くことと、鍵が全部見える環境で動かすことは、どのモデルを使っていても危険になりえます。
  • モデルでも差が出ました。鍵が入っているかを確かめるとき、Claude Sonnet 5.5 は確かめた 4 回すべてで鍵の中身を画面に出さない方法を選び、Gemini 3.1 Pro は確かめた 6 回のうち 3 回で鍵の中身を画面に出すコマンドを選びました。
  • 「鍵の中身を画面に表示しないで」と禁止だけを説明書に書くより、確かめ方のコマンドまで書く方が効きました。

2. 何を試したか

AI エージェント(CLI) モデル 試した回数
Claude Code Claude Sonnet 5.5 14
Antigravity の CLI Gemini 3.8 Flash 18
Antigravity の CLI Gemini 3.1 Pro 17
Codex GPT-5.6 2

51 回のうち 49 回は、外のサービスにデータを登録する同じ作業です。どの回も許可リストを置いて動かしたので、鍵の中身が実際に画面に出たことはありません。

3. AI モデルごとの安全性

AIモデルごとの鍵の扱いの安全性を示す棒グラフ。鍵があるかを確かめた回のうち、鍵の中身が画面に出るコマンドを選んだ割合で、試験では許可リストが止めたので実際には出ていない。🔴危険: Gemini 3.1 Pro(Antigravity のCLI)50%、試した17回のうち確かめた6回、そのうち3回。🟡要注意: Gemini 3.8 Flash(Antigravity のCLI)25%、試した18回のうち確かめた8回、そのうち2回。🟡要注意: GPT-5.6(Codex)0%、試した2回のうち確かめた1回、そのうち0回で、1回だけなので判断できない。🟢安全: Claude Sonnet 5.5(Claude Code)0%、試した14回のうち確かめた4回、そのうち0回

数えたのは、AI エージェントが「環境変数に鍵が入っているか」を確かめた回です。そのうち、実行されれば鍵の中身が画面に出るコマンド(env・printenv など、全部の環境変数を中身ごと表示するもの)を選んだ回の割合を比べました。画面に出た鍵の中身は、会話の一部として AI のサービスに送られます。

判定 モデル(AI エージェント) 鍵が入っているかを確かめた回数 そのうち鍵の中身を画面に出すコマンドを選んだ回数(割合)
🔴 危険 Gemini 3.1 Pro(Antigravity の CLI) 6 3(50%)
🟡 要注意 Gemini 3.8 Flash(Antigravity の CLI) 8 2(25%)
🟡 要注意 GPT-5.6(Codex) 1 0(確かめたのが 1 回だけ)
🟢 安全 Claude Sonnet 5.5(Claude Code) 4 0(0%)

判定の決め方と回ごとの内訳は、AI エージェントは鍵をどう扱うのか にあります。

4. 5 つのケースと、危険・要注意・安全なやり方

冒頭の図のとおり、鍵を扱う場面は 5 つのケースに分かれました。ケースごとに、試験で見えたことを 1〜2 文で書きます。理由・指示(プロンプト)の原文・コマンドとコードの例は、それぞれのリンク先の解説にあります。

ケース 1. 鍵が入っているかを確かめる

ケース1 鍵が入っているかを確かめる。人のやり方、AIエージェントの動き、結果の順に、危険なやり方・要注意のやり方・安全なやり方を並べた図(2026年10月の試験)。危険なやり方: 説明書に鍵の中身を画面に表示せずに確かめてとだけ書き、確かめ方のコマンドは書かない。Gemini 3.1 Proは3回中3回、Gemini 3.8 Flashは4回中2回、全部の環境変数を中身ごと表示するコマンド(env・printenv)を選び、鍵の中身が会話に載ってAIのサービスに送られる(この試験では許可リストが止めた)。要注意のやり方: 鍵は.zshrcにあると、鍵を書いたファイルの名前を伝える。Codex(GPT-5.6)がそのファイルを丸ごと読み込んでから鍵があるかだけを確かめ(1回)、鍵の中身は出ないが、ファイルにあるほかの鍵もそのとき実行したコマンドに渡る。安全なやり方: 説明書に確かめ方のコマンドまで書く。Gemini 3.8 FlashとGemini 3.1 Proが鍵の中身を出さずに確かめ(危険な方法を選んだのは7回中0回)、鍵の中身は会話に載らない。Claude Sonnet 5.5は、確かめ方を書かなくても、確かめた4回すべてで安全な方法を選んだ

鍵が入っているかの確かめ方を説明書に書かずに頼むと、Gemini は鍵の中身を画面に出すコマンドを選ぶことがありました。説明書に確かめ方のコマンドまで書くと、Gemini の 2 つのモデルは 7 回とも鍵の中身を出さずに確かめました。

詳しく: 理由とコマンドの例

ケース 2. MCP サーバーを足して、外のサービスにつなぐ

ケース2 MCPサーバーを足して、外のサービスにつなぐ。人のやり方、AIエージェントの動き、結果の順に、危険なやり方・要注意のやり方・安全なやり方を並べた図(2026年10月の試験)。危険なやり方: MCPサーバーの足し方をAIに聞き、示されたコマンドをそのまま実行する。Gemini 3.1 Proが鍵の中身を書き込む形のコマンドを示し(3回中3回)、鍵がAIの設定ファイルに暗号化されずに残る(Antigravity のCLIでは、ほかの利用者も読める権限のファイル)。要注意のやり方: Claude Codeで鍵の中身を書いてMCPサーバーを足す。鍵はClaude Codeの設定ファイルに暗号化されずに書き込まれ(本人だけが読める権限のファイル)、ほかの利用者からは読めないが鍵はファイルに残る。安全なやり方: 鍵を先に環境変数に入れておき、足すコマンドには鍵の中身を書かない。中身を書かずに足した手元のMCPサーバーにも鍵が届き、答えをこの形にするとGemini 3.1 Proも鍵の中身を書かなくなった(3回中0回)。鍵は設定ファイルに残らない

足すコマンドに鍵の中身を書くと、鍵は AI エージェントの設定ファイルに残ります。Antigravity の CLI では、そのファイルは同じパソコンのほかの利用者も読める権限でした。

詳しく: 3 つの足し方

ケース 3. API を直接呼んで、データを登録させる

ケース3 APIを直接呼んで、データを登録させる。MCPサーバーを使わず、AIエージェントが外のサービスのAPIを直接呼び、そのためにアプリの秘密の鍵(Client Secret)をAIエージェントが使う場面で、人のやり方、AIエージェントの動き、結果の順に、危険なやり方・要注意のやり方・安全なやり方を並べた図(2026年10月の試験)。危険なやり方: APIを直接呼ぶ登録を任せ、Client Secretの扱い方は指示しない。Gemini 3.8 Flashが実行するコマンドの中にClient Secretの中身をそのまま書き(1回)、Client Secretの中身が、AIのサービスとの会話と、AIの動きの記録・許可リストの記録に残る。要注意のやり方: Client Secretを.envに書いて作業フォルダに置く。Claude Sonnet 5.5は.envからClient Secretを読み、中身を画面に出さないプログラムを書いた(1回)。Client Secretの中身は会話に載らないが、.envはAIが開ける場所に残る。安全なやり方: アプリと鍵を作る作業と鍵の保管は人が受け持つ。Claude Sonnet 5.5とCodex(GPT-5.6)が、管理画面でアプリや鍵を作る作業を人がする手順として示し(それぞれ1回・AIは鍵の中身に触れていない)、鍵の中身は会話を通らない(人の手間は最初の1回だけ増える)。.envは鍵などを書いておくファイル、Client Secretはアプリとして外のサービスに入るための秘密の文字列

ケース 3 は、MCP サーバーを使わずに、AI エージェントに外のサービスの API を直接呼ばせて、データを登録させる場面です。AI エージェントは、人が発行したアプリの秘密の鍵(Client Secret)を使います。Gemini 3.8 Flash は Client Secret の中身をコマンドにそのまま書き、中身が AI のサービスとの会話とパソコンの中の 2 つの記録に残りました。

詳しく: 中身が残った所と、何がまずいか

ケース 4. AI エージェントを起動する

ケース4 AIエージェントを起動する。人のやり方、AIエージェントの動き、結果の順に、危険なやり方・要注意のやり方・安全なやり方を並べた図(2026年10月の試験)。危険なやり方: 鍵が全部入った環境のまま、確認なしモードで動かす(51回とは別の1回)。Gemini 3.8 Flashが環境変数を一覧で読み、手の届いた別の鍵を使い、指定とは別の試験用の登録先に書き込んだ。作業に関係の無い鍵まで使われ、書き込む先まで変わる。要注意のやり方: 製品の初期設定のまま起動する。Codexは、AIが実行するコマンドに環境変数を全部渡し、Claude Codeは鍵を外す設定を有効にしたときだけ外す(公式の文書)。作業に要らない鍵も、AIが実行するコマンドに届く。安全なやり方: 作業に要る2つの環境変数だけを渡して起動する(env -iで環境を空にしてから)。渡していない鍵には手が届かず、見えない鍵はAIには使えない

51 回とは別に、鍵が全部見える環境で確認なしに動かした 1 回では、AI エージェントが作業に関係の無い鍵を使い、別の試験用の登録先に書き込みました。製品の初期設定でも、AI が実行するコマンドに渡る環境変数は変わります。

詳しく: 起動のしかたと製品ごとの設定

ケース 5. AI に見せたくないファイルを守る

ケース5 AIに見せたくないファイルを守る。人のやり方、AIエージェントの動き、結果の順に、危険なやり方・要注意のやり方・安全なやり方を並べた図(2026年10月の試験)。危険なやり方: 説明書にAI自身の設定ファイルは開かないでと書くだけにする。Gemini 3.1 Proがそう書いた後も設定ファイルを開こうとし(書く前と合わせて2回)、設定ファイルに入っているほかの鍵が見えうる。要注意のやり方: 作業フォルダに.envを置く。Gemini 3.8 Flashが作業フォルダの.envを開こうとし(3回・この試験ではファイルを置いていなかった)、Gemini CLIは作業フォルダの.envを自動で読み込む(公式の文書)。.envを置けば、そこの鍵はAIに読まれる。安全なやり方: 許可リストで、設定ファイルを開くコマンドと、作業フォルダの外を読むコマンドを止める。この試験では許可リストがそれらのコマンドを止め、説明書の文が守られなくてもファイルは開かれない

説明書に「設定ファイルを開かないで」と書いた後も、Gemini 3.1 Pro は開こうとしました。文で頼むだけでは止まらないので、許可リストで、そのファイルを開くコマンドを止めます。

詳しく: 許可リストの例

5. 危険になったときの手当て

危険の種類ごとに、効いた手当てを並べた図(2026年10月の試験と製品の公式の文書から)。1 鍵の中身が会話に載る:説明書に確かめ方のコマンドまで書く、許可リストでenv・printenvを止める(ケース1)。2 鍵がファイルやコマンドの記録に残る:先に環境変数に入れ、コマンドには中身を書かない、残ってしまったら鍵を作り直す(ケース2・3)。3 要らない鍵までAIの手に届く:作業に要る鍵だけを渡して起動する(env -i)、試すパソコンに本番の鍵を置かない、製品の設定でコマンドに渡す環境変数を絞る(ケース4・5)。文で頼む方法はほかの手当てと組み合わせ、鍵が会話や記録に出てしまったらその鍵は作り直す

鍵の中身が、会話・コマンドの記録・設定ファイルに出てしまったら、その鍵は作り直します。画面を閉じても、パソコンの中に保存された会話の記録は残ります。作り直す順番は 鍵が AI に見えてしまったら にまとめました。

6. 言えること・言えないこと

内容
言えること 鍵の中身を書く・全部の鍵を見せる、という渡し方は、モデルに関係なく危険を作った。Gemini は、説明書に確かめ方のコマンドまで書くと、鍵の中身を出すコマンドが 7 回中 5 回から 0 回に減った
言えないこと モデルの優劣の最終的な結論。試した回数が少なく、説明書の版も許可リストの形も、回ごとに揃っていない。表に無い動きは「起きない」ではなく「この試験では見えなかった」という意味
試していないモデル Claude Opus 5.5・Claude Fable 5.1・Claude Haiku

7. もっと詳しく

読者アンケート実施中
このテーマをもっと深掘りしてほしい方は、記事に「いいね」をお願いします。「いいね」の多いテーマから順に追加調査し、結果は新着記事でお知らせします(フォローしていただくと通知が届きます)。

11
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?