Skip to content

OpenClaw AWS Bedrock 集成完全指南:企业级云端模型接入实战

2026年4月8日

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 对比

对比项直接 APIAWS Bedrock
认证方式API KeyIAM 角色/密钥
数据合规依赖供应商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/AmazonBedrockFullAccess

Step 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-1

Step 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-405b405B复杂推理、专业分析
llama-3.1-70b70B通用任务、成本优化
llama-3.1-8b8B简单任务、高并发

模型选择策略

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"}}'

成本控制策略

策略方法预期节省
模型选择简单任务用 Haiku60-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 权限,选择合适的模型组合,建立成本监控机制。

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来