메인 콘텐츠로 건너뛰기
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-04, production-v3)
  • 소비 한도 설정 — 항상 프로덕션 키에 spending_limit을 설정하여 위험 노출을 제한
  • 환경별 별도 키 사용 — 프로덕션과 스테이징 환경 간에 키를 공유하지 않기
  • 정기적으로 감사 — 매월 키 목록을 검토하고 사용하지 않는 키 삭제
  • 시크릿 매니저에 키 저장 — 버전 관리의 .env 파일이 아닌 AWS Secrets Manager, HashiCorp Vault 또는 동등한 도구 사용
전체 키 관리 가이드는 키 관리를, 전체 API 참조는 키 관리 API를 확인하세요.