Skip to content

定期轮换 API key 是降低密钥泄露影响的安全最佳实践。OpenRouter 提供三步零停机轮换方案:① 通过 Management API 创建新 key(openRouter.apiKeys.create()),② 更新应用配置,③ 确认迁移完成后删除旧 key(openRouter.apiKeys.delete(hash))。BYOK 用户额外受益:OpenRouter key 与 provider key 解耦,可随时轮换前者而不触动 OpenAI/Anthropic 等 provider 凭证。

定期轮换 API key 是安全实践的基本要求。OpenRouter 的 Management API 支持不中断服务地程序化轮换密钥。

为什么要轮换 API Key?

  • 降低密钥泄露后的暴露窗口
  • 满足合规性对凭证管理的要求
  • 为审计提供干净的 key 使用记录
  • 撤销前员工或下线系统的访问权限

轮换策略

零停机轮换三步走:新建密钥 → 更新应用 → 删除旧密钥

在删除旧 key 之前,务必先确认新 key 在生产环境中已正常工作。

通过 Management API 轮换

需要先创建一个 Management API key(与普通 API key 不同)。

Step 1:新建密钥

typescript
import { OpenRouter } from '@openrouter/sdk';

const openRouter = new OpenRouter({
  apiKey: 'your-management-key',
});

const newKey = await openRouter.apiKeys.create({
  name: 'Production Key - Rotated 2025-01',
  limit: 1000,
});

console.log('New key created:', newKey.data.key);
console.log('Key hash:', newKey.data.hash);  // 保存这个 hash,删旧 key 时需要

保存返回的 hash,后续删除旧 key 时需要用到。

Step 2:更新应用

将新 API key 部署到你的应用中。可以通过以下方式:

  • 更新部署配置中的环境变量
  • 在 secrets manager(AWS Secrets Manager、HashiCorp Vault 等)中轮换 secret
  • 更新 CI/CD 流水线变量

两个 key 在过渡期内同时有效,可以逐步灰度切换,不会造成服务中断。

Step 3:删除旧密钥

确认所有应用都已切换到新 key 后,删除旧 key:

typescript
import { OpenRouter } from '@openrouter/sdk';

const openRouter = new OpenRouter({
  apiKey: 'your-management-key',
});

const oldKeyHash = 'hash-of-old-key';
await openRouter.apiKeys.delete(oldKeyHash);

console.log('Old key deleted successfully');

BYOK 用户的额外优势

使用 BYOK(Bring Your Own Key) 时,可以随时轮换 OpenRouter key,完全不需要动 provider key

原因:provider API key(OpenAI、Anthropic、Google 等)绑定到你的 OpenRouter 账号,而不是具体的 API key。这意味着:

  • 独立轮换:OpenRouter key 按需频繁轮换,provider key 保持稳定
  • 降低复杂度:不需要同时在多个 AI provider 处轮换凭证
  • 统一管理:所有 provider key 在 OpenRouter 集成设置中统一维护

最佳实践

  • key 命名包含日期:如 Production Key - Rotated 2025-01,方便追踪
  • 迁移前监控用量:在 Activity 页面确认流量已切换到新 key 后再删除旧 key
  • 设置消费限额:给新 key 设置 limit 参数,防止意外超支
  • 建立轮换计划:制定固定周期(如每季度)的轮换流程并执行
  • 先在 staging 验证:正式轮换前先在非生产环境走一遍流程

常见问题

Q: 轮换过程中会中断服务吗?

A: 不会。两个 key 在过渡期内同时有效。建议先在少量流量上验证新 key 正常,再切换全量,最后删除旧 key。

Q: Management API key 和普通 API key 有什么区别?

A: Management API key 专门用于管理其他 API key(创建、查询、删除);普通 API key 用于调用模型。两者分开管理,互不干扰。

Q: 可以通过代码自动化整个轮换流程吗?

A: 可以。三步操作(create、deploy、delete)都有 SDK 支持,可以集成到 CI/CD 流水线或定时任务中实现自动轮换。