乐于分享
好东西不私藏

OpenClaw 部署教程:Bedrock + IAM 零密钥方案,告别 API Key(附 Lightsail 一键)

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[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 个月可免费试用部分套餐。

  1. 打开 Lightsail 控制台[4]
  2. 点击 Create instance
  3. 选择区域(推荐 us-east-1
  4. 平台选 Linux/Unix
  5. 蓝图(Blueprint,即预装好软件的系统模板)选 OpenClaw
  6. 选择实例规格:
规格
vCPU
内存
SSD
月费
适合场景
small_3_0
2
2GB
60GB
$12
个人体验
medium_3_024GB80GB$24推荐,日常使用
large_3_0
2
8GB
160GB
$44
多人/多渠道

💡 个人体验 24 起。仅 IPv6 的版本更便宜(20/$40),如果你不需要公网 IPv4。

  1. 点击 Create instance,等 2-3 分钟

第 2 步:配对浏览器

  1. 在 Lightsail 控制台进入实例 → Connect → Connect using SSH
  2. 终端显示的控制台 URL 和访问令牌记下来
  3. 浏览器新标签打开 URL,粘贴令牌
  4. SSH 终端中输入 y 确认,a 批准配对

第 3 步:启用 Bedrock

  1. 复制 Lightsail 入门页提供的配置脚本
  2. 到 CloudShell[5] 中运行
  3. 脚本自动创建 IAM 角色并授权 Bedrock

完成!回到 OpenClaw 控制台就能开始聊天了。全程没有输入过任何 API Key。

📖 详细步骤参考官方博客:推出 OpenClaw on Amazon Lightsail[6]


方案 B:EC2 手动部署(完全掌控每一步)

想深入理解每个组件,或者想用 Graviton ARM 实例省钱?手动部署更灵活。

前提

  • 一个亚马逊云科技账号
  • 在 Bedrock 控制台[7] 的 Model access 中启用了 Nova 系列模型

第 1 步:创建 IAM 角色(关键的安全步骤)

这一步用 IAM 角色替代 API Key,是整个方案的核心。

  1. 进入 IAM 控制台[8] → Roles → Create role
  2. Trusted entity type 选 服务,Use case 选 EC2,Next
  3. 搜索 AmazonBedrockFullAccess,勾选,Next
  4. Role name 填 OpenClaw,Create role

⚠️ AmazonBedrockFullAccess 适合快速上手。生产环境建议创建自定义策略,只授予你需要的模型和操作权限。

第 2 步:启动 EC2 实例

进入 EC2 控制台[9] → 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
          }
        ]
      }
    }
  }
}

三个关键点:

  1. "auth": "aws-sdk" —— 使用 IAM 角色认证,不需要写 Key
  2. us. 前缀的模型 ID —— 这是 Inference Profile,启用了跨区域自动路由(CRIS)。某个区域繁忙时请求会自动切到其他区域,避免排队
  3. 两个模型并存 —— 简单任务用 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