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단계: 새 키 생성
키 관리 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
}'
import requests
response = requests.post(
"https://api.arouter.ai/v1/keys",
headers={"Authorization": "Bearer lr_live_xxxx"},
json={
"name": "production-v2",
"allowed_providers": ["openai", "anthropic", "google"],
"spending_limit": 500.00,
},
)
new_key = response.json()["key"]
print(f"New key created: {new_key[:8]}...")
const response = await fetch("https://api.arouter.ai/v1/keys", {
method: "POST",
headers: {
Authorization: "Bearer lr_live_xxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "production-v2",
allowed_providers: ["openai", "anthropic", "google"],
spending_limit: 500.0,
}),
});
const { key } = await response.json();
console.log(`New key: ${key.substring(0, 8)}...`);
반환된 키 값을 즉시 저장하세요 — 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"
from openai import OpenAI
# 새 키로 테스트
client = OpenAI(
base_url="https://api.arouter.ai/v1",
api_key="lr_live_new_key_here",
)
response = client.chat.completions.create(
model="openai/gpt-5.4",
messages=[{"role": "user", "content": "ping"}],
max_tokens=5,
)
print("New key verified:", response.choices[0].message.content)
ARouter 대시보드를 확인하여 새 키에 요청이 나타나는지 확인합니다.
4단계: 이전 키 삭제
새 키 정상 작동이 확인되면 이전 키 ID를 사용하여 삭제합니다:
curl -X DELETE https://api.arouter.ai/v1/keys/key_oldid \
-H "Authorization: Bearer lr_live_new_key_here"
import requests
requests.delete(
"https://api.arouter.ai/v1/keys/key_oldid",
headers={"Authorization": "Bearer lr_live_new_key_here"},
)
print("Old key deleted")
자동 교체
높은 보안이 필요한 환경에서는 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를 확인하세요.