Claude Media
VS Code拡張でサードパーティプロバイダーを使う設定 — Bedrock/Vertex/Foundry

VS Code拡張でサードパーティプロバイダーを使う設定 — Bedrock/Vertex/Foundry

Claude CodeのVS Code拡張をBedrock/Vertex/Foundry経由で使う設定です。環境変数がシェルからGUIパネルに届かない落とし穴も扱います。

はじめに

Claude CodeのVS Code拡張機能は既定でAnthropicのAPIに直接接続します。組織がAmazon Bedrock、Google Cloud's Agent Platform(旧Vertex AI)、Microsoft Foundryのいずれかを経由してClaudeを利用している場合は、拡張機能側にプロバイダー接続を教える設定が必要です。手順自体は「ログインプロンプトを止める」「プロバイダー別の環境変数を設定する」の2ステップですが、VS CodeはGUIアプリとして起動するため、ターミナルで動くCLIとは環境変数の引き継がれ方が違います。この記事は、その差分が原因で起きる「CLIでは繋がるのに拡張機能では繋がらない」状態を避けるための設定手順を扱います。

前提条件

プロバイダーごとに、Claude Code側の設定を始める前に済ませておく準備が異なります。

  • Amazon Bedrock: AWSアカウントとBedrockの利用有効化、対象Claudeモデルへのアクセス許可、IAM権限
  • Google Cloud's Agent Platform: 課金有効なGCPプロジェクト、Agent Platform APIの有効化、Model GardenでのClaudeモデルへのアクセス申請
  • Microsoft Foundry: Azureサブスクリプション、Foundryリソースの作成権限、Claudeモデルのデプロイ

いずれも各プロバイダー側の管理コンソールで行う準備で、Claude Code固有の作業ではありません。準備が済んでいる前提で、ここから先はVS Code拡張機能側の設定に絞ります。

VS Code拡張でプロバイダーを切り替える手順

手順1: ログインプロンプトを無効化する

サードパーティプロバイダーを使う場合、通常のAnthropicアカウントでのサインイン画面は不要です。VS Code設定(Cmd+, / Ctrl+,)でClaude Codeのログイン設定を検索し、Disable Login Promptにチェックを入れます。コマンドパレット代わりに vscode://settings/claudeCode.disableLoginPrompt を開いても同じ項目に直接ジャンプできます。この画面にはuseTerminalautosaveなど拡張機能全般の設定項目も並んでおり、一覧はVS Code拡張機能の設定項目ガイドにまとめています。

手順2: プロバイダー別の環境変数を設定する

チェックを入れただけでは接続先は決まりません。プロバイダーごとに必要な環境変数を設定する必要があります。3プロバイダーの最小構成は次のとおりです。

プロバイダー有効化する変数認証方式
Amazon Bedrock有効化する変数CLAUDE_CODE_USE_BEDROCK=1 + AWS_REGION認証方式AWSプロファイル / Bedrock APIキー / 環境内の既存認証情報
Google Cloud's Agent Platform有効化する変数CLAUDE_CODE_USE_VERTEX=1 + CLOUD_ML_REGION + ANTHROPIC_VERTEX_PROJECT_ID認証方式Application Default Credentials / サービスアカウントキー
Microsoft Foundry有効化する変数CLAUDE_CODE_USE_FOUNDRY=1 + ANTHROPIC_FOUNDRY_RESOURCE(またはBASE_URL)認証方式APIキー / Microsoft Entra ID / ベアラートークン

BedrockとGoogle Cloud's Agent Platformには対話式のセットアップウィザードがあり、claude を実行してログインプロンプトで「3rd-party platform」を選ぶと認証方法を聞かれ、選択結果を自動で ~/.claude/settings.jsonenv ブロックに書き込みます。Microsoft Foundryには対話式ウィザードがなく、環境変数を手動で設定する経路だけが用意されています。ウィザードは claude コマンドのログインプロンプトを前提にしているため、初回セットアップは統合ターミナルで行い、書き込まれた ~/.claude/settings.json をGUIパネルと共有する流れが確実です。

claude

IDE拡張はなぜシェルの環境変数を引き継がないか

ここがCLIとGUIパネルで最も挙動が変わるポイントです。ターミナルで export CLAUDE_CODE_USE_BEDROCK=1 のようにシェルへ環境変数を設定すると、そのシェルから起動したCLIには反映されます。ところがVS CodeはOSのアプリケーションランチャーやDockから起動されることが多く、その場合は ~/.zshrc~/.bashrc に書いたexport文を一切読み込みません。ターミナルで動くCLIなら効いていた設定が、GUIパネルでは「未設定」のまま扱われるということです。

確実な回避策は、環境変数をシェルではなく ~/.claude/settings.jsonenv ブロックに書くことです。この設定ファイルはClaude Codeプロセスが起動時に直接読み込むため、VS Codeがどう起動されたかに依存しません。

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "AWS_REGION": "us-east-1"
  }
}

ターミナルからVS Codeを起動する運用(code .)であれば、シェルの環境変数がVS Code本体のプロセスに引き継がれるため問題は表面化しにくくなります。ただしその場合も、環境変数と settings.jsonenv に同じキーが両方あるときは settings.json 側の値が優先されるため、シェル側だけ更新して反映されないと悩む前に、両方に同じ値が入っているか確認してください。

チームに配布するときはモデルのバージョンを固定する

個人で使う分には sonnetopus といったエイリアスのままで困りません。しかし拡張機能を組織で配布する場合、エイリアスはClaude Codeがプロバイダーごとに持つ組み込みの既定値へ解決されるため、ユーザーごとに異なるタイミングで異なるモデルへ切り替わる可能性があります。プロバイダーごとに用意されているモデル指定用の変数を settings.jsonenv ブロックに明示しておくと、配布したユーザー全員が同じモデルで動くようになります。

プロバイダーモデル固定用の変数の例補足
Amazon Bedrockモデル固定用の変数の例ANTHROPIC_MODEL(推論プロファイルIDまたはARN)補足起動時にモデルの利用可否を確認するチェックがある
Google Cloud's Agent Platformモデル固定用の変数の例ANTHROPIC_DEFAULT_SONNET_MODEL補足リージョンごとの VERTEX_REGION_CLAUDE_* も要確認
Microsoft Foundryモデル固定用の変数の例ANTHROPIC_DEFAULT_SONNET_MODEL 等(Azureのデプロイ名に合わせる)補足起動時チェックが無いため、指定漏れはリクエスト失敗として現れる

Microsoft Foundryだけは起動時のモデル可用性チェックが無いため、デプロイ名と環境変数の値が一致していないと、起動はできてもリクエストが失敗するところまで進んでから問題に気づくことになります。Azure側でデプロイを作成する際に「自動的に最新へ更新」を選ばず、特定のモデルバージョンを固定しておくことも合わせて推奨されています。

設定した接続先はIDE内蔵MCPサーバーとは無関係

ここまでの設定はすべてAPIの接続先を切り替えるためのもので、CLIが自動的に立ち上げる ide という名前のMCPサーバーとは別の仕組みです。プロバイダーをBedrockに切り替えても、diffビューアの表示や @ メンションでの選択範囲の共有といったIDE統合機能自体には影響しません。この内蔵サーバーの認証やトランスポートの設計はIDE内蔵MCPサーバーのセキュリティモデルで扱っています。

つまずきやすいポイント

GUIパネルだけプロバイダーに繋がらない

シェルのexport文はGUI起動のVS Codeには届きません。~/.claude/settings.jsonenv ブロックに同じ変数を書き直してください。ウィザードを一度統合ターミナルで実行しておけば、この書き込みは自動で行われます。

環境変数を消したのに古い設定が残る

設定ファイルの env ブロックは値を上書きできますが削除はできません。使わなくなったプロバイダーの変数を無効化したい場合は、値を空文字列に設定します。CLAUDE_CODE_USE_VERTEX を空文字列にすると、Claude Codeはプロバイダー選択の判定において未設定として扱います。ただし空文字列であってもサブプロセスには引き継がれる点には注意してください。

Microsoft Foundryだけ対話式ウィザードがない

Bedrock・Google Cloud's Agent Platformと違い、Microsoft Foundryには /setup-* に相当する対話式フローがありません。CLAUDE_CODE_USE_FOUNDRYANTHROPIC_FOUNDRY_RESOURCE(またはベースURL)を手動で settings.json に書く必要があります。

モデルのバージョンが人によって違う

エイリアスのまま配布すると起きる現象です。原因と対処は前節「チームに配布するときはモデルのバージョンを固定する」のとおりです。

よくある質問

disableLoginPromptを有効にすると通常のAnthropicアカウントには戻れませんか

戻れます。この設定はログイン画面の自動表示を止めるだけで、settings.json の環境変数を削除すれば通常のサインインフローに戻ります。

CLIでは繋がるのにVS Code拡張だけ繋がりません

多くの場合、環境変数がシェルにしか設定されておらず、GUI起動のVS Codeまで届いていないことが原因です。~/.claude/settings.jsonenv ブロックに同じ変数を書けば、起動経路に関係なく反映されます。

3つのプロバイダーを同時に設定できますか

設定ファイル上は複数プロバイダー分の変数を同時に書けますが、Claude Codeは起動時にどれか1つを判定して接続します。切り替えるときは使わない側の変数を空文字列にしておくと、意図しないプロバイダーへの接続を防げます。

JetBrainsプラグインでも同じ設定が使えますか

使えます。~/.claude/settings.json はVS Code拡張・JetBrainsプラグイン・CLIで共有される設定ファイルです。GUI起動でシェル環境変数が届きにくい問題も同じ構造で起きるため、対処法も同じです。

プロバイダーの認証情報はリポジトリに含めても安全ですか

settings.jsonenv ブロックに直接APIキーやトークンを書き込むと、その設定ファイルを共有した範囲全員に見えてしまいます。個人用の認証情報は共有されない ~/.claude/settings.json に置き、リポジトリに含める .claude/settings.json には認証情報を書かないのが安全な運用です。

まとめ

VS Code拡張機能でサードパーティプロバイダーを使うには、Disable Login Promptを有効にしたうえで、プロバイダー別の環境変数を用意します。最大の落とし穴は、GUI起動のVS Codeがシェルの環境変数を読み込まないことです。BedrockやGoogle Cloud's Agent Platformの対話式ウィザードを統合ターミナルで一度実行し、結果を ~/.claude/settings.json に書き込ませてしまえば、拡張機能とCLIの両方が同じ設定を共有できます。プロバイダーごとの詳細なIAM設定やモデルピン留めの手順は、各プロバイダーの個別ガイドを参照してください。VS Code拡張機能自体の基本操作はClaude Code VS Code拡張機能の使い方、AWS経由の料金体系はAWS BedrockのClaude料金は直接APIとどう違うかにまとめています。

この記事を共有:XはてブLinkedIn