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 を開いても同じ項目に直接ジャンプできます。この画面にはuseTerminalやautosaveなど拡張機能全般の設定項目も並んでおり、一覧は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.json の env ブロックに書き込みます。Microsoft Foundryには対話式ウィザードがなく、環境変数を手動で設定する経路だけが用意されています。ウィザードは claude コマンドのログインプロンプトを前提にしているため、初回セットアップは統合ターミナルで行い、書き込まれた ~/.claude/settings.json をGUIパネルと共有する流れが確実です。
claudeIDE拡張はなぜシェルの環境変数を引き継がないか
ここがCLIとGUIパネルで最も挙動が変わるポイントです。ターミナルで export CLAUDE_CODE_USE_BEDROCK=1 のようにシェルへ環境変数を設定すると、そのシェルから起動したCLIには反映されます。ところがVS CodeはOSのアプリケーションランチャーやDockから起動されることが多く、その場合は ~/.zshrc や ~/.bashrc に書いたexport文を一切読み込みません。ターミナルで動くCLIなら効いていた設定が、GUIパネルでは「未設定」のまま扱われるということです。
確実な回避策は、環境変数をシェルではなく ~/.claude/settings.json の env ブロックに書くことです。この設定ファイルはClaude Codeプロセスが起動時に直接読み込むため、VS Codeがどう起動されたかに依存しません。
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "us-east-1"
}
}ターミナルからVS Codeを起動する運用(code .)であれば、シェルの環境変数がVS Code本体のプロセスに引き継がれるため問題は表面化しにくくなります。ただしその場合も、環境変数と settings.json の env に同じキーが両方あるときは settings.json 側の値が優先されるため、シェル側だけ更新して反映されないと悩む前に、両方に同じ値が入っているか確認してください。
チームに配布するときはモデルのバージョンを固定する
個人で使う分には sonnet や opus といったエイリアスのままで困りません。しかし拡張機能を組織で配布する場合、エイリアスはClaude Codeがプロバイダーごとに持つ組み込みの既定値へ解決されるため、ユーザーごとに異なるタイミングで異なるモデルへ切り替わる可能性があります。プロバイダーごとに用意されているモデル指定用の変数を settings.json の env ブロックに明示しておくと、配布したユーザー全員が同じモデルで動くようになります。
| プロバイダー | モデル固定用の変数の例 | 補足 |
|---|---|---|
| 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.json の env ブロックに同じ変数を書き直してください。ウィザードを一度統合ターミナルで実行しておけば、この書き込みは自動で行われます。
環境変数を消したのに古い設定が残る
設定ファイルの env ブロックは値を上書きできますが削除はできません。使わなくなったプロバイダーの変数を無効化したい場合は、値を空文字列に設定します。CLAUDE_CODE_USE_VERTEX を空文字列にすると、Claude Codeはプロバイダー選択の判定において未設定として扱います。ただし空文字列であってもサブプロセスには引き継がれる点には注意してください。
Microsoft Foundryだけ対話式ウィザードがない
Bedrock・Google Cloud's Agent Platformと違い、Microsoft Foundryには /setup-* に相当する対話式フローがありません。CLAUDE_CODE_USE_FOUNDRY と ANTHROPIC_FOUNDRY_RESOURCE(またはベースURL)を手動で settings.json に書く必要があります。
モデルのバージョンが人によって違う
エイリアスのまま配布すると起きる現象です。原因と対処は前節「チームに配布するときはモデルのバージョンを固定する」のとおりです。
よくある質問
disableLoginPromptを有効にすると通常のAnthropicアカウントには戻れませんか
戻れます。この設定はログイン画面の自動表示を止めるだけで、settings.json の環境変数を削除すれば通常のサインインフローに戻ります。
CLIでは繋がるのにVS Code拡張だけ繋がりません
多くの場合、環境変数がシェルにしか設定されておらず、GUI起動のVS Codeまで届いていないことが原因です。~/.claude/settings.json の env ブロックに同じ変数を書けば、起動経路に関係なく反映されます。
3つのプロバイダーを同時に設定できますか
設定ファイル上は複数プロバイダー分の変数を同時に書けますが、Claude Codeは起動時にどれか1つを判定して接続します。切り替えるときは使わない側の変数を空文字列にしておくと、意図しないプロバイダーへの接続を防げます。
JetBrainsプラグインでも同じ設定が使えますか
使えます。~/.claude/settings.json はVS Code拡張・JetBrainsプラグイン・CLIで共有される設定ファイルです。GUI起動でシェル環境変数が届きにくい問題も同じ構造で起きるため、対処法も同じです。
プロバイダーの認証情報はリポジトリに含めても安全ですか
settings.json の env ブロックに直接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とどう違うかにまとめています。
関連する記事
Claude Code をもっと見る →Claude Code(クロードコード)とは — CLI起点のエージェント型開発ツール
Claude Code v2.1.158 — Auto modeがBedrock・Vertex・Foundryに対応
Claude Code Vertex AIセットアップ — /setup-vertexウィザードの手順
Claude Code Bedrockセットアップ — /setup-bedrockウィザードの使い方
「Could not load credentials」の直し方 — Claude Code認証エラー
VS CodeでFable 5を使う方法 — Claude Code拡張でのモデル切り替えと表示されないときの確認