“OpenClaw(社区昵称"龙虾"🦞)是 2026 年 GitHub 上增长速度极快的开源 AI 助手框架,能 24/7 在线帮你处理消息、执行命令、管理文件。本文教你用亚马逊云科技的两种方式部署它——关键是:不需要任何 API Key。
为什么要告别 API Key?
翻一翻现有的 OpenClaw 部署教程,几乎每篇都让你把第三方大模型的 API Key 明文写进配置文件。这有几个问题:
安全隐患:API Key 就像密码,写在文件里容易泄露。你电脑上跑的其他软件、误上传的 Git 仓库、甚至队友帮你调试时看到——任何一个环节都可能出事 管理麻烦:Key 过期了要手动换、不同模型有不同的 Key、额度用完了要重新申请 审计困难:谁调了多少次 API?用了哪些模型?没有日志可查
亚马逊云科技的 Amazon Bedrock[1] 搭配 IAM 角色认证,可以做到:
✅ 零密钥:EC2 实例通过 IAM 角色自动获取临时凭证,配置文件里不需要写任何密钥 ✅ 自动轮换:临时凭证每小时自动刷新,不存在泄露风险 ✅ 完整审计:每次 API 调用都有 CloudTrail 日志,谁调的、什么时候、用了什么模型 ✅ 多模型切换:Bedrock 统一接口支持 Claude、Nova、DeepSeek 等多个模型,改一个参数就能换
下面是两种部署方式。
方案 A:Lightsail 一键部署(5 分钟上手)
Amazon Lightsail[2] 是亚马逊云科技的轻量级云服务器,固定月费。官方已经上架了 OpenClaw 蓝图(Blueprint ID: openclaw_ls_1_0),开箱即用。
第 1 步:创建实例
“还没有亚马逊云科技账号?点此免费注册[3],Lightsail 新用户前 3 个月可免费试用部分套餐。
打开 Lightsail 控制台[4] 点击 Create instance 选择区域(推荐 us-east-1)平台选 Linux/Unix 蓝图(Blueprint,即预装好软件的系统模板)选 OpenClaw 选择实例规格:
| medium_3_0 | 2 | 4GB | 80GB | $24 | 推荐,日常使用 |
“💡 个人体验 24 起。仅 IPv6 的版本更便宜(20/$40),如果你不需要公网 IPv4。
点击 Create instance,等 2-3 分钟
第 2 步:配对浏览器
在 Lightsail 控制台进入实例 → Connect → Connect using SSH 终端显示的控制台 URL 和访问令牌记下来 浏览器新标签打开 URL,粘贴令牌 SSH 终端中输入 y确认,a批准配对
第 3 步:启用 Bedrock
复制 Lightsail 入门页提供的配置脚本 到 CloudShell[5] 中运行 脚本自动创建 IAM 角色并授权 Bedrock
完成!回到 OpenClaw 控制台就能开始聊天了。全程没有输入过任何 API Key。
“📖 详细步骤参考官方博客:推出 OpenClaw on Amazon Lightsail[6]
方案 B:EC2 手动部署(完全掌控每一步)
想深入理解每个组件,或者想用 Graviton ARM 实例省钱?手动部署更灵活。
前提
一个亚马逊云科技账号 在 Bedrock 控制台[7] 的 Model access 中启用了 Nova 系列模型
第 1 步:创建 IAM 角色(关键的安全步骤)
这一步用 IAM 角色替代 API Key,是整个方案的核心。
进入 IAM 控制台[8] → Roles → Create role Trusted entity type 选 服务,Use case 选 EC2,Next 搜索 AmazonBedrockFullAccess,勾选,NextRole name 填 OpenClaw,Create role
“⚠️
AmazonBedrockFullAccess适合快速上手。生产环境建议创建自定义策略,只授予你需要的模型和操作权限。
第 2 步:启动 EC2 实例
进入 EC2 控制台[9] → Launch instances:
ami-0f1b9964277dbd54e(us-east-1) | ||
t4g.medium | ||
为什么选 t4g.medium(ARM/Graviton)?
同配置 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
关键选项:
us.amazon.nova-2-lite-v1:0 | |
第 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
夜雨聆风