SSD Nodes Learn 🎉 VPS $5.50/月起
指南 Matt Connor作者: Matt Connor

Claude Code 如何接入 Bedrock 或 Vertex AI?

了解在 Amazon Bedrock 或 Google Vertex AI 上运行 Claude Code 的环境变量、凭据来源、账单归属,以及请求不再经过 Anthropic 后会失去哪些功能。

使用您自己的云账户运行 Claude Code 时有哪些变化

您可以在 Amazon Bedrock 或 Google Vertex AI 上运行 Claude Code。切换过程只需设置两三个环境变量,并使用团队已有的云凭据。本地行为均保持不变:CLI、子代理、钩子、技能、MCP 服务器和 CLAUDE.md 文件都不会变化。只有模型调用会迁移到云端,同时还有以下四项会随之变化:请求经过的网络、支付费用的账户、您获准调用的 Claude 模型,以及服务端实际提供的功能。

问题通常不是能否运行。它可以正常运行。真正需要确定的是,这四项中哪一项对您最重要。

三种路由方式,以及每种方式的成本

使用订阅直接连接 Anthropic。 您使用 Pro、Max、Team 或 Enterprise 计划登录 claude.ai 账户。请求会发送到 Anthropic 的 API。您按席位付费,使用量受计划限额限制,而不是按 token 计费。这是唯一可以访问基于该账户构建的功能入口的路由方式,例如网页版 Claude Code、移动应用、Desktop 和 Remote Control。对于团队,Claude Enterprise 计划还会在此基础上提供单点登录和托管策略设置。

使用 API key 直接连接 Anthropic。 您在 Anthropic Console 中创建密钥,并按 token 付费。基础设施和区域与订阅方式相同,但不按席位收费,使用量会显示在 Anthropic 自己的控制面板中。两种方式哪一种更便宜,取决于代理每天实际运行多少小时。这正是API 与订阅成本对比以及Claude Code 的实际成本所讨论的主题。

使用 Bedrock 或 Vertex 上的第三方端点。 您自己的 AWS 或 Google Cloud 账户负责提供模型服务。推理时,请求不会经过 Anthropic。token 会计入您已经收到的云账单,并受您现有的 IAM(身份和访问管理)策略及审计日志管理。另有两个第三方选项:Microsoft Foundry 和 AWS 上的 Claude Platform。它们采用相同的模式:通过一个环境变量选择提供商,由云账户承担费用。

名称说明,截至 2026 年 8 月:Google 已将 Vertex AI 更名为 Google Cloud 的 Agent Platform。Anthropic 的文档使用新名称,Claude Code 的登录提示仍显示 Google Vertex AI,环境变量仍使用 VERTEX

数据驻留才是团队这样做的真正原因

在 Bedrock 上,请求会发送到您所选 AWS 区域中的 Bedrock 端点,并且位于您自己的账户内。静态数据使用 AES-256 和 AWS 托管密钥加密;您也可以通过 AWS KMS(密钥管理服务)提供自己的密钥。在 Vertex 上,对应机制是 Google 托管的加密密钥,同时支持 CMEK(客户托管加密密钥)。访问权限由您现有的 IAM 角色控制,调用会像其他 API 调用一样记录在 CloudTrail 或 Cloud Audit Logs 中。对于受监管团队而言,这就是全部理由,而且理由充分。

不过,有两个细节使实际情况不像营销宣传的那样绝对。

跨区域推理配置文件并不对应单个区域。 在 Bedrock 上,Claude Code 会将内置默认模型解析为跨区域推理配置文件 ID,并根据解析出的区域选择首选前缀:在 us-* 区域中使用 us.,在 eu-* 区域中使用 eu.,在 ap-* 区域中使用 apac.,在 GovCloud 中使用 us-gov.。跨区域配置文件可以从同一地理范围内的其他区域处理请求,因此它提供的是地理范围保证,而不是单个城市的保证。如果您的要求指定了单个区域,请通过您控制的应用程序推理配置文件进行路由,并将 ANTHROPIC_MODEL 设置为其 ARN。

部分流量仍会到达 Anthropic,但其中不包含您的代码。 在 Bedrock 和 Vertex 上,遥测、错误报告以及 /feedback 命令默认均处于关闭状态;/feedback 会在您自己的计算机上的 ~/.claude/feedback-bundles/ 下写入存档,而不会上传任何内容。每个提供商都会运行两个例外流程。在获取 URL 之前,WebFetch 工具会将主机名(仅主机名)发送到 api.anthropic.com,以检查安全阻止列表。会话质量调查也仍会显示。您可以在设置文件中使用 skipWebFetchPreflight 关闭前一项,使用 CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1 关闭后一项;也可以使用 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 一次性关闭所有非必要流量。

关于训练:根据商业条款,Anthropic 不会使用通过 Claude Code 发送的代码或提示训练模型,第三方平台的使用也属于商业使用。Development Partner Program 是允许训练的选择加入计划,但 Bedrock 或 Vertex 用户根本无法使用该计划。这些端点的零数据保留取决于您与 AWS 或 Google 达成的协议。

指定 Claude Code 使用 Amazon Bedrock

在配置任何客户端之前,每个 AWS 账户都必须先完成两项操作。打开 Amazon Bedrock 控制台,从模型目录中选择 Anthropic 模型,然后提交用例表单:提交后会立即授予访问权限。随后附加一个 IAM policy,允许 Claude Code 发起所需的调用。

  • bedrock:InvokeModel
  • bedrock:InvokeModelWithResponseStream
  • bedrock:ListInferenceProfiles
  • bedrock:GetInferenceProfile

ListInferenceProfiles用于让 Claude Code 在启动时检查账户实际可以调用哪些模型。GetInferenceProfile用于将应用推理配置文件 ARN 解析为其对应的基础模型,以便选择正确的请求格式。缺少该权限时,请求仍会成功,因为 Claude Code 会使用另一种格式重试一次。表现为每个新模型多产生一次往返请求,而不是报错。

最快的客户端配置方式是使用向导。运行 claude,选择 3rd-party platform,然后选择 Amazon Bedrock;也可以在已登录的会话中输入 /setup-bedrock。该向导会读取 ~/.aws 目录中的配置文件,验证您可以调用哪些模型,并将结果写入 ~/.claude/settings.jsonenv 块,因此不依赖 shell profile。

如需通过脚本部署,请自行设置变量。

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1

凭据来自标准 AWS SDK 凭据链。因此,任何已经可用于 aws CLI 的方式都可在这里使用,包括 aws configure、SSO profile、assumed role 或 Bedrock API key。

aws sso login --profile=your-profile-name
export AWS_PROFILE=your-profile-name
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key

Bearer token 是最简单的选项,但需要谨慎处理,因为它是保存在环境变量中的长期有效密钥。在共享构建服务器上,优先使用会过期的 role。相同原则也适用于 agent 可以读取的其他凭据,详见避免让 AI agent 接触密钥

区域陷阱。 Claude Code 按以下顺序解析区域:AWS_REGIONAWS_DEFAULT_REGION、当前 AWS profile 中的 region,最后是 us-east-1。最后一步使用的是默认值,并不表示发生错误。因此,如果团队未在任何位置设置区域,却以为请求会通过欧洲区域路由,请求就会在没有任何提示的情况下发送到美国区域。运行 /status 可在 Claude Code 中查看解析出的区域及其来源。要确认账户在某个区域可以调用哪些内容,请运行 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,它包含模型调用和令牌计数都需要的 aiplatform.endpoints.predict 权限。

然后选择提供商。

export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=global
export ANTHROPIC_VERTEX_PROJECT_ID=YOUR-PROJECT-ID

CLOUD_ML_REGION 接受 globaleuus 等多区域位置,也接受单个区域。全局端点可提供最佳可用性,但对请求实际由何处处理的控制最少。因此,有数据驻留要求时,通常应明确指定位置。三种形式支持的模型范围不同。如果全局端点缺少所需模型中的某个模型,只需通过该模型的 VERTEX_REGION_CLAUDE_* 变量将其固定到某个位置,其他模型继续使用全局端点。请查看当前的 Vertex AI 位置 页面,不要依赖已经过时的列表。

项目陷阱。 ANTHROPIC_VERTEX_PROJECT_ID 是项目 ID 的最低优先级来源。GCLOUD_PROJECTGOOGLE_CLOUD_PROJECT 以及 GOOGLE_APPLICATION_CREDENTIALS 指定的凭据文件都会优先于它。在已导出其中某个变量的机器上,费用会计入另一个项目,而且会话中不会显示这一点。

每次更改提供商后都要验证。运行 /statusAPI provider 行会显示 Google Vertex AIGCP projectDefault regionModel 行会显示 Claude Code 实际解析出的值。如果缺少提供商行,说明这些变量没有传递给进程,因为它们是在启动 claude 的 shell 之外的另一个 shell 中导出的。将它们移入设置文件的 env 块中。这样也可以避免像 AWS_PROFILE 这样的值影响你启动的其他进程。

可用哪些模型,以及它们何时上线

sonnetopus 这类别名不代表最新模型。在第三方端点上,它们会解析为 Claude Code 针对该提供商内置的默认模型。该模型可能落后于当前版本,也可能根本未在您的账户中启用。默认模型不可用时,Claude Code 会在本次会话中回退到更早版本或更低级别的模型,并显示提示。回退结果不会保存,因此下次会话会再次尝试,并再次显示提示。

如果要在团队范围内逐步发布,请固定模型版本。

# 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>'

模型概览和您的提供商目录中获取模型 ID,因为不同提供商的格式不同:Bedrock 要求推理配置文件 ID 或 ARN,Vertex 要求使用纯模型名称。不要从文章中复制这些 ID,包括本文。固定模型版本也有助于控制成本,因为默认主模型属于 Opus 级别,其每个 token 的费用高于 Sonnet。因此,不固定模型的部署会按更高费率计费。若要将某个模型固定为会话默认模型,请将 ANTHROPIC_MODEL 设置为其完整 ID。

模型上线时间是这项比较中最明显的差异。在 Anthropic 自有 API 上,模型发布当天即可使用。在 Bedrock 和 Vertex 上,只有云提供商已在您的区域启用该模型,并且您的账户已获授权访问后,才能使用。最早也要晚几天,有时会更久。如果有些工作必须使用最新模型,请保留一条能够访问该模型的路由。这正是将不同模型路由到不同任务的实际用途。

在 Bedrock 和 Vertex 上放弃的功能

所有本地功能在每个提供商上都可用:子代理、钩子、斜杠命令、技能、插件、检查点、沙箱、托管设置文件和 OpenTelemetry 指标。缺失项全部位于服务器端。

以下功能在两个端点上都不可用:快速模式、Advisor、Channels、跨会话消息、分析面板和服务器托管的设置。所有需要 claude.ai 账户的功能也不可用,包括 Web 版 Claude Code、移动应用、Desktop、Remote Control、例程和 artifacts。

仅 Bedrock 不可用:那里不存在 WebSearch 工具,因此 Claude 无法从路由到 Bedrock 的会话中执行搜索。如果您提供 URL,它仍可使用 WebFetch 读取页面。在 Vertex 上,Web 搜索可用,但仅适用于 Claude 4 及更高版本的生成模型。

两个端点均为部分可用:自动模式只能运行于一组受限的新型号上,而 /loop 需要显式指定间隔,因为它无法自行选择间隔。在向团队承诺某项功能前,请查看 Anthropic 的功能可用性页面,因为此列表会变动。

费用由谁承担

订阅和第三方端点是两项独立购买。二者不能相互替代。

这一点必须明确说明,因为这种误用不会立即显现。在同时登录了 Max seat 的机器上设置 CLAUDE_CODE_USE_BEDROCK=1 后,每个 token 都会按照 Bedrock 的费率由 AWS 计费。该 seat 仍会按月收费,但不承担这部分流量的费用。两者也没有统一的费用视图:支出会显示在 AWS Cost Explorer 或 Google Cloud Billing 中,而 Anthropic analytics dashboard 在这两个提供商上都不可用。/logout 命令也会消失,因为不存在需要结束的 Anthropic 会话。此时使用的是云凭据。

费率位于提供商自己的页面上,并且会发生变化。因此,请查看 Amazon Bedrock 定价Vertex AI 定价,不要参考文章中的任何数字。有一点不会改变:在这些端点上,您购买的是按 token 计费的推理服务。因此,代理全天运行的费用取决于实际使用量,不存在可限制费用的套餐上限。

各路由的速率限制和配额机制不同

在订阅中,限制归属于账户,按固定计划重置,达到限制后需要等待。使用限制的工作方式对此有详细说明。

对于 Anthropic API 密钥,限制归属于组织,按每分钟请求数和令牌数计算,并会随使用层级提高。

对于 Bedrock 和 Vertex,限制属于云配额,按账户或项目、模型和区域分别设置,与任何 Anthropic 计划无关。出现 429 表示该账户在该区域调用该模型时已达到配额,因此应在提供商的控制台中处理:申请提高配额,或切换到仍有余量的区域。Bedrock 按 令牌消耗规则 扣减配额,而不是按固定请求数计算;预留容量则以预配置吞吐量的形式购买。在 Vertex 中,429 通常表示单区域端点无法同时提供主模型和小型快速模型,因此 CLOUD_ML_REGION=global 是文档建议的起始方案。Google 的配额页面介绍了配额提升申请流程。

故障模式及对应的错误信息

Could not load the default credentials,在 Vertex 上。 Application Default Credentials 缺失或已过期。运行 gcloud auth application-default login,或将 GOOGLE_APPLICATION_CREDENTIALS 指向服务账号密钥文件。

Vertex 返回命名模型的 404 错误。 该模型未在此项目的 Model Garden 中启用,或者所在位置不提供该模型。某些模型仅通过全局端点或类似 eu 的多区域位置提供,不能在特定区域使用。

on-demand throughput isn't supported,在 Bedrock 上。 您为只能通过推理配置文件提供的模型传入了基础模型 ID。请改用推理配置文件 ID。

AWS default-chain credential resolve timed out AWS 凭证链中的某个步骤卡住了,最常见的原因是 credential_process 辅助程序等待永远不会收到的输入。凭证链的每次解析都会在 60 秒后超时。如果凭证链确实需要更长时间,例如包装器后运行的带 MFA(多因素身份验证)浏览器 SSO 流程,请通过 CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS 以毫秒为单位提高限制。

启动 Bedrock streaming response has content-type 时出错。 Claude Code 与 Bedrock 之间的某个组件正在重写流。Bedrock 使用内容类型为 application/vnd.amazon.eventstream 的二进制事件流格式,因此将其重新输出为服务器发送事件的网关会返回 Claude Code 无法解码的响应体。请修复网关,使其原样透传响应体及其 Content-Type 标头。

AWS SSO 期间浏览器标签页循环打开。 企业 VPN 或检查 TLS 的代理中断了登录流程,Claude Code 将断开的连接识别为身份验证失败,重新运行 awsAuthRefresh 命令,然后无限重复。请从设置文件中删除 awsAuthRefresh,并在启动 Claude Code 前手动运行 aws sso login

选择路由

如果您希望在新模型发布当天即可使用,并获得完整功能集,请选择 Anthropic 直连。如果您希望按 token 计费,而不购买席位,请使用 API key。如果要求推理过程在您已管理的云账户内执行,并且您接受模型发布流程较慢、功能列表较短这一代价,请选择 Bedrock 或 Vertex。建议收藏的设置页面包括 Anthropic 官方的 Amazon BedrockGoogle Vertex AI 页面,以及 AWS 的按区域列出的模型列表。

这三种方式都不会改变 agent 本身的执行位置。无论由哪个端点响应,Claude Code 都是在本地运行的进程,负责读取您的文件并执行您的命令。因此,如果团队希望将其运行在笔记本电脑以外的位置,可以将 coding agent 部署到 VPS,并在那里导出相同的变量。

FAQ

我的 Claude 订阅是否包含在 Bedrock 或 Vertex 上使用 Claude Code 的费用?

不包含。Pro、Max、Team 或 Enterprise 席位与第三方端点是分开购买的,两者互不包含。设置 CLAUDE_CODE_USE_BEDROCK=1CLAUDE_CODE_USE_VERTEX=1 后,每个 token 都会由 AWS 或 Google Cloud 按其费率计量,并计入对应的云账单;席位仍会按月为其覆盖的产品界面计费。费用跟踪也会转移到 AWS Cost Explorer 或 Google Cloud Billing,因为 Anthropic 分析面板在这两个提供商上均不可用。

Claude Code 会将请求发送到 Amazon Bedrock 的哪个区域?

发送到它解析出的区域,/status 会显示该区域。Claude Code 依次检查 AWS_REGIONAWS_DEFAULT_REGION,然后检查当前 AWS 配置文件中的 region;如果这些设置均不存在,则使用 us-east-1。随后,内置默认模型会解析为跨区域推理配置文件,其前缀遵循该区域,例如 us.eu.。跨区域配置文件可以在同一地理区域内的其他区域处理请求。如果必须使用某个指定区域,请使用由您控制的应用程序推理配置文件,并将 ANTHROPIC_MODEL 设置为其 ARN。

为什么我的 Bedrock 或 Vertex 账户中没有最新的 Claude 模型?

因为每个云提供商都有自己的模型启用时间表,而且您的账户还必须获得相应访问权限。在 Vertex 上,您需要在 Model Garden 中申请访问权限,审批可能需要 24 到 48 小时。在此之前,sonnetopus 等别名会解析为 Claude Code 针对该提供商内置的默认模型;如果您的账户无法使用该默认模型,Claude Code 会在本次会话中回退到较早版本或较低级别的模型,并显示提示。请将 ANTHROPIC_DEFAULT_SONNET_MODEL 及其同类配置固定为您已确认启用的模型 ID。

Claude Code 在 Amazon Bedrock 上是否支持网页搜索?

不支持。Bedrock 上无法使用 WebSearch 工具,因此 Claude 无法从路由到 Bedrock 的会话中执行搜索。您仍可提供 URL,让 WebFetch 读取指定页面。在 Google Vertex AI 上,网页搜索可用于 Claude 4 生成模型及更高版本,这是 Vertex 具备优势的少数功能差异之一。

在 Bedrock 或 Vertex 上运行 Claude Code 是否需要 Anthropic 账户?

不需要。身份验证使用您的 AWS 或 Google Cloud 凭据,因此 /logout 在这两个提供商上均不可用。无论使用哪个提供商,仍有一项连接会访问 Anthropic:WebFetch 工具获取 URL 前,会将主机名(仅主机名)发送到 api.anthropic.com,以检查其是否匹配安全阻止列表。在设置文件中设置 skipWebFetchPreflight 可关闭此功能;如果您仍希望限制 Claude 可访问的域名,请同时配置 WebFetch 权限规则。