主题
Claude Code on Amazon Bedrock
通过 AWS Bedrock 用自有云账户和凭据运行 Claude Code。
是什么
该文档说明如何把 Claude Code 接到 Amazon Bedrock:用你自己的 AWS 账户、IAM 权限和凭据来调用 Bedrock 上的 Claude 模型,而不是直接走 Anthropic API。适合已有 AWS 账户、需要集中计费与访问控制,或要在团队/CI 中规模化部署的场景。
接入有两种路径:交互式登录向导(claude 登录时选 3rd-party platform → Amazon Bedrock,可随时用 /setup-bedrock 重开),以及面向 CI/企业脚本化的手动环境变量配置。文档还覆盖 IAM 策略、模型版本钉定、1M 上下文、Service tiers、Guardrails 与 Mantle 端点。
怎么工作
- 前置条件:启用 Bedrock 的 AWS 账户、对目标 Claude 模型(如 Claude Sonnet 4.6)的访问、可选的 AWS CLI、以及合适的 IAM 权限。
- 首次使用 Anthropic 模型需在 Bedrock 控制台 Model catalog 提交 use case 表单(每个 AWS 账户一次,提交后立即授权);用 AWS Organizations 时可在管理账户通过 PutUseCaseForModelAccess API 一次提交,子账户自动继承。
- Claude Code 走默认 AWS SDK 凭据链,支持 AWS CLI 配置、access key 环境变量、SSO profile、控制台 aws login,或 Bedrock API key(AWS_BEARER_TOKEN_BEDROCK)。
- 用 CLAUDE_CODE_USE_BEDROCK=1 启用,AWS_REGION 为必填(不读 .aws config 文件);启用 Bedrock 后 /logout 不可用。
- 多用户部署时应钉定具体模型版本,否则 sonnet/opus 等别名解析为最新版,可能在你账户尚不可用;启动时会回退到上一版本。
- 启动时(需 Claude Code v2.1.94+)校验目标模型在账户内可用:已钉旧版而新版可用会提示更新并写回 user settings;未钉且默认版不可用则本会话回退到上一版且不持久化。
- 支持高级凭据刷新:awsAuthRefresh(凭据过期时触发)与 awsCredentialExport(每次会话启动/重载凭据时运行,需输出指定 JSON 格式)。
- 可选 Mantle 端点(CLAUDE_CODE_USE_MANTLE)以原生 Anthropic API 形态而非 Bedrock Invoke API 调用,可与 Invoke API 并存按模型 ID 路由。
怎么配置 / 用法
启用与基础配置:
bash
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1 # 必填,或你偏好的区域
export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2 # 可选
# export ANTHROPIC_BEDROCK_BASE_URL=https://bedrock-runtime.us-east-1.amazonaws.com # 可选凭据方式(任选其一):aws configure;access key 环境变量 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN;SSO aws sso login --profile=<name> + export AWS_PROFILE=<name>;aws login;或 Bedrock API key export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key。
钉定模型版本(cross-region inference profile,us. 前缀):
bash
export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'
export ANTHROPIC_DEFAULT_SONNET_MODEL='us.anthropic.claude-sonnet-4-6'
export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'缓存:DISABLE_PROMPT_CACHING=1(禁用)/ ENABLE_PROMPT_CACHING_1H=1(1 小时 TTL,计费高于 5 分钟默认)。IAM 策略需含 bedrock:InvokeModel、bedrock:InvokeModelWithResponseStream、bedrock:ListInferenceProfiles、bedrock:GetInferenceProfile,以及 marketplace 订阅权限。可在 settings 文件用 awsAuthRefresh/awsCredentialExport/modelOverrides/availableModels 做进阶配置。
什么时候用
- 已有 AWS 账户并希望用自有 Bedrock 凭据和配额运行 Claude Code
- 需要集中计费、访问控制与成本追踪(可专设一个 AWS 账户)
- 在团队或企业范围部署,需钉定模型版本、IAM 收敛、Guardrails 内容过滤
- 在 CI 或脚本化场景下用环境变量而非交互向导配置
- 需要 SSO / 企业身份提供方的自动凭据刷新,或通过集中式 LLM gateway 注入凭据
限制 / 坑
- Claude Code 使用 Bedrock Invoke API,不支持 Converse API
- 启用 Bedrock 后 /logout 不可用(鉴权由 AWS 凭据处理)
- AWS_REGION 必填且不从 .aws config 文件读取
- Prompt caching 并非所有 Bedrock 区域可用;缓存 token 计数为零时需查 Bedrock 文档的支持模型/区域
- Mantle 需 Claude Code v2.1.94+,且其模型阵容独立于标准 Bedrock catalog,us. 前缀的 inference profile ID 在 Mantle 上不可用
硬事实速查(12 条)
- 启用变量为 CLAUDE_CODE_USE_BEDROCK=1,AWS_REGION 为必填
- Bedrock API key 通过 AWS_BEARER_TOKEN_BEDROCK 提供,无需完整 AWS 凭据
- 登录向导:claude → 选 3rd-party platform → Amazon Bedrock;随时 /setup-bedrock 重开
- 未设 ANTHROPIC_DEFAULT_OPUS_MODEL 时 opus 别名在 Bedrock 解析为 Opus 4.6;设为 'us.anthropic.claude-opus-4-8' 用最新版
- Sonnet 默认钉定 ID 为 us.anthropic.claude-sonnet-4-6,Haiku 为 us.anthropic.claude-haiku-4-5-20251001-v1:0
- 无钉定时默认主模型为 us.anthropic.claude-sonnet-4-5-20250929-v1:0,small/fast 模型默认与主模型相同
- ENABLE_PROMPT_CACHING_1H=1 请求 1 小时缓存 TTL(默认 5 分钟),DISABLE_PROMPT_CACHING=1 关闭缓存
- Claude Opus 4.6 及以后与 Sonnet 4.6 在 Bedrock 支持 1M token 上下文,选 1M 变体时自动启用,可在模型 ID 后追加 [1m]
- Service tier 通过 ANTHROPIC_BEDROCK_SERVICE_TIER 设为 default/flex/priority,作为 X-Amzn-Bedrock-Service-Tier 头发送
- IAM 需 bedrock:InvokeModel、InvokeModelWithResponseStream、ListInferenceProfiles、GetInferenceProfile 及 aws-marketplace 订阅权限
- 启动模型校验需 v2.1.94+;区域排查用 aws bedrock list-inference-profiles --region your-region;on-demand throughput isn't supported 错误需改用 inference profile ID
- Mantle 端点用 CLAUDE_CODE_USE_MANTLE=1 启用,模型 ID 以 anthropic. 前缀且无版本后缀(如 anthropic.claude-haiku-4-5),可与 Invoke API 并存