Лучшие практики
Безопасность
Защитите ваши API-ключи, данные и пользователей. Паттерны продакшен-уровня для управления ключами, ротации, контроля доступа и мониторинга.
Управление API-ключами
- Никогда не жёстко кодируйте ключи — используйте переменные окружения или менеджер секретов (AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault)
- Никогда не коммитьте ключи в git — добавьте
.envв.gitignore. Используйтеgit-secretsилиtruffleHogдля сканирования истории репозитория - Используйте отдельные ключи для каждого окружения — ключи разработки / staging / продакшен независимы. Если ключ разработки скомпрометирован, продакшен не пострадает
- Ограничивайте область каждого ключа — ограничивайте доступ к моделям, устанавливайте лимиты расходов и белый список IP для каждого ключа при создании
Ротация ключей
Ротируйте API-ключи каждые 90 дней. Вот безопасная процедура ротации с валидацией:
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)Ваш бэкенд проверяет сессию пользователя, затем перенаправляет AI-запрос с серверным API-ключом. Клиент никогда не видит ключ.
Белый список IP
Ограничьте каждый API-ключ конкретными IP-адресами или CIDR-диапазонами. Даже если ключ утечёт, он бесполезен из неавторизованных сетей. Настройте в Панели управления → API-ключи → Редактировать → Белый список IP. Для продакшен-ключей добавьте в белый список только исходящие IP ваших бэкенд-серверов.
Включите MFA
Защитите вашу учётную запись в панели управления TokSpan с помощью многофакторной аутентификации. Доступно через TOTP-приложения (Google Authenticator, Authy, 1Password). Включите в Панель управления → Настройки → Безопасность → MFA.
Аудит и мониторинг
Ведите журнал использования ключей для обнаружения аномалий:
# 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 и снизьте лимит расходов на новом ключе