Appearance
OpenClaw AWS Bedrock 集成完全指南:企业级云端模型接入实战
AWS Bedrock 是亚马逊的企业级 AI 模型平台,OpenClaw 原生支持 Bedrock 集成,无需 API Key,通过 IAM 权限即可安全接入 Claude 3.5/4.0、Llama 3 等顶级模型。
为什么选择 AWS Bedrock?
Bedrock 核心优势
| 优势 | 说明 |
|---|---|
| 企业级安全 | AWS IAM 权限体系,无需暴露 API Key |
| 合规认证 | SOC 2、HIPAA、GDPR 合规 |
| 多模型支持 | Claude、Llama、Titan、Stable Diffusion 等 |
| 按需付费 | 无预付费,按 Token 计费 |
| 私有部署 | 支持 VPC 端点,数据不出 AWS |
与直接 API 对比
| 对比项 | 直接 API | AWS Bedrock |
|---|---|---|
| 认证方式 | API Key | IAM 角色/密钥 |
| 数据合规 | 依赖供应商 | AWS 合规体系 |
| 网络安全 | 公网访问 | VPC 私有端点 |
| 账单管理 | 多个供应商账单 | 统一 AWS 账单 |
| 成本控制 | 各平台独立 | 统一预算管理 |
架构设计
集成架构
┌─────────────────────────────────────────────────────────────┐
│ OpenClaw Agent │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ AWS SDK 凭证链 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1. 环境变量 AWS_ACCESS_KEY_ID │ │
│ │ 2. ~/.aws/credentials │ │
│ │ 3. EC2 实例角色(推荐) │ │
│ │ 4. ECS 任务角色 │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ AWS Bedrock │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Claude 3.5 │ │ Llama 3.1 │ │ Titan │ │
│ │ Claude 4.0 │ │ Llama 3.2 │ │ embeddings │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘部署模式
| 模式 | 适用场景 | 安全等级 |
|---|---|---|
| 本地开发 | 开发测试 | 使用 AWS CLI 凭证 |
| EC2 部署 | 生产环境 | 使用实例角色(推荐) |
| ECS 部署 | 容器化环境 | 使用任务角色 |
| Lambda 部署 | 无服务器 | 使用执行角色 |
配置步骤
Step 1:创建 IAM 策略
创建允许访问 Bedrock 的 IAM 策略:
json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockInvoke",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:*::foundation-model/*",
"arn:aws:bedrock:*:123456789012:custom-model/*"
]
},
{
"Sid": "BedrockList",
"Effect": "Allow",
"Action": [
"bedrock:ListFoundationModels",
"bedrock:GetFoundationModel"
],
"Resource": "*"
}
]
}Step 2:创建 IAM 角色
创建 OpenClaw 使用的 IAM 角色:
bash
# 创建角色
aws iam create-role \
--role-name OpenClawBedrockRole \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}]
}'
# 附加策略
aws iam attach-role-policy \
--role-name OpenClawBedrockRole \
--policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccessStep 3:配置 OpenClaw
编辑 ~/.openclaw/openclaw.json:
json
{
"modelProvider": "bedrock",
"bedrock": {
"region": "us-east-1",
"model": "anthropic.claude-3-5-sonnet-20241022-v2:0",
"models": {
"claude-3.5-sonnet": "anthropic.claude-3-5-sonnet-20241022-v2:0",
"claude-3.5-haiku": "anthropic.claude-3-5-haiku-20241022-v1:0",
"claude-4.0-opus": "anthropic.claude-4-opus-20250514-v1:0",
"llama-3.1-405b": "meta.llama3-1-405b-instruct-v1:0",
"llama-3.1-70b": "meta.llama3-1-70b-instruct-v1:0"
}
}
}Step 4:配置 AWS 凭证
方式一:AWS CLI 配置(开发环境)
bash
# 安装 AWS CLI
brew install awscli # macOS
# 或
pip install awscli
# 配置凭证
aws configure
# 输入 Access Key ID
# 输入 Secret Access Key
# 输入默认区域:us-east-1
# 输入输出格式:json方式二:EC2 实例角色(生产环境,推荐)
bash
# 创建实例配置文件
aws iam create-instance-profile \
--instance-profile-name OpenClawBedrockProfile
# 添加角色到配置文件
aws iam add-role-to-instance-profile \
--instance-profile-name OpenClawBedrockProfile \
--role-name OpenClawBedrockRole
# 启动 EC2 时关联实例配置文件
aws ec2 run-instances \
--image-id ami-xxx \
--instance-type t3.medium \
--iam-instance-profile Name=OpenClawBedrockProfile方式三:环境变量(临时使用)
bash
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-east-1Step 5:验证连接
bash
# 测试 Bedrock 连接
openclaw test bedrock
# 列出可用模型
openclaw bedrock list-models输出示例:
✅ Bedrock 连接成功
可用模型:
- anthropic.claude-3-5-sonnet-20241022-v2:0
- anthropic.claude-3-5-haiku-20241022-v1:0
- anthropic.claude-4-opus-20250514-v1:0
- meta.llama3-1-405b-instruct-v1:0
- meta.llama3-1-70b-instruct-v1:0
- amazon.titan-embed-text-v2:0模型配置详解
Claude 系列模型
| 模型 ID | 特点 | 适用场景 | 价格(每 1K Token) |
|---|---|---|---|
| claude-3.5-sonnet | 性价比最高 | 通用对话、代码 | $0.003 / $0.015 |
| claude-3.5-haiku | 最快最便宜 | 简单任务、高并发 | $0.001 / $0.003 |
| claude-4.0-opus | 最强能力 | 复杂推理、专业分析 | $0.015 / $0.075 |
Llama 系列模型
| 模型 ID | 参数量 | 适用场景 |
|---|---|---|
| llama-3.1-405b | 405B | 复杂推理、专业分析 |
| llama-3.1-70b | 70B | 通用任务、成本优化 |
| llama-3.1-8b | 8B | 简单任务、高并发 |
模型选择策略
json
{
"modelSelection": {
"simple_tasks": "claude-3.5-haiku",
"general_chat": "claude-3.5-sonnet",
"code_generation": "claude-3.5-sonnet",
"complex_reasoning": "claude-4.0-opus",
"cost_sensitive": "llama-3.1-70b"
}
}高级配置
VPC 端点配置(私有网络)
bash
# 创建 VPC 端点
aws ec2 create-vpc-endpoint \
--vpc-id vpc-xxx \
--service-name com.amazonaws.us-east-1.bedrock \
--vpc-endpoint-type Interface \
--subnet-ids subnet-xxx subnet-yyy \
--security-group-ids sg-xxx请求配置优化
json
{
"bedrock": {
"requestConfig": {
"maxTokens": 4096,
"temperature": 0.7,
"topP": 0.9,
"stopSequences": ["Human:", "Assistant:"]
},
"retryConfig": {
"maxAttempts": 3,
"backoffMultiplier": 2,
"baseDelay": 1000
},
"timeout": 60000
}
}流式响应配置
json
{
"bedrock": {
"streaming": {
"enabled": true,
"bufferSize": 1024
}
}
}成本优化
成本监控
bash
# 查看 Bedrock 用量
aws ce get-cost-and-usage \
--time-period Start=2026-04-01,End=2026-04-30 \
--granularity DAILY \
--metrics UsageQuantity \
--filter '{"Dimensions":{"Key":"SERVICE","Value":"Amazon Bedrock"}}'成本控制策略
| 策略 | 方法 | 预期节省 |
|---|---|---|
| 模型选择 | 简单任务用 Haiku | 60-70% |
| Token 限制 | 限制输出长度 | 20-30% |
| 缓存响应 | 相同请求缓存 | 30-50% |
| 预算预警 | 设置 CloudWatch 告警 | 避免超支 |
预算告警配置
bash
# 创建预算
aws budgets create-budget \
--account-id 123456789012 \
--budget '{
"BudgetName": "OpenClaw-Bedrock-Monthly",
"BudgetLimit": {"Amount": 500, "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}'安全最佳实践
IAM 最小权限
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": ["10.0.0.0/8"]
}
}
}
]
}日志审计
json
{
"bedrock": {
"logging": {
"enabled": true,
"logLevel": "info",
"logRequests": false,
"logResponses": false
},
"audit": {
"enabled": true,
"destination": "cloudwatch-logs"
}
}
}数据加密
Bedrock 默认加密传输和存储,如需自定义 KMS:
json
{
"bedrock": {
"encryption": {
"kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/xxx"
}
}
}故障排查
问题一:权限不足
错误信息:
Error: AccessDeniedException - User is not authorized to perform bedrock:InvokeModel解决方案:
bash
# 检查 IAM 策略
aws iam get-role-policy \
--role-name OpenClawBedrockRole \
--policy-name BedrockAccess
# 验证凭证
aws sts get-caller-identity问题二:区域不支持
错误信息:
Error: Could not connect to Bedrock endpoint解决方案:
确认使用支持 Bedrock 的区域:
- us-east-1(弗吉尼亚)
- us-west-2(俄勒冈)
- eu-west-1(爱尔兰)
- ap-northeast-1(东京)
问题三:模型不可用
错误信息:
Error: ValidationException - Model not found解决方案:
bash
# 检查模型可用性
aws bedrock list-foundation-models --region us-east-1
# 确认模型 ID 正确
openclaw bedrock validate-model --model-id anthropic.claude-3-5-sonnet-20241022-v2:0多区域部署
配置多区域
json
{
"bedrock": {
"regions": {
"primary": "us-east-1",
"fallback": ["us-west-2", "eu-west-1"]
},
"regionSelection": "latency"
}
}跨区域模型访问
bash
# 启用跨区域推理
aws bedrock put-use-cross-region-inference \
--model-id anthropic.claude-3-5-sonnet-20241022-v2:0 \
--enabled与其他 AWS 服务集成
集成 S3
json
{
"skills": {
"file-operations": {
"s3": {
"enabled": true,
"bucket": "my-openclaw-docs",
"region": "us-east-1"
}
}
}
}集成 Lambda
yaml
# Lambda 函数调用 OpenClaw
Resources:
OpenClawFunction:
Type: AWS::Lambda::Function
Properties:
Runtime: nodejs20.x
Handler: index.handler
Role: !GetAtt OpenClawRole.Arn
Environment:
Variables:
OPENCLAW_CONFIG: /opt/openclaw/config.json集成 Step Functions
json
{
"Comment": "OpenClaw 工作流",
"StartAt": "ProcessWithBedrock",
"States": {
"ProcessWithBedrock": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "openclaw-processor",
"Payload": {
"model": "claude-3.5-sonnet",
"prompt.$": "$.input"
}
},
"End": true
}
}
}总结
| 步骤 | 内容 |
|---|---|
| 1 | 创建 IAM 策略和角色 |
| 2 | 配置 AWS 凭证 |
| 3 | 编辑 OpenClaw 配置 |
| 4 | 验证连接 |
| 5 | 选择合适的模型 |
AWS Bedrock 集成核心价值:
- 企业级安全:IAM 权限体系,无 API Key 风险
- 合规认证:满足 HIPAA、GDPR 等合规要求
- 多模型支持:Claude、Llama、Titan 一站式接入
- 成本可控:按需付费,统一账单管理
对于有 AWS 基础设施的企业,Bedrock 集成是最安全、最合规的选择。关键是配置好 IAM 权限,选择合适的模型组合,建立成本监控机制。
