会社でClaude Codeを使いたいのに、「直接APIに繋いじゃダメ」と言われたことはありませんか?社内のセキュリティルールによって、LLM Gatewayという中継サーバーを経由しないとClaude Codeが使えないケースがあります。実は多くのAnthropic Messages API互換Gatewayでは、まず環境変数を2つ設定するところから始められます。ただし、BedrockやVertexのpass-through構成などでは追加の環境変数が必要になる場合があります。以降では、その2つの変数をどこにどう書けばいいかを、Windows環境で一通り完了させます。
やること
Claude Codeを組織のLLM Gateway経由で接続するための環境変数設定を、Windows 10/11で完了させます。
前提として、Claude Code自体はすでにインストール済みであることを想定しています。この記事で扱う ANTHROPIC_BASE_URL や ANTHROPIC_AUTH_TOKEN の設定は、基本的にターミナルから使うClaude Code向けです。デスクトップアプリやリモート実行環境では認証方式が異なる場合があるため、この記事では対象外とします。まだインストールしていない場合は、先にそちらを済ませてください。
LLM Gatewayは何をしてくれるのか
LLM Gatewayは、Claude CodeとAPI提供元の間に入る中継サーバーです。直接 api.anthropic.com に繋ぐ代わりに、Gatewayを経由してリクエストを送ります。
Gatewayがやってくれることとしては、ざっくり次の5点です。
- 認証の一元化 — APIキーを各PCにばらまかず、Gateway側で一括管理できる
- ルーティング — リクエストをAnthropic直・Amazon Bedrock・Google Vertex AIなど適切なプロバイダーに振り分ける
- コスト管理 — チームやプロジェクト単位で利用量をトラッキングし、予算超過を防ぐ
- 監査ログ — 誰がいつどのモデルを使ったかの記録を残す
- 利用量トラッキング — トークン消費量を可視化して無駄遣いに気づける
直接API接続との違いは「認証・監査・コスト管理をGatewayが引き受ける」という一点に集約されます。Claude Code自体が対応しているAPI形式は、Anthropic Messages API、Amazon BedrockのInvokeModel、Google Vertex AIのrawPredictの3種類あります。
現場で起きがちな失敗例
APIキーを各PCに直接配って運用していたチームで、離職者のPCからキーが漏洩したケースがあります。全PCのキーを即座にローテーションする事態になり、作業が止まりました。Gateway経由なら認証はサーバー側で一元管理できるため、キーの取り回しリスクは大幅に下がります。
別のケースでは、コスト管理なしで複数人がClaude Codeを使い始めた結果、月末に予算の3倍を消化していたことがありました。Gatewayの利用量トラッキングがあれば、途中でアラートを出せたはずです。
[イメージ図]
Claude Code → LLM Gateway → Anthropic API
→ Amazon Bedrock
→ Google Vertex AI
自分の組織でもGatewayが必要そうだと思ったら、次にやるべき準備を確認します。
事前に必要なもの
設定に入る前に、以下が揃っていることを確認してください。
- Claude Codeインストール済み — CLI版またはデスクトップアプリ版
- GatewayのエンドポイントURL — 組織のインフラチームから提供される(例:
https://gateway.example.com/v1) - 認証情報 — APIキーまたはトークン(これもインフラチームから支給される)
- Windows 10/11環境
- ヘッダー転送の確認 — Gateway側でClaude Codeが必要とするヘッダーが正しく転送される設定になっていること。特にAnthropic Messages API互換のGatewayでは、
anthropic-beta、anthropic-versionの転送が重要です。認証ヘッダーは構成によりAuthorizationまたはX-Api-Keyになります。
「会社でダメと言われた」環境を解消するための準備がこのリストです。インフラチームからURLとトークンを受け取っていれば、あとはWindows側の設定だけで済みます。
最後の「ヘッダー転送」については、インフラチームに「Claude Codeが送信するヘッダー(anthropic-beta、anthropic-version等)がプロバイダーに正しく転送されているか」を確認しておくと安心です。ここが漏れていると「設定は合っているのに繋がらない」という状況に陥ります。
まずはこの設定だけでOK — メインルート
環境変数を2つ設定するだけで、Claude CodeはGateway経由で動くようになります。設定するのは次の2つです。
ANTHROPIC_BASE_URL— GatewayのエンドポイントURLANTHROPIC_AUTH_TOKEN— Gatewayの認証用トークン
設定方法A:コマンドプロンプトで設定する(推奨)
コマンドプロンプトを開き、次のコマンドを実行します。
setx ANTHROPIC_BASE_URL "https://gateway.example.com/v1"
setx ANTHROPIC_AUTH_TOKEN "your-token-here"
setxコマンドはユーザー環境変数に永続的に書き込むため、PCを再起動しても設定が残ります。コマンド実行後に「成功: 指定した値は保存されました。」と表示されればOKです。
1つ注意点として、setxで設定した変数は既に開いているコマンドプロンプトやターミナルには反映されません。設定後にClaude Codeを起動する場合は、新しいターミナルウィンドウを開き直す必要があります。
設定方法B:設定アプリでGUI操作する
- Windowsの設定アプリを開く(
Win + I) - 「システム」→「バージョン情報」→「システムの詳細設定」を開く
- 「環境変数」ボタンをクリック
- ユーザー環境変数の「新規」をクリック
- 変数名に
ANTHROPIC_BASE_URL、変数値にGatewayのURLを入力してOK - 同様に
ANTHROPIC_AUTH_TOKENも追加
こちらも反映には新しいターミナルの起動が必要です。
設定値の具体例:
| 変数名 | 値の例 |
|---|---|
ANTHROPIC_BASE_URL |
https://gateway.example.com/v1 |
ANTHROPIC_AUTH_TOKEN |
sk-ant-gateway-xxxxx |
URLの末尾に /v1 が付くかどうかはGatewayの仕様次第です。インフラチームから指示されたURLをそのまま使いましょう。
設定自体はこれだけです。では実際に繋がるか確かめます。
動作確認 — 正常に繋がったか確かめる
環境変数を設定したら、Claude Codeが正しくGateway経由で繋がっているか確認します。
- 新しいターミナルを開く(設定反映のため必須)
- Claude Codeを起動する
- 適当なメッセージを送ってみる(例: 「Hello」と入力)
Claude Codeが通常通り応答を返せば、Gateway経由の接続は成功です。特にエラーメッセージが出なければ、そのまま使えます。
環境変数が反映されているかは、コマンドプロンプトで次のコマンドを実行して確認します。
echo %ANTHROPIC_BASE_URL%
echo %ANTHROPIC_AUTH_TOKEN%
設定したURLとトークンがそのまま表示されれば反映されています。「%ANTHROPIC_BASE_URL%」のまま変わっていなければ、新しいターミナルを開き直すか、PCを再起動します。
認証方法の選択 — 静的キーと動的キー
ここまでの手順で使ったのは「静的なGateway用トークン」です。ANTHROPIC_AUTH_TOKENに固定の文字列を直接書く方式で、小規模なチームや検証段階ではこれで十分です。なお、ANTHROPIC_API_KEYはAnthropic直API用の変数であり、Gateway経由では使いません。混同しやすいので注意してください。
一方で、次のようなケースでは「動的APIキー」の仕組みが役立ちます。
- APIキーを定期的にローテーションしている
- ユーザーごとに異なる認証情報を使いたい
- セッション単位で短命なトークンを発行している
この場合、外部ツールとの連携と同様に settings.json で apiKeyHelper を設定します。
{
"apiKeyHelper": "python C:/scripts/fetch_token.py"
}
apiKeyHelper には、標準出力にAPIキーを返すコマンドを指定します。Claude Codeは起動時にこのコマンドを実行し、出力された文字列をAPIキーとして使います。一定時間経過後や認証エラー時にも再取得されるため、短命なトークンにも対応できます。apiKeyHelper が設定されている場合、ANTHROPIC_AUTH_TOKEN よりも優先されます。スクリプトの中身は、組織の認証サーバーに問い合わせてトークンを取得するような処理を書くことになります。
静的キーで問題なければ、このセクションは読み飛ばして構いません。
LiteLLM Proxyを使った構成例
組織で複数のプロバイダー(Anthropic直・Bedrock・Vertex)を扱う場合、LiteLLM Proxy Serverを使うと1つのエンドポイントでまとめられます。
LiteLLMは、複数プロバイダーへのリクエストを統合エンドポイントで受け付け、プロバイダー別にルーティングするProxyです。Claude Code側からは ANTHROPIC_BASE_URL をLiteLLMのエンドポイントに向けるだけで、背後のプロバイダーを意識せずに使えます。なお、LiteLLMはAnthropicが監査した製品ではないため、セキュリティ要件が厳しい組織ではインフラチームに確認してから導入してください。
LiteLLM側の設定ファイル(config.yaml)の例:
model_list:
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-20250514
- model_name: claude-sonnet-bedrock
litellm_params:
model: bedrock/anthropic.claude-sonnet-4-20250514-v1:0
Claude Code側の環境変数:
setx ANTHROPIC_BASE_URL "http://localhost:4000"
setx ANTHROPIC_AUTH_TOKEN "your-litellm-key"
LiteLLMがローカルで動いている前提の例です。実際のホストとポートは環境に合わせて変更してください。
インフラチームが別のGateway製品(Portkey、Helicone、Databricks AI Gateway等)を用意している場合は、そちらに合わせて ANTHROPIC_BASE_URL を向けるだけで基本は同じです。
Gateway側でモデル名が違う時の対応
Gateway側でカスタムモデル名を使っている場合、Claude Codeが送るモデル名とGatewayが期待するモデル名がずれることがあります。
その場合は ANTHROPIC_MODEL 環境変数で、Claude Codeがリクエストに含めるモデル名を上書きできます。
setx ANTHROPIC_MODEL "my-custom-claude-sonnet"
この変数を設定すると、Claude Codeはデフォルトのモデル名(claude-sonnet-4-20250514等)ではなく、指定した名前をリクエストに含めます。
Gateway側の設定とClaude Code側の設定の対応関係は次の通りです。
| Claude Code側の変数 | 役割 | 例 |
|---|---|---|
ANTHROPIC_BASE_URL |
接続先URL | https://gateway.example.com/v1 |
ANTHROPIC_AUTH_TOKEN |
認証トークン | sk-ant-gateway-xxxxx |
ANTHROPIC_MODEL |
モデル名の上書き | my-custom-claude-sonnet |
モデル名を特に指定しない場合、Claude Codeは自身のデフォルトモデル名をそのまま送信します。Gateway側で名前のマッピングをしている場合は、インフラチームに「Claude Codeから来るデフォルトのモデル名はこれ」と伝えておくと設定が進めやすいです。
ここまでくれば基本設定は完了ですが、もし繋がらない場合はどうすればいいでしょうか?
トラブルシューティング — 繋がらない時の原因特定
設定したのに接続エラーになる場合、原因の可能性が高い順に確認していきます。
1. URLが間違っている(最も多い)
echo %ANTHROPIC_BASE_URL% で表示されるURLが、インフラチームから提供されたものと一致しているか確認してください。よくあるミスとしては、末尾の /v1 の有無、httpsをhttpと書き間違える、ドメイン名の打ち間違いがあります。
2. 認証情報が間違っている
トークンの文字列に余分なスペースや引用符が混入していないか確認します。setxで設定する際、値をダブルクォートで囲む必要がありますが、変数値自体にはクォートは含まれません。
3. 環境変数が反映されていない
setxで設定しても、既存のターミナルには反映されません。新しいターミナルを開き直してください。それでも反映されない場合は、PCの再起動を試してみてください。
Windowsでは「ユーザー環境変数」と「システム環境変数」の2種類があります。setxで設定するのはユーザー環境変数です。もしシステム環境変数側に同じ名前の変数があると、そちらが優先されることがあります。設定アプリの「環境変数」画面で両方を確認してみてください。
4. ヘッダー転送が不足している
Gateway側でClaude Codeが必要とするヘッダー(x-api-key、anthropic-version等)がプロバイダーに転送されていない場合、プロバイダー側で認証エラーになります。これはインフラチームに確認してもらう必要があります。
5. Gateway側の問題
Gateway自体がダウンしている、またはプロバイダー側で障害が起きている可能性もあります。他のチームメンバーが同じGatewayを使えているか確認してみてください。
最後に確認すること
設定が一通り終わったら、次の項目をチェックしておきます。
- Claude Codeを起動して、メッセージを送り、応答が返ってくることを確認した
echo %ANTHROPIC_BASE_URL%とecho %ANTHROPIC_AUTH_TOKEN%で正しい値が表示されることを確認した- インフラチームに依頼し、Gateway側のログでリクエストが記録されていることを確認してもらった
- APIキーの有効期限や更新タイミングをインフラチームに確認しておいた
Windowsでの環境変数設定は、一度コツを掴めばそれほど難しくありません。setxで永続化して、新しいターミナルを開く——この流れを押さえておけば、他のツールでも同じ手順が使えます。
Gatewayの先にあるプロバイダー切り替えや、動的APIキーの導入などは、基本設定が動いてからで十分です。まずはこの2つの環境変数で繋がることを確認してから、次のステップに進みます。
