如何在 Bedrock 或 Vertex AI 執行 Claude Code
了解在 Amazon Bedrock 或 Google Vertex AI 執行 Claude Code 所需的環境變數、credentials 來源、帳單歸屬,以及會失去哪些功能。
在你自己的 cloud account 上執行 Claude Code 時有哪些變化
你可以在 Amazon Bedrock 或 Google Vertex AI 上執行 Claude Code。切換時只需設定兩或三個環境變數,再搭配團隊已有的 cloud credentials。所有本機功能都維持不變,包括 CLI、subagents、hooks、skills、MCP servers 和 CLAUDE.md 檔案。只有模型呼叫會轉移到雲端,並且會連帶改變以下 4 件事:請求經過的網路、支付費用的 account、你獲准呼叫的 Claude models,以及伺服器端是否提供相關功能。
問題通常不是能否運作。它可以正常運作。真正需要考量的是,你最在意這 4 項中的哪一項。
三種路由,以及各自的代價
直接連線 Anthropic,使用訂閱方案。 使用 Pro、Max、Team 或 Enterprise 方案的 claude.ai 帳戶登入。請求會傳送至 Anthropic 的 API。費用按席位計算,使用量受方案限制,不會按 token 逐一計費。這是唯一能存取帳戶上層功能的路由,例如網頁版 Claude Code、行動應用程式、Desktop 與 Remote Control。對團隊而言,Claude Enterprise 方案會在此基礎上加入單一登入與受管理的政策設定。
直接連線 Anthropic,使用 API key。 在 Anthropic Console 建立 key,並按 token 計費。基礎架構與區域和訂閱方案相同,但不需支付席位費用,使用量會顯示在 Anthropic 自有的 dashboard 中。兩者何者較便宜,取決於 agent 每天實際執行幾小時;這正是API 與訂閱費用比較以及Claude Code 實際成本所探討的主題。
在 Bedrock 或 Vertex 上使用第三方 endpoint。 由你自己的 AWS 或 Google Cloud 帳戶提供模型服務。推論時,Anthropic 不會位於請求路徑中。token 會計入你原本就會收到的帳單,並受你已經使用的 IAM(identity and access management)政策與 audit log 管理。另有 Microsoft Foundry 與 AWS 上的 Claude Platform 兩種第三方選項,運作方式相同:由一個環境變數選取 provider,再由 cloud 帳戶支付費用。
名稱說明,截至 2026 年 8 月:Google 已將 Vertex AI 更名為 Google Cloud's Agent Platform。Anthropic 的文件使用新名稱,但 Claude Code 的登入提示仍顯示 Google Vertex AI,環境變數仍顯示 VERTEX。
資料落地位置才是團隊採用這種做法的真正原因
在 Bedrock 上,請求會傳送至您選定的 AWS 區域中的 Bedrock endpoint,並位於您自己的帳戶內。靜態資料使用 AWS 管理的金鑰,以 AES-256 加密;您也可以透過 AWS KMS(key management service)提供自己的金鑰。在 Vertex 上,對應的機制是 Google 管理的加密金鑰,也可使用 CMEK(customer-managed encryption keys)。存取權限由您現有的 IAM roles 管理,這些呼叫也會像其他 API 呼叫一樣出現在 CloudTrail 或 Cloud Audit Logs 中。對受規範團隊而言,這就是完整的理由,而且理由充分。
有兩項細節使實際情況不如行銷訊息所暗示的那麼絕對。
跨區域 inference profile 並不代表單一區域。 在 Bedrock 上,Claude Code 會將內建預設模型解析為跨區域 inference profile IDs,而偏好的前綴取決於解析出的區域:us. 位於 us-* 區域、eu. 位於 eu-* 區域、apac. 位於 ap-* 區域,而 us-gov. 位於 GovCloud。跨區域 profile 可以在該地理範圍內的其他區域處理請求,因此您取得的保證是地理範圍,而不是單一城市。若需求指定單一區域,請透過您控管的 application inference profile 路由,並將 ANTHROPIC_MODEL 設為其 ARN。
部分流量仍會傳送至 Anthropic,但其中不包含您的程式碼。 在 Bedrock 和 Vertex 上,telemetry、錯誤回報及 /feedback command 預設都是關閉的;/feedback 會在您自己的機器上將 archive 寫入 ~/.claude/feedback-bundles/,而不會上傳任何內容。每個 provider 都會執行兩項例外流程。WebFetch tool 在擷取 URL 前,會將 hostname(僅限 hostname)傳送至 api.anthropic.com,以檢查安全性封鎖清單。Session quality surveys 也仍會顯示。請在設定檔中使用 skipWebFetchPreflight 關閉前者,並使用 CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1 關閉後者;或者使用 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 一次停用所有非必要流量。
關於訓練:依照商業條款,Anthropic 不會使用透過 Claude Code 傳送的程式碼或 prompts 訓練模型,第三方平台的使用也屬於商業用途。Development Partner Program 是允許訓練的選擇加入方案,但完全不提供給 Bedrock 或 Vertex 使用者。這些 endpoint 的零資料保留,取決於您與 AWS 或 Google 簽訂的協議。
將 Claude Code 指向 Amazon Bedrock
在任何用戶端設定生效前,每個 AWS 帳戶都必須先完成兩件事。開啟 Amazon Bedrock 主控台,從模型目錄選取 Anthropic 模型,然後提交使用案例表單:提交後會立即授予存取權。接著附加允許 Claude Code 發出要求的 IAM policy。
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListInferenceProfilesbedrock:GetInferenceProfile
ListInferenceProfiles 可讓 Claude Code 在啟動時確認帳戶實際可呼叫哪些模型。GetInferenceProfile 可將應用程式 inference profile ARN 解析回其背後的 foundation model,讓 Claude Code 選擇正確的要求格式。缺少這項權限時,要求仍會成功,因為 Claude Code 會以另一種格式重試一次。其現象是每個新模型多一次往返,而不是出現錯誤。
最快的用戶端設定方式是使用 wizard。執行 claude,選擇 3rd-party platform,再選擇 Amazon Bedrock;或者在已登入的工作階段中輸入 /setup-bedrock。它會讀取 ~/.aws 目錄中的 profiles,驗證你可呼叫哪些模型,並將結果寫入 ~/.claude/settings.json 的 env 區塊,因此不依賴 shell profile。
若要以 script rollout,請自行設定變數。
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1憑證來自標準 AWS SDK credential chain,因此任何已可供 aws CLI 使用的設定,在此處也都能使用:aws configure、SSO profile、assumed role,或 Bedrock API key。
aws sso login --profile=your-profile-name
export AWS_PROFILE=your-profile-nameexport AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-keybearer token 是最簡單的選項,但也必須謹慎處理,因為它是長期有效、存放在環境變數中的 secret。在共用的 build box 上,優先使用會過期的 role。相同原則也適用於 agent 可讀取的其他所有憑證,相關內容請參閱避免讓 AI agent 取得 secrets。
region 陷阱。 Claude Code 會依序從以下位置解析 region:AWS_REGION、AWS_DEFAULT_REGION、目前 AWS profile 中的 region,最後是 us-east-1。最後一項是預設值,不是錯誤。因此,若團隊未在任何位置設定 region,卻以為會使用歐洲路由,要求就會在沒有任何警告的情況下傳送到 US region。請在 Claude Code 中執行 /status,查看解析出的 region 及其來源。若要確認帳戶在某個 region 中可呼叫哪些項目,請執行 aws bedrock list-inference-profiles --region your-region。
在 Google Vertex AI 上執行 Claude Code
啟用 API 並取得憑證。
gcloud config set project YOUR-PROJECT-ID
gcloud services enable aiplatform.googleapis.com
gcloud auth application-default login在 Model Garden 中申請所需 Claude 模型的存取權。核准不會立即完成,請預留 24 到 48 小時。授予 roles/aiplatform.user,其中包含模型呼叫與 token 計數都會使用的 aiplatform.endpoints.predict 權限。
接著選取 provider。
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=global
export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-IDCLOUD_ML_REGION 接受 global、例如 eu 或 us 的多區域位置,也接受單一區域。global endpoint 的可用性最佳,但對請求實際處理位置的控制最少,因此有資料駐留要求時,通常應改為指定位置。三種形式支援的模型各不相同。若 global endpoint 缺少所需模型,請僅使用該模型的 VERTEX_REGION_CLAUDE_* 變數將其固定到指定位置,其餘設定維持 global。請查閱目前的 Vertex AI locations 頁面,不要依賴會過時的清單。
專案陷阱。 ANTHROPIC_VERTEX_PROJECT_ID 是優先順序最低的專案 ID 來源。GCLOUD_PROJECT、GOOGLE_CLOUD_PROJECT 以及由 GOOGLE_APPLICATION_CREDENTIALS 指定的憑證檔案,優先順序都高於它。在其中一項已經匯出的機器上,費用會計入另一個專案,而工作階段中不會顯示這項差異。
每次變更 provider 後都要驗證。執行 /status:API provider 行會顯示 Google Vertex AI,而 GCP project、Default region 與 Model 行會顯示 Claude Code 實際解析出的設定。若缺少 provider 行,表示變數沒有傳遞給處理程序,原因是它們在啟動 claude 的 shell 以外的 shell 中匯出。請將這些變數移到設定檔的 env 區塊,這也是避免像 AWS_PROFILE 這類值出現在你啟動的其他處理程序中的方式。
取得哪些模型,以及它們會延遲多久推出
sonnet 和 opus 等別名不代表最新版本。在第三方端點上,這些別名會解析為 Claude Code 針對該供應商內建的預設模型。該模型可能落後於目前版本,也可能根本未在您的帳戶中啟用。預設模型無法使用時,Claude Code 會在該工作階段改用較早版本或較低階的模型,並顯示通知。這項 fallback 不會儲存,因此下一個工作階段會再次嘗試,並再次顯示通知。
若要在團隊中推行,請固定模型版本。
# Copy the exact IDs from your provider's own model catalog.
export ANTHROPIC_DEFAULT_OPUS_MODEL='<provider model id>'
export ANTHROPIC_DEFAULT_SONNET_MODEL='<provider model id>'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='<provider model id>'請從 models overview 和您的供應商型錄取得 ID,因為不同供應商的格式不同:Bedrock 需要 inference profile ID 或 ARN,Vertex 需要純模型名稱。不要從文章中複製 ID,包括本文。固定版本也有助於控制成本,因為預設的主要模型是 Opus 類別模型,而 Opus 每個 token 的費用高於 Sonnet。因此,未固定任何模型的部署會以較高費率計費。若要改為將單一模型固定為工作階段的預設模型,請將 ANTHROPIC_MODEL 設為該模型的完整 ID。
在這項比較中,模型推出時間是最明顯的取捨。在 Anthropic 自有 API 上,模型於發布當天即可使用。在 Bedrock 和 Vertex 上,必須等到雲端供應商在您的區域啟用該模型,且您的帳戶獲得存取權後才能使用;最快也要延遲數天,有時甚至更久。若有工作必須使用最新模型,請保留一條能連線到該模型的 routing。這就是將不同模型路由至不同工作的實際用途。
Bedrock 與 Vertex 的取捨
所有本機功能在每個 provider 上都能運作:subagents、hooks、slash commands、skills、plugins、checkpoints、sandboxing、managed settings file 與 OpenTelemetry metrics。差異都在伺服器端。
以下功能在兩個 endpoint 上都無法使用:fast mode、Advisor、Channels、cross-session messaging、analytics dashboard 與 server-managed settings。所有需要 claude.ai 帳號的功能也無法使用,包括 Claude Code on the web、mobile app、Desktop、Remote Control、routines 與 artifacts。
Bedrock 特有的限制:WebSearch tool 不存在,因此 Claude 無法在導向 Bedrock 的工作階段中執行搜尋。提供 URL 時,Claude 仍可使用 WebFetch 讀取網頁。在 Vertex 上,web search 可正常運作,但僅適用於 Claude 4 generation models 與後續版本。
兩者皆屬部分支援:auto mode 只能在一組受限的新模型上執行,而 /loop 必須明確指定 interval,因為它無法自行選擇。向團隊承諾某項功能前,請先查看 Anthropic 的 feature availability 頁面,因為這份清單會變動。
費用由哪一方負擔
訂閱方案與第三方端點是分開購買的,兩者不能互相取代。
這點需要明確說明,因為這個錯誤不會立即顯現。在已登入 Max seat 的機器上設定 CLAUDE_CODE_USE_BEDROCK=1 後,每個 token 都會依 Bedrock 的費率由 AWS 計費。Max seat 仍會按月收費,但不會支付這些網路流量的費用。兩者也沒有合併的檢視畫面:支出會顯示在 AWS Cost Explorer 或 Google Cloud Billing 中,而 Anthropic analytics dashboard 在這兩個供應商上都無法使用。/logout command 也會消失,因為沒有 Anthropic session 可供結束。此時使用的是 cloud credential。
費率列在供應商自己的頁面上,且可能變更,因此請查看 Amazon Bedrock pricing 或 Vertex AI pricing,不要採用文章中的任何數字。有一項架構上的特性不會改變:在這些端點上,您購買的是按 token 計費的推論服務。因此,持續執行一整天的 agent 會依實際使用量產生費用,沒有 plan cap 可限制支出。
每種路由的速率限制與配額都不同
訂閱方案的限制隸屬於帳戶,會依排程重設;達到限制後必須等待。相關行為請參閱 使用量限制的運作方式。
Anthropic API key 的限制隸屬於組織,以每分鐘的請求數與 token 數表示,並會隨使用層級提高。
Bedrock 與 Vertex 的限制屬於雲端配額,依帳戶或專案、模型及區域分別設定,與任何 Anthropic 方案無關。429 表示該帳戶在該區域使用該模型時已達配額,因此應在服務供應商的主控台處理:申請提高配額,或移至仍有可用容量的區域。Bedrock 會依據 token burndown 規則扣除配額,而不是採用固定的請求數;保留容量則以 provisioned throughput 的形式購買。在 Vertex 上,429 通常表示單一區域的 endpoint 無法同時提供主要模型與小型快速模型,因此文件建議從 CLOUD_ML_REGION=global 開始設定。Google 的 配額 頁面說明如何提出提高配額的申請。
失敗情況與畫面中會看到的字串
Could not load the default credentials,在 Vertex 上。 Application Default Credentials 遺失或已過期。執行 gcloud auth application-default login,或將 GOOGLE_APPLICATION_CREDENTIALS 指向 service account key 檔案。
指出模型名稱的 404,在 Vertex 上。 該模型未在該專案的 Model Garden 中啟用,或該模型不提供於你設定的位置。有些模型只能透過 global endpoint 或 eu 等多區域位置提供,無法在特定區域使用。
on-demand throughput isn't supported,在 Bedrock 上。 你為只能透過 inference profile 提供的模型傳入了單獨的 foundation model ID。請改用 inference profile ID。
AWS default-chain credential resolve timed out。 AWS credential chain 中的某個步驟卡住,最常見的原因是 credential_process helper 等待永遠不會收到的輸入。每次解析 chain 都會在 60 秒後逾時。如果 chain 確實需要更長時間,例如 wrapper 後方使用 MFA(多因素驗證)的瀏覽器 SSO 流程,請透過 CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS 以毫秒為單位提高限制。
啟動 Bedrock streaming response has content-type 時發生錯誤。 Claude Code 與 Bedrock 之間的某個元件正在改寫串流。Bedrock 使用內容類型為 application/vnd.amazon.eventstream 的二進位 event-stream 格式傳送串流,因此 gateway 若將其重新輸出為 server-sent events,會回傳 Claude Code 無法解碼的內容。請修正 gateway,讓它原封不動地傳遞 response body 與其 Content-Type 標頭。
AWS SSO 期間瀏覽器分頁持續循環開啟。 公司 VPN 或 TLS 檢查 proxy 中斷登入流程,Claude Code 將損壞的連線判定為驗證失敗,重新執行 awsAuthRefresh command,並無限重複。請從設定檔移除 awsAuthRefresh,再手動執行 aws sso login,然後啟動 Claude Code。
選擇路由
如果您希望在新模型發布當天立即使用,並取得完整功能,請選擇 Anthropic direct。如果您希望依 token 計費,且不想購買 seats,請使用 API key。如果要求 inference 必須在您已治理的 cloud account 內執行,且可接受較慢的模型 pipeline 及較精簡的功能清單,請選擇 Bedrock 或 Vertex。值得加入書籤的設定頁面包括 Anthropic 官方的 Amazon Bedrock 與 Google Vertex AI 頁面,以及 AWS 的 models by region 清單。
這 3 種方式都不會改變 agent 本身的執行位置。無論是哪個 endpoint 回應,Claude Code 都是讀取檔案並執行命令的本機 process。這就是為什麼希望在 laptop 以外的位置執行它的團隊,會將 coding agent 部署在 VPS 上,並在該處匯出相同的變數。
FAQ
我的 Claude 訂閱是否涵蓋在 Bedrock 或 Vertex 上使用 Claude Code 的費用?
不涵蓋。Pro、Max、Team 或 Enterprise 席位與第三方端點是分開購買的,兩者互不涵蓋。設定 CLAUDE_CODE_USE_BEDROCK=1 或 CLAUDE_CODE_USE_VERTEX=1 後,每個 token 都會依 AWS 或 Google Cloud 的費率計費,並記入對應的 cloud 帳單;席位則會繼續按月收費,涵蓋其支援的介面。支出追蹤也會移至 AWS Cost Explorer 或 Google Cloud Billing,因為 Anthropic analytics dashboard 在這兩個供應商上都無法使用。
Claude Code 在 Amazon Bedrock 上會將請求傳送到哪個區域?
傳送到解析出的區域;/status 會顯示該區域。Claude Code 依序檢查 AWS_REGION、AWS_DEFAULT_REGION,以及目前 AWS profile 上的 region。如果這些項目都未設定,則使用 us-east-1。內建預設模型會解析為跨區域 inference profile,其前綴依該區域而定,例如 us. 或 eu.;跨區域 profile 也可能從同一地理範圍內的其他區域處理請求。若必須固定使用某個指定區域,請使用由你管理的 application inference profile,並將 ANTHROPIC_MODEL 設為其 ARN。
為什麼我的 Bedrock 或 Vertex 帳戶中沒有最新的 Claude 模型?
因為各 cloud 供應商會依自己的時程啟用模型,而你的帳戶還必須另外獲得存取權。在 Vertex 上,請於 Model Garden 中申請存取權,核准可能需要 24 到 48 小時。在此之前,sonnet 和 opus 等別名會解析為 Claude Code 針對該供應商內建的預設模型。如果你的帳戶無法使用該預設模型,Claude Code 會在該工作階段改用較早或較低階的模型,並顯示通知。請將 ANTHROPIC_DEFAULT_SONNET_MODEL 及其同類設定固定為你已確認啟用的 ID。
在 Amazon Bedrock 上使用 Claude Code 時,可以使用網頁搜尋嗎?
不可以。Bedrock 不提供 WebSearch 工具,因此 Claude 無法從經由 Bedrock 路由的工作階段執行搜尋。你仍可在提供 URL 後,使用 WebFetch 讀取特定頁面。在 Google Vertex AI 上,網頁搜尋可以運作,但僅適用於 Claude 4 generation models 及更新版本;這是少數由 Vertex 具備優勢的功能差異之一。
在 Bedrock 或 Vertex 上執行 Claude Code 是否需要 Anthropic 帳戶?
不需要。驗證使用的是 AWS 或 Google Cloud 憑證,因此 /logout 在這兩個供應商上都無法使用。無論使用哪個供應商,仍有一項連線會連到 Anthropic:WebFetch 工具在擷取 URL 前,會將主機名稱(僅限主機名稱)傳送至 api.anthropic.com,以便與安全封鎖清單比對。請在設定檔中設定 skipWebFetchPreflight 以停用此功能;如果仍想限制 Claude 可連線的網域,請搭配 WebFetch 權限規則使用。