Claude Codeに外部APIキーを渡す前に|契約中でも課金される仕組みと、事故を防ぐ順番

人の手がロボットの手に鍵を渡し、その奥に金庫と上限を示す計器が置かれているイラスト

結論:APIキーを渡すのは、財布を渡すのに近い

Claude Codeに外部サービスのAPIキーを渡すと、できることが一気に広がります。
画像を作らせる、検索データを取ってくる、会計ソフトに仕訳を入れる。弊社も実際にやっています。

ただし、先に言っておきます。
APIキーは、そのサービスを使うための鍵です。無料の枠があるサービスもありますが、有料の従量課金なら使った分だけ請求が立ちます。そして渡した相手は、疲れも迷いもせず何度でも実行します。人間が「さすがに多いな」と思う場面でも、止まりません。

この記事は、すすめる記事ではありません

初心者の方には、APIキーを渡す運用をおすすめしていません。
便利だからではなく、事故ったときに自分で原因を追えるかどうかで線を引いています。
ここから先は自己責任の領域です。その前提で読んでください。

なぜこの記事を書いたか

弊社はClaudeに画像生成はできない|Claude Codeから画像を作る方法の記事で、「画像生成APIのキーを渡せばよい」と書きました。
書いておいて放り出すのは無責任なので、渡す前に知っておくべきことを、こちらに分けました。

検索で上位に出てくるのは、たいてい「APIキーの取得手順」です。
アカウントを作って、ボタンを押して、コピーする。そこまでは誰でもできます。問題はその後です。

事故1:契約しているのに、別で課金される

これが一番多く、一番気づきにくい事故です。
月額プランに入っているのに、別枠で従量課金の請求が来ます。

原因は認証の優先順位です。Anthropicの公式サポートに明記されています。

公式が説明していること

Claude Codeは、環境変数に設定されたAPIキーを、サブスクリプションの認証より優先します。これは意図的な設計だと説明されています。
そのため月額プランでログインしていても、APIキーが環境変数に残っていれば、従量課金のほうで請求されます。
公式の推奨は明確で、月額プランで使うなら「APIキーの環境変数を設定しないままにしておくこと」とされています。

やっかいなのは、画面上は何も変わらないことです。普通に動きます。
気づくのは請求を見たときで、そのときにはひと月分が積み上がっています。

今の状態を確かめる方法

確認したいことやり方
今どちらで認証されているかClaude Codeの中で /status を実行する
キーが環境変数に残っていないか(Mac・Linux)echo $ANTHROPIC_API_KEY
同(Windowsのコマンドプロンプト)echo %ANTHROPIC_API_KEY%
※未設定のときは %ANTHROPIC_API_KEY% がそのまま表示されます
同(Windows PowerShell)echo $env:ANTHROPIC_API_KEY
いったん解除する(Mac・Linux)unset ANTHROPIC_API_KEY
解除したらClaude Codeを起動し直してください

キーらしき文字列が表示されたら、残っています。
Mac・LinuxとPowerShellは、未設定なら何も出ません。Windowsのコマンドプロンプトだけは、未設定のときに変数名がそのまま出るので、そこで勘違いしないでください。
月額プランで使うつもりなら、設定ファイルから消してください。一度だけ解除しても、ターミナルを開き直すと戻ってきます。

これは他社サービスのキーでも起こります

ここまではClaude自身のキーの話ですが、考え方はどのサービスでも同じです。
画像生成でも検索データでも、「動いている=正しく課金されている」ではありません。
動いたときこそ、どこに請求が立っているかを確認してください。

事故2:上限を決めていないと、止まらない

従量課金のサービスは、初期状態では上限がないか、かなり高い上限になっていることがあります。
人間なら「今日はこのへんでやめよう」と思う場面で、AIは止まりません。残高や利用制限に当たれば止まりますが、そこまでは指示どおり最後までやります。

弊社が必ずやっているのは、この2つです。

やること理由
サービス側の上限を設定する 使いすぎに早く気づける。ただし止まる上限とは限らない(下記)
使う前に「何回まで」を決めておく 上限に当たってから気づくのでは遅い。手前で気づける

順番が大事です。キーを作ったら、使い始める前に上限を設定してください。
「とりあえず動かしてから」で始めると、あとから設定しないまま忘れがちです。

その「上限」は、止まる上限ですか

ここが一番の落とし穴です。上限を設定しても止まらないサービスがあります。
たとえばOpenAIの「予算」は通知のためのしきい値で、超えてもリクエストは通り続けます。設定しただけで守られたつもりになると、かえって危ないです。
設定するときは、「到達したら止まるのか、メールが飛ぶだけなのか」を必ず確認してください。止まらないタイプなら、通知を受け取る宛先を自分にしておくことと、次に書く「回数を決めておく」ほうが効きます。

上限を設定しても「安全になる」わけではありません

上限は金額の話だけです。キーそのものが漏れた場合、被害は請求額にとどまりません。
アカウントを他人に使われる、規約に反する使われ方をする、といった問題は上限では止まりません。金額の備えと、漏らさない備えは別です。

事故3:キーをコードに書いてしまう

一番やってはいけない形が、これです。
プログラムの中にキーの文字列を直接書く。その場では動きますし、一番手っ取り早い方法です。

問題は、そのファイルが後でどこへ行くかです。
バックアップに入る。共有フォルダに置かれる。うっかり公開の場所に上がる。キーは文字列なので、コピーされたら区別がつきません。

弊社が決めていること

社内ルールとして、次の3つを決めています。
APIキーをプログラムの中に直接書かない(必ず環境変数から読む)
キーやパスワードを、バージョン管理に登録しない
ログにキーを出力しない(エラーの記録に混ざるのを防ぐため)
3つ目は見落とされがちです。動作確認のつもりで出力した1行が、そのまま残ります。

自分のコードは、自分では点検できません

弊社は2026年8月に、自社で書いたコードを別のAIに点検させました。
結果、実害のある指摘が2件出ました。そのうち1件がパスワードが見える形で残っていた箇所です。
書いた本人が見直しても、まず気づきません。「気をつける」だけでは防げないので、別の目を1回通すことをおすすめします。

弊社での渡し方

弊社はMacで運用しているので、OS標準の保管庫にキーを預けて、そこから環境変数として読み込む形にしています。

段階やっていること
1キーはOSの保管庫(キーチェーン)に入れる。ファイルとしては置かない
2ターミナルの起動時に、そこから環境変数として読み込む
3プログラムは環境変数だけを見る。キーの文字列はコードのどこにも無い

この形にしておくと、プログラムを人に見せても、共有フォルダに置いても、キーは付いてきません。
それでいて、使うときは何も意識しなくて済みます。手間はほぼ増えません。

Windowsでも考え方は同じです。
キーを直接書かず、OSやツール側の保管の仕組みを経由させる。この一点が守れていれば、形式は問いません。

使った量を、自分で数える仕組みを作る

これは弊社が実際にやっていて、効いていることです。
使うたびに、消費量を記録するファイルに追記させています。

たとえば検索データを取ってくるサービスでは、月に使える量を自分たちで決めています。
決めているのは契約の上限ではなく、「うちのこの用途では、月にここまで」という社内の上限です。そして呼び出す前に必ず記録を確認し、呼び出したら必ず追記する。手前で警告が出る量も決めてあります。

なぜ記録が効くのか

使用量は管理画面でも見られますが、わざわざ見に行かないと分かりません。請求方式もサービスによって違い、前払いの残高方式なら請求書は来ません。
手元に記録があると、見に行かなくても今週の使いすぎがその場で目に入ります。
さらに副産物があって、「前に同じことを調べた」が分かるので、同じ問い合わせを二度投げなくなります。これが一番節約になっています。

権限は最小に。終わったら消す

サービスによっては、キーを作るときに権限の範囲を選べます。
選べるなら、その作業に必要な最小限にしてください。読み取りだけで足りるなら、書き込みを付けない。

そして、意外とやらないのがこれです。
使い終わったキーを消す。試しに作ったキー、一度きりの作業で使ったキー。残しておく理由がないものは削除してください。残っているキーは、いつ漏れてもおかしくありません。

場面やること
検証で作ったキー検証が終わったら削除する
外部の人と作業したとき作業終了後に作り直す(見られた前提で動く)
漏れたかもしれないと思ったとき迷わず削除して作り直す。調べるのは後でよい

初心者にすすめない理由

弊社はAIの導入支援もしていますが、始めたばかりの方にAPIキーを渡す運用はすすめていません。
「危ないから」という漠然とした理由ではなく、はっきりした理由が2つあります。

理由1:異常に気づけない

おかしな動きをしていても、慣れていないと「そういうものかな」と流してしまいます。
止めるべき場面が分からないうちは、止まらない相手に鍵を渡すべきではありません。

理由2:原因を追えない

請求が出たとき、どの作業が原因だったのかを自分でたどれる必要があります。
たどれないと、同じことをまた繰り返します。失敗が学習にならない状態が一番よくありません。

弊社がAI導入で伝えている順番

いきなり全部を任せません。アルバイトの方に仕事を教えるのと同じ順番です。
最初は全部確認する。慣れたら大事なところだけ確認する。完全に読めるようになったら任せる。
APIキーを渡すのは、この一番最後の段階です。権限の上げ方はClaude Codeのauto modeを初心者に使わせない理由に詳しく書きました。

それでも始めるなら、この順番で

条件がそろっているなら、止めはしません。
弊社が新しいサービスのキーを使い始めるときの順番を、そのまま書きます。

やること飛ばすとどうなるか
1先に上限を設定し、止まる上限か確認する通知だけの予算だと止まらない
2権限を最小にしてキーを作る漏れたときの被害が広がる
3OSの保管庫に入れ、環境変数で読むキーがファイルに残り続ける
41回だけ手で動かして、課金の発生場所を確認する二重課金に気づけない
5消費量を記録する仕組みを先に作る見に行かないと使いすぎに気づけない
6そこから自動化を始める

4番目を強くおすすめします。
自動化する前に、1回だけ自分の手で動かしてください。そこで請求がどこに立つかを見ておけば、事故1はまず起きません。

よくある質問

月額プランに入っていれば、APIキーは要らないのですか

Claude Code自体を使うだけなら要りません。むしろ設定しないほうが安全です。
APIキーが要るのは、画像生成などの外部サービスを呼び出すときと、Claude自体をAPIの従量課金で使うときです。
月額プランで使うことと、APIキーで使うことは別の契約だと考えてください。混ざると、この記事の事故1が起きます。

キーが漏れたかもしれません。どうすればいいですか

まず削除して作り直してください。調べるのはその後です。
「たぶん大丈夫」で残しておくのが一番危険です。作り直す手間は数分で、被害は数分では終わりません。

環境変数とファイルに書くのとで、そんなに違いますか

違います。ファイルはコピーされ、共有され、バックアップに入ります。
環境変数は、その端末のその環境にしか存在しません。コードを人に見せても付いてきません。この差は大きいです。

会社で複数人が使う場合はどうしていますか

キーを共有しないでください。人ごとに分けるのが原則です。
分けておけば、使いすぎたときに誰の作業かが分かり、辞めた人の分だけを消せます。共有していると、消すために全員を止めることになります。

まとめ

APIキーを渡すこと自体は、悪いことではありません。
弊社もそれで日々の作業を回しています。問題は、渡し方と、渡した後を見ているかどうかです。

この記事の要点

月額プランに入っていても、キーが残っていると従量課金になる(公式仕様)
・使い始める前に、上限金額を先に設定する
・キーはコードに書かない。保管庫に入れて環境変数で読む
・消費量を自分で記録する。請求書を待たない
・使い終わったキーは消す。漏れたと思ったら即作り直す
慣れていないうちはやらない。ここは自己責任の領域です

弊社はホームページ制作の会社ですが、こうした仕組みを自分たちで組んで運用しています。
実際に詰まったところを、そのまま記事にしています。