Claude Platform on AWS
用 AWS 认证、IAM 访问控制和 AWS Marketplace 计费,让 Claude Code 使用由 Anthropic 运营的 Claude API:前提、SigV4 或工作区 API Key、环境变量、模型固定、验证、代理与排障。
前提
- 通过 AWS Marketplace 的有效 Claude Platform on AWS 订阅
- 你与 AWS 关联的 Anthropic 组织里的一个工作区,以及它的工作区 ID
- 有权调用 Anthropic 服务的 IAM 主体,或限定到该工作区的 API Key
- 想用 SigV4 认证时,环境里、
~/.aws/credentials里或附加的 IAM 角色提供的 AWS 凭据(AWS CLI 只在 SSO 登录流程需要)
设置
1. 配置 AWS 凭据
Claude Code 支持两种认证方式。
选项 A:AWS 凭据 + SigV4:Claude Code 用标准 AWS 凭据链(环境变量、~/.aws/credentials、IAM 角色、AWS SSO 会话等 AWS SDK 支持的来源)对请求做 SigV4 签名。本地使用时先用 AWS CLI 登录:
aws sso login --profile my-profile
export AWS_PROFILE=my-profileCI 和自动化里给运行器一个有权调用 Anthropic 服务的 IAM 角色并设置 AWS_REGION,凭据链会自动拾取。SSO 凭据在会话中途过期时,配置 awsAuthRefresh,让 Claude Code 重新运行你的登录命令并重试而不是失败(在 Claude Platform on AWS 上的自动刷新需要 v2.1.198 或更高版本):
{
"awsAuthRefresh": "aws sso login --profile my-profile"
}Claude Code 在无法验证现有 AWS 凭据时启动也会运行该命令,并在 Authentication 面板里显示命令输出直到登录完成。配置了 awsAuthRefresh 后,运行 /login,选 3rd-party platform,再选 Claude Platform on AWS · refresh credentials,Claude Code 运行配置的命令并重新读取 AWS 凭据而无需重启。
选项 B:工作区 API Key:工作区 API Key 是长期有效的密钥,适合不想管理联合 AWS 凭据时。在 AWS 控制台的 Claude Platform on AWS → API keys 里生成,并设为 ANTHROPIC_AWS_API_KEY:
export ANTHROPIC_AWS_API_KEY=sk-ant-xxxxxKey 作为 x-api-key 发送,优先于 SigV4,所以环境里的任何 AWS 凭据都被忽略;来自独立 Claude Console 组织的 API Key 在这里无效。像对待其他生产凭据那样对待它,用户设置文件的 env 块是把 Key 限定在你机器上、而不全局导出的方便办法。/login 和 /logout 不会让你登录 claude.ai 订阅,认证走你的 AWS 凭据或工作区 API Key。
2. 配置 Claude Code
设置环境变量,让 Claude Code 经 Claude Platform on AWS 而不是默认的 Anthropic API 路由:
export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
export AWS_REGION=us-east-1ANTHROPIC_AWS_WORKSPACE_ID 必填,Claude Code 在每个请求上把它作为 anthropic-workspace-id 头发送,把示例值换成你自己的工作区 ID。Claude Code 根据 AWS 区域计算基础 URL https://aws-external-anthropic.{region}.api.aws(区域的解析优先级与 Amazon Bedrock 相同),要直接覆盖 URL 设置 ANTHROPIC_AWS_BASE_URL。即使环境里有 AWS 凭据,Claude Platform on AWS 也是需要主动选择的;提供商路由里 Amazon Bedrock 和 Microsoft Foundry 优先,所以如果设置了 CLAUDE_CODE_USE_BEDROCK 和 CLAUDE_CODE_USE_FOUNDRY 要取消设置。
3. 固定模型版本
Claude Platform on AWS 使用与直连 Claude API 相同的模型 ID。默认别名(fable、opus、sonnet、haiku)解析为 Claude Code 内置的默认值,可能落后于最新发布。给团队部署时显式固定模型 ID,避免新版本让所有人同时迁移:
export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-8
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5(示例里的模型 ID 取自官方页面,具体可用模型以官方模型总览为准。)提示缓存自动启用;要请求 1 小时缓存 TTL 而不是默认的 5 分钟,设置 ENABLE_PROMPT_CACHING_1H=1,API 对 1 小时缓存写入按更高费率计费。
4. 启动并验证
运行 claude,提供商生效时启动横幅显示 Claude Platform on AWS。运行 /status 检查细节:API provider 一行为 Claude Platform on AWS,并包含你的 Workspace ID、AWS region,设置了覆盖时还有 Claude Platform on AWS base URL。
用 Agent SDK
Agent SDK 读取与 CLI 相同的环境变量,所以任何派生 Claude Code 子进程的程序,只要在调用前导出 CLAUDE_CODE_USE_ANTHROPIC_AWS、ANTHROPIC_AWS_WORKSPACE_ID 以及 ANTHROPIC_AWS_API_KEY 或 AWS 凭据,就能以 Claude Platform on AWS 为目标:
import { query } from "@anthropic-ai/claude-agent-sdk";
process.env.CLAUDE_CODE_USE_ANTHROPIC_AWS = "1";
process.env.ANTHROPIC_AWS_WORKSPACE_ID = "wrkspc_01ABCDEFGHIJKLMN";
process.env.AWS_REGION = "us-east-1";
for await (const msg of query({ prompt: "What's in this repo?" })) {
console.log(msg);
}经企业代理路由
要经代理或 LLM 网关路由,把 ANTHROPIC_AWS_BASE_URL 设为代理地址,Claude Code 用相同的工作区和认证头向该 URL 发请求,所以任何原样转发它们的网关都行。如果网关自己签名请求,设置 CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1,让 Claude Code 发送未签名的请求,由网关在转发到 AWS 前加 SigV4 头;网关需要自己的令牌时,设在 ANTHROPIC_AUTH_TOKEN。
排障
先运行 /status 查看解析出的提供商以及显式配置的工作区 ID、区域、基础 URL 覆盖和跳过认证设置。
- 每个请求都
403 Forbidden或AccessDenied:Claude Code 解析出的 IAM 主体可能缺少在你工作区调用 Anthropic 服务的权限,检查附加到 AWS profile 或启动 Claude Code 的运行器上的角色,确认有 IAM 操作参考里记录的aws-external-anthropic操作。设置了ANTHROPIC_AWS_API_KEY时 Key 优先于 SigV4,过期的 Key 会产生同样的错误:在控制台重新生成,或取消设置该变量回退到 AWS 凭据 - 请求因缺少工作区而失败:
ANTHROPIC_AWS_WORKSPACE_ID可能没设置或为空;每个请求都必须包含工作区 ID,它不会由你的 AWS 凭据隐含 - 请求仍然发往
api.anthropic.com:CLAUDE_CODE_USE_ANTHROPIC_AWS可能没设置或值不被解析为真,设为1并用/status确认;如果同时设置了CLAUDE_CODE_USE_BEDROCK或CLAUDE_CODE_USE_FOUNDRY,它们优先