Claude Codeでどこまでできる?

Claude Codeの使い方や連携を、実際に試してわかりやすく伝えるサイト

Claude CodeをLLM Gateway経由で接続する設定手順

,
CC-083

会社で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_URLANTHROPIC_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-betaanthropic-version の転送が重要です。認証ヘッダーは構成により Authorization または X-Api-Key になります。

「会社でダメと言われた」環境を解消するための準備がこのリストです。インフラチームからURLとトークンを受け取っていれば、あとはWindows側の設定だけで済みます。

最後の「ヘッダー転送」については、インフラチームに「Claude Codeが送信するヘッダー(anthropic-beta、anthropic-version等)がプロバイダーに正しく転送されているか」を確認しておくと安心です。ここが漏れていると「設定は合っているのに繋がらない」という状況に陥ります。

まずはこの設定だけでOK — メインルート

環境変数を2つ設定するだけで、Claude CodeはGateway経由で動くようになります。設定するのは次の2つです。

  • ANTHROPIC_BASE_URL — GatewayのエンドポイントURL
  • ANTHROPIC_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操作する

  1. Windowsの設定アプリを開く(Win + I
  2. 「システム」→「バージョン情報」→「システムの詳細設定」を開く
  3. 「環境変数」ボタンをクリック
  4. ユーザー環境変数の「新規」をクリック
  5. 変数名に ANTHROPIC_BASE_URL、変数値にGatewayのURLを入力してOK
  6. 同様に 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経由で繋がっているか確認します。

  1. 新しいターミナルを開く(設定反映のため必須)
  2. Claude Codeを起動する
  3. 適当なメッセージを送ってみる(例: 「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.jsonapiKeyHelper を設定します。

{
  "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 の有無、httpshttpと書き間違える、ドメイン名の打ち間違いがあります。

2. 認証情報が間違っている

トークンの文字列に余分なスペースや引用符が混入していないか確認します。setxで設定する際、値をダブルクォートで囲む必要がありますが、変数値自体にはクォートは含まれません。

3. 環境変数が反映されていない

setxで設定しても、既存のターミナルには反映されません。新しいターミナルを開き直してください。それでも反映されない場合は、PCの再起動を試してみてください。

Windowsでは「ユーザー環境変数」と「システム環境変数」の2種類があります。setxで設定するのはユーザー環境変数です。もしシステム環境変数側に同じ名前の変数があると、そちらが優先されることがあります。設定アプリの「環境変数」画面で両方を確認してみてください。

4. ヘッダー転送が不足している

Gateway側でClaude Codeが必要とするヘッダー(x-api-keyanthropic-version等)がプロバイダーに転送されていない場合、プロバイダー側で認証エラーになります。これはインフラチームに確認してもらう必要があります。

5. Gateway側の問題

Gateway自体がダウンしている、またはプロバイダー側で障害が起きている可能性もあります。他のチームメンバーが同じGatewayを使えているか確認してみてください。

最後に確認すること

設定が一通り終わったら、次の項目をチェックしておきます。

  • Claude Codeを起動して、メッセージを送り、応答が返ってくることを確認した
  • echo %ANTHROPIC_BASE_URL%echo %ANTHROPIC_AUTH_TOKEN% で正しい値が表示されることを確認した
  • インフラチームに依頼し、Gateway側のログでリクエストが記録されていることを確認してもらった
  • APIキーの有効期限や更新タイミングをインフラチームに確認しておいた

Windowsでの環境変数設定は、一度コツを掴めばそれほど難しくありません。setxで永続化して、新しいターミナルを開く——この流れを押さえておけば、他のツールでも同じ手順が使えます。

Gatewayの先にあるプロバイダー切り替えや、動的APIキーの導入などは、基本設定が動いてからで十分です。まずはこの2つの環境変数で繋がることを確認してから、次のステップに進みます。