跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.arouter.ai/llms.txt

Use this file to discover all available pages before exploring further.

定期轮换 API Key 可以降低密钥泄露的影响范围,并满足许多安全合规要求。ARouter 的密钥管理 API 支持零停机轮换。

轮换策略

最安全的轮换模式是先创建后删除
  1. 创建一个与旧密钥具有相同权限的新密钥
  2. 将新密钥部署到您的应用程序
  3. 验证新密钥是否正常工作
  4. 删除旧密钥
这样可以确保零停机——在确认新密钥正常工作之前,流量继续使用旧密钥。

第一步:创建新密钥

使用密钥管理 API 创建替换密钥:
curl -X POST https://api.arouter.ai/v1/keys \
  -H "Authorization: Bearer lr_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "production-v2",
    "allowed_providers": ["openai", "anthropic", "google"],
    "spending_limit": 500.00
  }'
请立即保存返回的密钥值 — ARouter 仅在创建时返回完整密钥一次。

第二步:更新您的应用程序

在部署环境中更新 AROUTER_API_KEY 环境变量(或对应的 Secret):
# 使用 .env 文件示例
AROUTER_API_KEY=lr_live_new_key_here

# 更新 Kubernetes secret 示例
kubectl create secret generic arouter-credentials \
  --from-literal=api-key=lr_live_new_key_here \
  --dry-run=client -o yaml | kubectl apply -f -
重新部署或重启应用程序以使新密钥生效。

第三步:验证新密钥

在删除旧密钥之前,确认新密钥正常工作:
curl https://api.arouter.ai/v1/models \
  -H "Authorization: Bearer lr_live_new_key_here"
检查 ARouter 控制台,确认请求已出现在新密钥下。

第四步:删除旧密钥

确认新密钥正常工作后,使用旧密钥 ID 将其删除:
curl -X DELETE https://api.arouter.ai/v1/keys/key_oldid \
  -H "Authorization: Bearer lr_live_new_key_here"

自动轮换

对于高安全性环境,可以使用 CI/CD 系统或密钥管理器按计划自动轮换:

GitHub Actions 示例

name: Rotate ARouter Key

on:
  schedule:
    - cron: '0 0 1 * *'  # 每月执行

jobs:
  rotate:
    runs-on: ubuntu-latest
    steps:
      - name: Create new key
        id: create
        run: |
          NEW_KEY=$(curl -s -X POST https://api.arouter.ai/v1/keys \
            -H "Authorization: Bearer ${{ secrets.AROUTER_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{"name": "production-auto-rotated"}' \
            | jq -r .key)
          echo "new_key=$NEW_KEY" >> $GITHUB_OUTPUT

      - name: Update secret
        uses: gliech/create-github-secret-action@v1
        with:
          name: AROUTER_API_KEY
          value: ${{ steps.create.outputs.new_key }}
          token: ${{ secrets.GH_TOKEN }}

列出活跃密钥

列出所有活跃密钥以审计当前使用情况:
curl https://api.arouter.ai/v1/keys \
  -H "Authorization: Bearer lr_live_xxxx"
响应:
{
  "data": [
    {
      "id": "key_abc123",
      "name": "production-v2",
      "created_at": "2025-01-15T10:00:00Z",
      "last_used_at": "2025-04-01T08:30:00Z",
      "spending_limit": 500.00
    },
    {
      "id": "key_def456",
      "name": "staging",
      "created_at": "2025-03-01T09:00:00Z",
      "last_used_at": "2025-04-01T07:15:00Z",
      "spending_limit": 50.00
    }
  ]
}

最佳实践

  • 定期轮换 — 对大多数应用程序而言,每月轮换是一个良好的基准
  • 疑似泄露后立即轮换 — 不要等到下次计划轮换
  • 使用描述性名称 — 在密钥名称中包含版本或日期(如 production-2025-04production-v3
  • 设置消费限额 — 始终为生产密钥配置 spending_limit 以控制风险敞口
  • 不同环境使用独立密钥 — 生产环境与预发布环境绝不共用同一密钥
  • 定期审计 — 每月检查密钥列表,删除不再使用的密钥
  • 将密钥存储在密钥管理器中 — 使用 AWS Secrets Manager、HashiCorp Vault 或同类工具,而非版本控制中的 .env 文件
完整密钥管理指南请参阅密钥管理,完整 API 参考请参阅密钥管理 API