OpenClaw 部署教程:Bedrock + IAM 零密钥方案,告别 API Key(附 Lightsail 一键安装)
OpenClaw(社区昵称"龙虾"🦞)是 2026 年 GitHub 上增长速度极快的开源 AI 助手框架,能 24/7 在线帮你处理消息、执行命令、管理文件。本文教你用亚马逊云科技的两种方式部署它——关键是:不需要任何 API Key。
为什么要告别 API Key?
翻一翻现有的 OpenClaw 部署教程,几乎每篇都让你把第三方大模型的 API Key 明文写进配置文件。这有几个问题:
- 安全隐患:API Key 就像密码,写在文件里容易泄露。你电脑上跑的其他软件、误上传的 Git 仓库、甚至队友帮你调试时看到——任何一个环节都可能出事
- 管理麻烦:Key 过期了要手动换、不同模型有不同的 Key、额度用完了要重新申请
- 审计困难:谁调了多少次 API?用了哪些模型?没有日志可查
亚马逊云科技的 Amazon Bedrock 搭配 IAM 角色认证,可以做到:
- ✅ 零密钥:EC2 实例通过 IAM 角色自动获取临时凭证,配置文件里不需要写任何密钥
- ✅ 自动轮换:临时凭证每小时自动刷新,不存在泄露风险
- ✅ 完整审计:每次 API 调用都有 CloudTrail 日志,谁调的、什么时候、用了什么模型
- ✅ 多模型切换:Bedrock 统一接口支持 Claude、Nova、DeepSeek 等多个模型,改一个参数就能换
下面是两种部署方式。
方案 A:Lightsail 一键部署(5 分钟上手)
Amazon Lightsail 是亚马逊云科技的轻量级云服务器,固定月费。官方已经上架了 OpenClaw 蓝图(Blueprint ID: openclaw_ls_1_0),开箱即用。
第 1 步:创建实例
还没有亚马逊云科技账号?点此免费注册,Lightsail 新用户前 3 个月可免费试用部分套餐。
- 打开 Lightsail 控制台
- 点击 Create instance
- 选择区域(推荐
us-east-1) - 平台选 Linux/Unix
- 蓝图(Blueprint,即预装好软件的系统模板)选 OpenClaw
- 选择实例规格:
| 规格 | vCPU | 内存 | SSD | 月费 | 适合场景 |
|---|---|---|---|---|---|
| small_3_0 | 2 | 2GB | 60GB | $12 | 个人体验 |
| medium_3_0 | 2 | 4GB | 80GB | $24 | 推荐,日常使用 |
| large_3_0 | 2 | 8GB | 160GB | $44 | 多人/多渠道 |
💡 个人体验 24 起。仅 IPv6 的版本更便宜(20/$40),如果你不需要公网 IPv4。
- 点击 Create instance,等 2-3 分钟
第 2 步:配对浏览器
- 在 Lightsail 控制台进入实例 → Connect → Connect using SSH
- 终端显示的控制台 URL 和访问令牌记下来
- 浏览器新标签打开 URL,粘贴令牌
- SSH 终端中输入
y确认,a批准配对
第 3 步:启用 Bedrock
- 复制 Lightsail 入门页提供的配置脚本
- 到 CloudShell 中运行
- 脚本自动创建 IAM 角色并授权 Bedrock
完成!回到 OpenClaw 控制台就能开始聊天了。全程没有输入过任何 API Key。
📖 详细步骤参考官方博客:推出 OpenClaw on Amazon Lightsail
方案 B:EC2 手动部署(完全掌控每一步)
想深入理解每个组件,或者想用 Graviton ARM 实例省钱?手动部署更灵活。
前提
- 一个亚马逊云科技账号
- 在 Bedrock 控制台 的 Model access 中启用了 Nova 系列模型
第 1 步:创建 IAM 角色(关键的安全步骤)
这一步用 IAM 角色替代 API Key,是整个方案的核心。
- 进入 IAM 控制台 → Roles → Create role
- Trusted entity type 选 服务,Use case 选 EC2,Next
- 搜索
AmazonBedrockFullAccess,勾选,Next - Role name 填
OpenClaw,Create role
⚠️
AmazonBedrockFullAccess适合快速上手。生产环境建议创建自定义策略,只授予你需要的模型和操作权限。
第 2 步:启动 EC2 实例
进入 EC2 控制台 → Launch instances:
| 配置项 | 值 | 说明 |
|---|---|---|
| AMI | Ubuntu Server 24.04 LTS (ARM) | AMI ID: ami-0f1b9964277dbd54e(us-east-1) |
| 实例类型 | t4g.medium | 2 vCPU, 4GB RAM, Graviton ARM |
| Key pair | 你的 SSH 密钥 | 没有就 Create new |
| 存储 | 20GB gp3 | 够用 |
为什么选 t4g.medium(ARM/Graviton)?
| 类型 | 架构 | 配置 | 小时价 | 月费(估算) |
|---|---|---|---|---|
| t4g.medium | ARM | 2C 4GB | $0.0336 | ~$24 |
| t3.medium | x86 | 2C 4GB | $0.0416 | ~$30 |
同配置 ARM 比 x86 便宜约 20%。OpenClaw 是 Node.js 应用,在 ARM 上运行完全正常(本文就是在 ARM 实例上写的)。
启动后,选中实例 → Actions → Security → Modify IAM role → 选择 OpenClaw 角色。
第 3 步:SSH 登录 & 安装
ssh -i "your-key.pem" ubuntu@<EC2 公网 IP>
安装 Node.js 和 OpenClaw:
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh
# 安装 Node.js
nvm install 24
node -v # v24.x.x
# 安装 OpenClaw
npm install -g openclaw@latest
openclaw --version
第 4 步:配置向导
openclaw onboard --install-daemon
关键选项:
| 配置项 | 选这个 |
|---|---|
| Mode | Manual |
| Gateway | Local gateway |
| Model provider | amazon-bedrock |
| Default model | us.amazon.nova-2-lite-v1:0 |
| Gateway auth | token(设一个密码) |
| Channels / Skills | 先 Skip |
第 5 步:配置 Bedrock 模型
编辑 ~/.openclaw/openclaw.json,在 models 部分加入(合并,不要覆盖整个文件):
{
"models": {
"providers": {
"amazon-bedrock": {
"baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com",
"api": "bedrock-converse-stream",
"auth": "aws-sdk",
"models": [
{
"id": "us.amazon.nova-2-lite-v1:0",
"name": "Nova 2 Lite(日常对话,高性价比)",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0.06, "output": 0.24 },
"contextWindow": 300000,
"maxTokens": 8192
},
{
"id": "us.amazon.nova-pro-v1:0",
"name": "Nova Pro(复杂推理)",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0.80, "output": 3.20 },
"contextWindow": 300000,
"maxTokens": 8192
}
]
}
}
}
}
三个关键点:
"auth": "aws-sdk"—— 使用 IAM 角色认证,不需要写 Keyus.前缀的模型 ID —— 这是 Inference Profile,启用了跨区域自动路由(CRIS)。某个区域繁忙时请求会自动切到其他区域,避免排队- 两个模型并存 —— 简单任务用 Nova 2 Lite(0.80/百万 token),按需切换
第 6 步:启动
openclaw gateway restart
openclaw status
浏览器打开 http://<EC2 IP>:18789/?token=<你的密码> 即可使用。
验证:确认 Bedrock 连通
部署完想确认 Bedrock 通了?在实例上跑这段 Python(已实测通过):
import boto3, json
# 在 EC2 上不需要传 credentials,IAM Role 自动生效
bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')
response = bedrock.invoke_model(
modelId='us.amazon.nova-2-lite-v1:0',
contentType='application/json',
accept='application/json',
body=json.dumps({
"messages": [{"role": "user", "content": [{"text": "你好,用一句话介绍你自己"}]}],
"inferenceConfig": {"maxTokens": 200}
})
)
result = json.loads(response['body'].read())
print(result['output']['message']['content'][0]['text'])
# 输出: 我是一个人工智能助手,我可以帮助你回答问题、提供信息、生成文本,并支持多轮对话。
如果你想验证 IAM 角色是否正确绑定:
import boto3
sts = boto3.client('sts', region_name='us-east-1')
print(sts.get_caller_identity())
# 应该看到你的 Account ID 和 Role ARN,而不是 User ARN
下一步
部署完了只是起点。后续文章会讲:
- 接入苹果生态:在 Mac 云实例上跑 OpenClaw + iMessage 自动化
- AI 自主运维:让 OpenClaw 自己开服务器、部署新实例
- 多 Agent 架构:一个实例跑多个 AI 助手,按群/按人隔离
- 成本压到极限:Nova Lite + Graviton + 混合路由策略
关注亚马逊云开发者账号获取更新。
参考链接
- OpenClaw GitHub | 官方文档
- 推出 OpenClaw on Amazon Lightsail
- 把 OpenClaw 部署到云上:一个值得认真考虑的选择
- Amazon Bedrock | Amazon Lightsail | Amazon EC2 Graviton
- IAM 角色文档
本文是「OpenClaw 云上实战指南」系列第 1 篇。 作者:亚马逊云开发者 | 所有代码均在 us-east-1 区域实测通过