Appearance
Claude Code on Amazon Bedrock
在 AWS 环境中通过 Amazon Bedrock 使用 Claude Code,获得完整的 IAM 权限控制和 AWS 原生集成。
前提条件
- 已启用 Bedrock 访问的 AWS 账户
- 已在 Bedrock 中启用所需 Claude 模型(如 Claude Sonnet 4.6)的访问权限
- 已安装并配置 AWS CLI(可选)
- 适当的 IAM 权限
如果向多个用户部署 Claude Code,请固定模型版本,以防 Anthropic 发布新模型时中断现有用户。
设置步骤
1. 提交使用场景说明
首次使用 Anthropic 模型需提交使用场景:
- 确保有正确的 IAM 权限
- 导航到 Amazon Bedrock 控制台
- 选择 Chat/Text playground
- 选择任意 Anthropic 模型,系统会提示填写使用场景表单
2. 配置 AWS 凭据
选项 A:AWS CLI 配置
bash
aws configure选项 B:环境变量(访问密钥)
bash
export AWS_ACCESS_KEY_ID=your-access-key-id
export AWS_SECRET_ACCESS_KEY=your-secret-access-key
export AWS_SESSION_TOKEN=your-session-token选项 C:环境变量(SSO 配置)
bash
aws sso login --profile=<your-profile-name>
export AWS_PROFILE=your-profile-name选项 D:Bedrock API Keys
bash
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-keyBedrock API Keys 提供更简单的认证方式,无需完整的 AWS 凭据。了解更多。
高级凭据配置
Claude Code 支持 AWS SSO 和企业身份提供商的自动凭据刷新。在 Claude Code 设置文件中添加:
json
{
"awsAuthRefresh": "aws sso login --profile myprofile",
"env": {
"AWS_PROFILE": "myprofile"
}
}awsAuthRefresh:修改.aws目录的命令(如更新凭据、SSO 缓存),输出会显示给用户,不支持交互式输入。适合浏览器 SSO 流程。awsCredentialExport:直接返回凭据的命令(当无法修改.aws时使用),输出静默捕获,必须输出以下 JSON 格式:
json
{
"Credentials": {
"AccessKeyId": "value",
"SecretAccessKey": "value",
"SessionToken": "value"
}
}3. 配置 Claude Code
bash
# 启用 Bedrock 集成
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1 # 或你偏好的区域
# 可选:覆盖小型/快速模型(Haiku)的区域
export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2注意:
AWS_REGION是必填的环境变量,Claude Code 不从.aws配置文件读取此设置。
4. 固定模型版本
重要
为每次部署固定特定模型版本。如果使用模型别名(sonnet、opus、haiku)而不固定,当 Anthropic 发布新模型时,Claude Code 可能尝试使用你 Bedrock 账户中不可用的版本,导致现有用户中断。
bash
export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-6-v1'
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'这些变量使用跨区域推理配置文件 ID(带 us. 前缀)。如果使用不同区域前缀或应用推理配置文件,请相应调整。
未设置固定变量时的默认模型:
| 模型类型 | 默认值 |
|---|---|
| 主模型 | global.anthropic.claude-sonnet-4-6 |
| 小型/快速模型 | us.anthropic.claude-haiku-4-5-20251001-v1:0 |
使用应用推理配置文件 ARN:
bash
export ANTHROPIC_MODEL='arn:aws:bedrock:us-east-2:your-account-id:application-inference-profile/your-model-id'映射多个模型版本
使用 modelOverrides 将不同版本映射到独立的应用推理配置文件 ARN:
json
{
"modelOverrides": {
"claude-opus-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-46-prod",
"claude-opus-4-5-20251101": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-45-prod"
}
}IAM 配置
json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowModelAndInferenceProfileAccess",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream",
"bedrock:ListInferenceProfiles"
],
"Resource": [
"arn:aws:bedrock:*:*:inference-profile/*",
"arn:aws:bedrock:*:*:application-inference-profile/*",
"arn:aws:bedrock:*:*:foundation-model/*"
]
}
]
}建议为 Claude Code 创建专用 AWS 账户,简化成本追踪和访问控制。
AWS Guardrails
通过 Amazon Bedrock Guardrails 为 Claude Code 实施内容过滤。在控制台中创建 Guardrail 并发布版本后,在设置文件中添加 Guardrail 头:
json
{
"env": {
"ANTHROPIC_CUSTOM_HEADERS": "X-Amzn-Bedrock-GuardrailIdentifier: your-guardrail-id\nX-Amzn-Bedrock-GuardrailVersion: 1"
}
}故障排除
区域问题:
- 检查模型可用性:
aws bedrock list-inference-profiles --region your-region - 切换到支持的区域:
export AWS_REGION=us-east-1
"on-demand throughput isn't supported" 错误:
- 将模型指定为推理配置文件 ID
Claude Code 使用 Bedrock Invoke API,不支持 Converse API。