ベストプラクティス
セキュリティ
APIキー、データ、ユーザーを保護します。キー管理、ローテーション、アクセス制御、監視のための本番グレードのパターン。
APIキー管理
- キーをハードコードしないでください — 環境変数またはシークレットマネージャー(AWS Secrets Manager、GCP Secret Manager、HashiCorp Vault)を使用してください
- キーをGitにコミットしないでください —
.envを.gitignoreに追加してください。git-secretsまたはtruffleHogでリポジトリ履歴をスキャンしてください - 環境ごとに個別のキーを使用してください — 開発/ステージング/本番キーは独立しています。開発キーが漏洩しても本番には影響しません
- すべてのキーにスコープを設定してください — モデルアクセスを制限し、利用上限を設定し、作成時にすべてのキーをIPホワイトリストに登録してください
キーローテーション
APIキーは 90日 ごとにローテーションしてください。以下は検証付きの安全なローテーション手順です:
python
import os
import requests
# Step 1: Create new key via Dashboard or API
NEW_KEY = "sk-new-key-from-dashboard"
# Step 2: Update environment (do this atomically with your deploy)
# In production, use a secrets manager: AWS Secrets Manager, GCP Secret Manager, or Vault
os.environ["TOKSPAN_API_KEY"] = NEW_KEY
# Step 3: Verify new key works
response = requests.post(
"https://api.tokspan.com/v1/chat/completions",
headers={"Authorization": f"Bearer {NEW_KEY}"},
json={"model": "gpt-4o", "messages": [{"role": "user", "content": "ping"}]},
timeout=10,
)
assert response.status_code == 200, f"New key validation failed: {response.status_code}"
# Step 4: Revoke old key in Dashboard → API Keys
# Only do this AFTER confirming new key works in production
print("New key validated. Revoke old key in Dashboard now.")バックエンドプロキシ(ブラウザ/モバイルで必須)
クライアントサイドコードから直接TokSpanを呼び出さないでください。 ブラウザやモバイルアプリで公開されたAPIキーは誰でも抽出できます。常にバックエンド経由でルーティングしてください:
Browser App → Your Backend API → TokSpan API
↑
API key lives here
(never reaches the client)バックエンドがユーザーのセッションを検証し、サーバーサイドのAPIキーでAIリクエストを転送します。クライアントがキーを目にすることはありません。
IPホワイトリスト
各APIキーを特定のIPアドレスまたはCIDR範囲に制限します。キーが漏洩しても、許可されていないネットワークからは使用できません。ダッシュボード → APIキー → 編集 → IPホワイトリスト で設定してください。本番キーについては、バックエンドサーバーの送信IPのみをホワイトリストに登録してください。
MFAの有効化
TokSpanダッシュボードアカウントを 多要素認証(MFA) で保護します。TOTP認証アプリ(Google Authenticator、Authy、1Password)で利用可能です。ダッシュボード → 設定 → セキュリティ → MFA で有効にしてください。
監査と監視
異常検知のためにキー使用量をログに記録します:
python
# Monitor API key usage via response headers
import logging
def audit_request(response, key_name):
usage = response.json().get("usage", {})
logging.info(f"[{key_name}] model={response.json()['model']} "
f"tokens={usage.get('total_tokens', 0)} "
f"remaining_rpm={response.headers.get('x-ratelimit-remaining-requests', '?')}")ダッシュボードで、キーごとに アクティビティログ を定期的に確認してください。確認すべき項目:予期しないモデル使用、トークンの急増、不明なIPからのリクエスト、通常と異なる時間帯の使用。
キーが漏洩した場合
- 直ちに失効させてください — ダッシュボード → APIキー → 失効(60秒以内に反映)
- 新しいキーを生成してください — アプリケーションを更新してください
- 古いキーのログを監査してください — 削除前に不正使用がないか確認してください
- 漏洩経路を調査してください — Git履歴、CIログ、エラーメッセージ、クライアントサイドコードを確認してください
- スコープを強化してください — 交換用キーにIPホワイトリストを追加し、利用上限を引き下げてください
失われたキーは復元できません。 TokSpanはAPIキーを作成時に一度だけ表示します。暗号化されたハッシュのみを保存しています。キーを紛失した場合は、失効させて新しいキーを生成してください。