Skip to content

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 模型需提交使用场景:

  1. 确保有正确的 IAM 权限
  2. 导航到 Amazon Bedrock 控制台
  3. 选择 Chat/Text playground
  4. 选择任意 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-key

Bedrock 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. 固定模型版本

重要

为每次部署固定特定模型版本。如果使用模型别名(sonnetopushaiku)而不固定,当 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" 错误

Claude Code 使用 Bedrock Invoke API不支持 Converse API。

相关资源