メインコンテンツへスキップ
API Key を定期的にローテーションすることで、漏洩した場合の影響範囲を最小化し、多くのセキュリティコンプライアンス要件を満たすことができます。ARouter のキー管理 API はゼロダウンタイムでのローテーションをサポートしています。

ローテーション戦略

最も安全なローテーションパターンは作成してから削除です:
  1. 古いキーと同じ権限で新しいキーを作成する
  2. アプリケーションに新しいキーをデプロイする
  3. 新しいキーが正常に動作することを確認する
  4. 古いキーを削除する
これにより、新しいキーの動作が確認されるまで古いキーでトラフィックが継続するため、ダウンタイムが発生しません。

ステップ 1:新しいキーを作成する

キー管理 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 は作成時に一度だけ完全なキーを返します。

ステップ 2:アプリケーションを更新する

デプロイ環境の AROUTER_API_KEY 環境変数(または対応するシークレット)を更新します:
# .env ファイルの例
AROUTER_API_KEY=lr_live_new_key_here

# Kubernetes シークレットを更新する例
kubectl create secret generic arouter-credentials \
  --from-literal=api-key=lr_live_new_key_here \
  --dry-run=client -o yaml | kubectl apply -f -
新しいキーを反映するために、アプリケーションを再デプロイまたは再起動します。

ステップ 3:新しいキーを確認する

古いキーを削除する前に、新しいキーが正常に動作することを確認します:
curl https://api.arouter.ai/v1/models \
  -H "Authorization: Bearer lr_live_new_key_here"
ARouter ダッシュボード を確認して、リクエストが新しいキーに表示されていることを確認します。

ステップ 4:古いキーを削除する

新しいキーの動作が確認されたら、古いキーの 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 を設定してリスク露出を抑える
  • 環境ごとに別々のキーを使用する — 本番環境とステージング環境でキーを共有しない
  • 定期的に監査する — 毎月キーのリストを確認し、使用されていないキーを削除する
  • キーをシークレットマネージャーに保存する — バージョン管理の .env ファイルではなく、AWS Secrets Manager、HashiCorp Vault または同等のツールを使用する
完全なキー管理ガイドについては キー管理 を、完全な API リファレンスについてはキー管理 API を参照してください。