最小权限:量化安全的第一原则
API Key 等于「程序代你操作账户的一扇门」。门开越大,丢钥匙越致命。
最小权限集(Min Permission Set):
只开你当前策略真正需要的能力;默认关闭提现;尽量绑定 IP;能放子账户就放子账户。
深入阅读:
注册:
权限分层对照表
| 层级 | 典型能力 | 适用 | 风险 |
|---|---|---|---|
| 只读 | 查询余额/订单/持仓/流水 | 监控、记账、研究 | 泄露主要是隐私与策略暴露 |
| 交易 | 下单、撤单、部分划转(视平台) | 实盘机器人 | 乱下单、刷量、快速亏损 |
| 提现 | 链上/内部提现 | 极少需要 | 最高危,可直接转走资产 |
| 万能 | 以上全开 | 几乎不该用于日常 bot | 密钥≈整户控制权 |
具体勾选项名称以 OKX / 币安创建页为准,本文是教学模型,不对应某一版 UI 的逐字文案。
按策略选型(先选层,再开勾选)
| 你的程序 | 建议层级 | 附加条件 |
|---|---|---|
| 仅看板、税率导出、对账 | 只读 | 可放主或子;仍建议 IP 限制(若支持) |
| 网格/定投下单 | 交易 | 禁提现 + IP + 子账户限额 |
| 学习签名与连通性 | 只读或模拟/测试网(若有) | 勿用生产万能 key |
| 跨所搬砖涉及提现 | 超出新手最小集 | 需单独风控与人工流程,本文不鼓励 |
权限报错见:API 权限不足。
推荐配置路径(新手实盘 bot)
- 用子账户装试验资金,而不是主账户全款。见 子账户隔离。
- 创建 API 时:
- 需要下单 → 开交易相关
- 关闭提现
- 绑定 IP 白名单(服务器固定出口 IP)
- 将
API Key/Secret/ 通行密钥(若有)存于环境变量或密钥管理,不要提交到 Git 公开仓库。 - 先用只读密钥跑通行情与账户查询,再启用交易权限。
- 设定:单笔上限、日亏损停机、人工复核。
- 文档化:密钥用途、创建日、轮换日、所属子账户。
「先全开再慢慢收」在泄露场景下没有第二次机会。
IP 白名单:为什么重要
| 场景 | 无白名单 | 有白名单 |
|---|---|---|
| 密钥被贴到聊天/日志 | 任意网络可尝试调用 | 仅名单 IP 可调用 |
| 家用宽带 IP 常变 | — | 需更新名单或改用稳定服务器 |
| 云主机 | — | 绑定云厂商出口 IP |
| 办公多出口 | 易误判为攻击 | 需把所有合法出口列入或收敛出口 |
注意:白名单不是万能;恶意若已在你服务器内,仍危险。需配合系统安全、最小系统权限与密钥保管。白名单降低的是「钥匙在别处被用」的概率,不是服务器被控后的损失。
配置白名单时的实操提示
- 先确认 bot 运行环境的稳定出口 IP,再创建或绑定 key。
- 变更机房/供应商前,先加新 IP,再下线旧 IP,避免策略「集体权限不足」。
- 不要为了省事把
0.0.0.0/0或过宽网段当白名单(若平台允许这类写法,等同放弃限制)。
只读 vs 交易:怎么选
| 你的程序 | 建议 |
|---|---|
| 仅看板、税率导出、对账 | 只读 |
| 网格/定投下单 | 交易 + 禁提现 + IP |
| 跨所搬砖涉及提现 | 极高风险;需单独风控与人工流程,新手不建议 |
| 学习签名与连通性 | 只读或模拟盘/测试网(若有) |
| 多人只看账户 | 只读;不要共享交易 key |
一个团队两把钥匙(只读看板 + 交易执行)通常优于一把万能钥匙。
密钥生命周期
创建(最小权限)→ 安全存储 → 监控异常 → 定期轮换 → 废弃删除
↑__________________________________|
- 轮换:策略变更、人员变更、疑似泄露、云主机重建时立刻轮换
- 废弃:旧 key 删除,不要留「备用万能 key」
- 审计:定期看 API 列表与最近登录/调用(若平台提供)
- 分离:研究用只读、生产用交易,避免混用同一 secret 贴日志
轮换检查表
轮换日:
- [ ] 新 key 已最小权限 + IP
- [ ] 新 secret 已写入密钥库(非聊天工具)
- [ ] bot 已切换并验证下单/只读
- [ ] 旧 key 已删除(不是禁用摆设)
- [ ] 仓库/CI/备份中无旧 secret 残留
泄露应急清单
- App/官网删除该 API(优先于改代码)
- 检查是否有异常订单、划转、提现
- 修改登录密码;检查 2FA 与设备
- 轮换所有相关密钥;检查代码仓库是否曾提交 secret
- 走官方客服(谨防 假客服)
- 若曾开提现:立刻核对链上与地址白名单状态
应急时「先删 key、再分析日志」,比「先怀疑是不是误报」更稳妥。
开发与运维习惯
| 做 | 不做 |
|---|---|
.env + 不进 Git | 把 Secret 写进截图发群 |
| 子账户限额 | 主账户全权限 bot |
| 日志脱敏 | 打印完整 secret |
| 变更双人复核(若团队) | 生产直接试「先开提现再说」 |
| 模拟盘验证权限与签名 | 实盘第一次连通就全仓 |
| 日损停机开关 | 无熔断无限重试下单 |
与量化预期:安全 ≠ 盈利
API 安全解决的是权限与爆炸半径,不解决策略期望值为负、过拟合、滑点与手续费侵蚀。即便权限完美,策略仍可能亏损。上实盘前至少明确:
- 最大回撤与停机条件
- 单笔与总暴露上限
- 谁有权改参数、谁有权轮换 key
常见误区
| 误区 | 纠正 |
|---|---|
| 开了提现「以后方便」 | 以后方便的是攻击者 |
| 白名单太麻烦 | 比追资方便 |
| 只读泄露没事 | 仍暴露持仓与习惯 |
| 权限报错=平台坏了 | 先查自己的权限树与签名 |
| 改个备注名等于轮换 | 必须删除旧 key 并换 secret |
| 主账户 bot 更省事 | 省事的是事故半径最大化 |
最小集速查(可贴在显示器旁)
| 项 | 默认答案 |
|---|---|
| 提现 | 关 |
| 账户 | 子账户试验金 |
| IP | 绑固定出口 |
| 首跑 | 只读 → 再交易 |
| 泄露 | 先删 key |
| 文档 | 用途/日期/轮换 |
界面若增加新权限开关,默认保持关闭,直到策略文档写明「为什么必须开」。
相关阅读
小结与合规声明
- 最小权限 + 禁提现 + IP 白名单 是新手 API 默认姿势。
- 优先 子账户 限制爆炸半径。
- 泄露时 先删 key,再轮换与审计。
- 权限名称与选项 以官方创建页为准;本文不提供攻击、绕过或未授权访问任何系统的方法。
- 不构成投资建议;自动化交易可能导致快速亏损,请自负风险;数字资产交易存在本金损失可能。
如果你现在的 API 仍开着提现,先停 bot,收敛权限,再谈策略参数。