BabianLab
立即开始

币安 API Key 怎么管?最小权限配置和定期审查

币安 API Key 默认只有读权限,需要勾选才能开启现货交易、合约交易、提币。最佳实践是按用途拆分多个 Key + 绑定 IP 白名单 + 90 天轮换。本文记录我们这次配置 5 个 API Key 的实测过程和踩过的坑。

发布于 2026-05-05 · 阅读约 11 分钟 · 安全设置

币安 API Key 是给程序化交易、行情订阅、第三方策略平台用的访问令牌。登录 币安官网 → [API 管理] 创建一个 Key 默认只有 [读权限],[现货交易]、[合约交易]、[提币] 都要单独勾选才开启。我们这次为不同用途配了 5 个独立 Key,每个最小权限 + 绑定 IP,把单点泄露的最大损失控制在那一个 Key 的权限范围。

最重要的纪律:永远不要给 API Key 开提币权限,除非你的程序真的需要自动提币。99% 的程序用不到提币,但开了之后一旦 Key 泄露,币就直接被搬空。即便开了,也必须配合白名单(参考 币安提币白名单怎么开?添加和冷却期细节)。

5 个权限位都干啥

下面这张表是币安 API Key 的所有权限选项以及推荐勾选策略:

权限 作用 风险 推荐
Enable Reading(读权限) 查行情、查余额、查订单 极低 必勾
Enable Spot & Margin Trading(现货+杠杆交易) 下单、撤单 中(最多被刷单亏) 按需
Enable Futures(合约交易) 合约下单、调杠杆 中高(杠杆放大亏损) 按需
Enable Withdrawals(提币) 链上提币到指定地址 极高(直接搬走) 几乎不勾
Permits Universal Transfer(账户互转) 现货/合约/资金账户之间划转 按需

读权限默认就有不需要勾。现货和合约权限按你程序用途勾。提币权限只在万不得已时勾,且必须勾完之后绑定提币地址(这一步在白名单里做,不在 API Key 设置里)。

第 1 步:创建 API Key

[API 管理] 入口在 [账户中心] → [API 管理],App 也在同样路径。点 [创建 API] → 选 [System generated] 或 [Self-generated]:

类型 区别 推荐场景
System generated(系统生成) 币安生成 secret,你只能看一次 99% 场景
Self-generated(自签名) 用 Ed25519/RSA 公钥,secret 永远不上传 高安全场景

普通用户选 [System generated] 就够。给 Key 起名(30 字内,例 bot-spot-grid-arb),点 [创建]。系统会要求 2FA 码 + 邮箱验证码 + 短信验证码(如果绑了),三码全过才会生成。

生成完会显示 API Key(公钥,64 位)和 Secret Key(私钥,64 位)。Secret Key 只显示这一次,关掉页面就再也看不到了。立刻复制 Secret 存到密码管理器或加密笔记里,丢了只能删 Key 重创。

第 2 步:勾权限

新创建的 Key 默认只有读权限。要开交易权限要点 [Edit restrictions] → 勾选对应权限 → 输 2FA 码确认。每次改权限都会触发一次 2FA + 邮件验证。

我们这次的 5 个 Key 配置:

Key 名 用途 权限 IP 限制
bot-spot-grid 现货网格机器人 读 + 现货交易 限定 1 个 IP
bot-futures-trend 合约趋势策略 读 + 合约交易 限定 1 个 IP
tax-export 报税导出工具 只读 限定 2 个 IP
dashboard-only 自己看监控面板 只读 不限(仅在家 WiFi 用)
manual-transfer 手动账户互转工具 读 + 账户互转 限定 1 个 IP

全部 5 个都没开提币权限。如果哪天泄露任何一个,最大损失也就是被对手刷单(但还要符合该 Key 的现货/合约权限),币本身搬不走。

第 3 步:绑 IP 白名单 — 关键一步

[Edit restrictions] 页面下方有 [Restrict access to trusted IPs only]。点开输入 IP 地址(多个用逗号分隔,最多 30 个)。

为什么必须绑 IP

  • API Key + Secret 即便泄露,盗用方的服务器 IP 也不在白名单里
  • 币安服务端会拒绝来自其他 IP 的所有请求,返回 -2015 错误
  • 等于多加一道『地理位置』层的认证

不绑 IP 的代价

  • 没有 IP 限制的 Key,币安会强制 90 天后自动失效(这是币安 2024 年起的硬规则)
  • 绑了 IP 的 Key 不会自动过期,可以长期使用

怎么找自己服务器的 IP

  • 自托管机器人:在那台机器上跑 curl ifconfig.me 看出口 IP
  • 云函数或 PaaS:看服务商提供的固定出口 IP(很多 PaaS 出口 IP 不固定,要单独配 NAT)
  • 家里跑:自己宽带的公网 IP(动态 IP 每天变会很麻烦,不推荐家用绑定)

如果你的程序部署在动态 IP 环境(例如家用宽带、移动办公),不绑 IP 会强制 90 天失效,绑了又会因为 IP 变动失败。这种情况要么上 VPS(固定 IP),要么换内网穿透方案。

我们这次 5 个 Key 里 4 个都绑了 IP,剩下的 [dashboard-only] 那个因为只读用途,权限本身就低,没绑也安全。

第 4 步:测试 Key 是否工作

创建完用 curl 测试:

curl -H "X-MBX-APIKEY: 你的API Key" \
  https://api.binance.com/api/v3/account?timestamp=1234567890&signature=xxx

如果返回账户信息,Key 工作正常。如果返回:

错误码 含义 处理
-2014 API Key 无效 检查 Key 是否复制完整,是否有空格
-2015 IP 不在白名单 检查当前出口 IP,加进白名单
-1022 签名错误 检查 Secret Key 和签名算法
-1021 时间戳超出窗口 服务器时间不同步,校时
-2010 没有这个权限 该 Key 没勾对应权限,去 [Edit] 加
-4007 提币地址不在白名单 提币 API 才会遇到,加白名单

最常踩的是 -2015 IP 不在白名单,因为很多人不知道自己的真实出口 IP(例如用了 VPN、用了 Cloudflare、用了某些公司网络)。打开 币安官方App 里的 [API 管理] 也可以看到 [最后访问 IP],对比和你以为的 IP 是否一致。

第 5 步:定期审查 + 轮换

每 90 天做一次 API Key 体检:

1. 列出所有 Key: [API 管理] 主页能看到全部 Key 列表,每个 Key 的创建时间、最后访问时间、权限、IP 限制都一目了然。

2. 找出可疑的 Key

  • 已经不知道是给哪个程序用的 → 删
  • 30 天没有 [最后访问] 记录的 → 删
  • 没绑 IP 的 → 加 IP 或删
  • 权限超出实际需要的 → 改权限到最小

3. 主动轮换: 重要 Key(接触大额资产的)建议每 90 天主动重创一次:删旧 Key → 创新 Key → 更新到程序里 → 验证工作 → 完成。这个过程会让程序短暂下线 1-5 分钟,要选低活跃时段做。

4. 删除前的检查: 删除 API Key 立刻生效不可恢复。删之前确认:

  • 这个 Key 不在任何运行中的程序里被引用
  • 这个 Key 不在任何 cron job、定时任务里
  • Git 仓库的 .env、配置文件里没残留(这些应该早就在 .gitignore 但要再确认)

API Key 泄露应急

如果发现 Key 可能泄露(例如不小心 push 到了公开 Git 仓库),立刻:

  1. 第一秒:在 [API 管理] 删除这个 Key
  2. 第二秒:检查这个 Key 之前 24 小时的所有交易记录,看是否有可疑订单
  3. 第三秒:如果开过提币权限,检查是否有可疑提币(应该被白名单拦了,但还是看一下)
  4. 第四秒:改账号密码 + 重置 2FA(即便没证据其他凭据也泄露,全部清洗一遍)
  5. 后续:如果 Git 仓库已 push,光删 Key 不够,还要把 Git 历史里的 secret 用 git filter-branch 或 BFG 工具删掉,否则有人能从 commit 历史里翻出来

GitHub 和 GitLab 都有自动扫描 secret 的服务,币安 API Secret 一旦被推到公开仓库,币安会在几小时内收到平台通知主动作废这个 Key,但这只是兜底,不能依赖这个

第三方平台用 API Key 的坑

很多第三方策略平台、报税工具、组合管理工具都让你填 API Key。原则:

第三方类型 应该给什么权限 红旗信号
报税导出工具 只读 要你开提币权限 →
组合监控面板 只读 要你开交易权限 → 想想清楚
跟单 / 信号 / 策略平台 读 + 现货/合约 交易 要你开提币权限 → 绝对跑
杠杆代付 / 借贷工具 不要碰这种,绕开 任何要提币的都跑

红线:如果一个第三方工具理直气壮要你开提币权限,99% 是想走人。报税、监控、跟单都不需要提币权限,他们只需要读、最多加交易权限。

我们这次给一家做合约跟单的平台开了 [读 + 合约交易],他们要求开 [提币] 我们拒绝,他们也接受了——说明这个权限本来就是可选的,他们要是必须就走人。

常见问答

Q:API Key 和 Secret Key 哪个更敏感? A:Secret Key 更敏感。API Key 只是用户标识可以告诉他人,Secret Key 是签名密钥,泄露等于全部权限被盗用。Secret 永远不要写进任何邮件、聊天、Issue。

Q:如何安全保存 API Key 和 Secret? A:本地用 1Password / Bitwarden / KeePass 这种密码管理器;服务器用环境变量 + Docker secrets 或 K8s Secret,不要硬编码在代码里。Git 仓库一定有 .env in .gitignore

Q:从币安获取 API Key 之后我能改名吗? A:能改。[API 管理] → 找到 Key → [Edit restrictions] 里能改名。改名不影响 Key/Secret 本身,只是给你自己看的标签。

Q:API Key 数量上限是多少? A:单账号最多 30 个 API Key。一般用 5-10 个就够细分用途了,30 个是为大量子账户、量化团队设计的。

Q:Sub-Account(子账户)的 API 和主账户 API 有区别吗? A:有区别。子账户 API 只能操作子账户内的资产,不能动主账户。子账户之间也彼此隔离。子账户特别适合策略隔离 + 风险隔离,量化团队常用。

Q:API Key 有访问频率限制吗? A:有。币安所有接口都有 weight(权重)限制,简单接口 weight=1,复杂接口 weight=20。每个 IP 每分钟有 1200 weight 的总额度,超了返回 -1003 限流。读余额、查订单这种接口很轻,下单也轻;查所有 K 线、查所有币对会很快用完额度。

Q:API Key 删除后历史交易记录会丢吗? A:不会。交易记录、订单历史都属于账户层面,和具体哪个 Key 下的单无关。删 Key 只是停掉那个访问凭证,账户里的数据全部保留。

Q:白名单 IP 支持 IPv6 吗? A:支持。币安 API 白名单同时接受 IPv4 和 IPv6 地址,输入格式和正常一样。如果你的服务器既有 v4 也有 v6 出口,建议两个都加进来。

Q:API 自动 90 天失效是什么意思? A:没绑 IP 白名单的 API Key,币安会从创建之日起 90 天自动失效,需要重创。绑了 IP 的不会自动失效。币安官方公告里有这条规则,是 2024 年开始执行的,主要为了清理长期不维护的 Key。

向 AI 提问… Ctrl I