API 密钥的工作方式

密钥的生成、撤销、IP 白名单、轮换实践。

# API 密钥的工作方式

# 生成

每个密钥在 API 密钥 页面创建。生成时可选:

  • 名称:自己看的标签(如 “production-mac”、“laptop-dev”)
  • IP 白名单(可选):限定只能从这些 IP 调用
  • 过期时间(可选):到期自动停用
注意

密钥明文只在创建时显示一次。关闭弹窗后服务端只保留 SHA-256 哈希。请立刻复制到密码管理器。

# 形式

sk-rf-{24 字符 base62}

例如 sk-rf-aBcD3fGhIjK7lMnOpQrStUvW。前缀固定 sk-rf-,方便代码扫描器识别。

# 撤销

在 API 密钥 页面点「停用」 → 服务端立即生效(Redis cache 30s 内传播完毕),后续请求会得到 401。

密钥泄露怎么办:

  1. 立即在 UI 上停用泄露的密钥
  2. 新建一个替换
  3. 更新所有客户端 / CI 配置使用新密钥
  4. 如确认被盗用且产生异常账单,联系 客服 协商

# 轮换实践

生产环境推荐:

  • 每 90 天轮换一次:新建密钥 → 推到所有客户端 → 旧密钥停用
  • 不同环境用不同密钥:prod / staging / dev 各一份,单独审计
  • 不要 commit 到 git:用环境变量或 secret manager

# IP 白名单

限定调用源 IP 段。适合:

  • 固定办公网络出口 IP
  • 云函数 / k8s pod 出口 IP

格式支持单 IP / CIDR / 多段(逗号分隔)。

提示

家庭宽带 IP 经常变化 → 不要给个人开发密钥设白名单。建议只在生产 / CI 环境用。

# 多密钥实践

一个账户没有密钥数量上限。建议为不同用途新建独立密钥:

  • 每个项目一把
  • 每台机器一把
  • 测试与生产分开

这样泄露 / 轮换的影响面最小,账单也好分摊。