给 agent 一把假钥匙:搭一个 OneCLI 凭据网关
· 阅读约 4 分钟
你让 agent 去调外面的 API,它开口就要那把真 key。你就这么给它?它哪天跑飞一次,或者被人拿 prompt 把话套出来,那把 key 就不是你的了。这篇就办一件事:把真 key 锁在你自己机器上,agent 手里只拿一把假的,出站的时候由一个网关负责换。前后大概二十分钟,跑完网关和仪表盘都是活的。
开搞之前先确认这几样齐了:
- Docker 装好了,
docker compose version能跑 - 手头有一张真 key,等会儿要拿它试替换逻辑
- 10254 / 10255 两个端口没被占
缺哪样先去补哪样,都齐了开搞。
Step 1:把服务拉起来
这一步的目标就一个:让网关和仪表盘都活着。
新建一个空目录,放一份 docker-compose.yaml,把这段贴进去:
services:
onecli:
image: onecli/onecli:latest
ports:
- "10254:10254"
- "10255:10255"
volumes:
- onecli-data:/data
然后:
docker compose up -d
浏览器开 http://localhost:10254,能看到登录页,这一步就算活了。默认是免登录模式,直接进。这里别手贱去改监听地址,保持 127.0.0.1——你绑了 0.0.0.0,这台机器上任何一个程序都能伸进你的保险库,那跟裸奔没区别。
Step 2:把真 key 存进 Vault
别急着把 key 粘进 agent 的环境变量,先让它住进 Vault。
仪表盘里找到 Vault 页面,新建一条记录,名字随便写(比如 OPENAI_API_KEY),值贴真 key,保存。落盘是加密的,不是明文躺在某个 config.json 里,这点可以放心。我不可能替你把存储层的每个字节验一遍,但至少设计上没走弯路。
本来想顺手给你一条 curl 添加命令,想了想算了——不同版本 API 路径不一样,给你一条大概率对不上的命令是添乱。仪表盘表单够用了。
Step 3:写替换规则
这是整篇的题眼。到这一步,前面存的真 key 才开始派上用场。
先想清楚要干嘛:agent 的请求到网关,网关得知道——这个请求该换成哪把真钥匙。规则写的就是这个。规则长这样:
match:
host: api.openai.com
path_prefix: /v1/
inject:
type: header
name: Authorization
from_secret: OPENAI_API_KEY
评论
还没有评论,写下第一条讨论。