Know-How
API Key Management — správa API klíčů
API klíče jsou nejjednodušší forma autentizace — a nejčastěji kompromitovaná. Klíče v GitHubu, ve frontendu, bez expirace.
Generování
import secrets, hashlib
def generate_api_key(prefix="sk"):
raw = secrets.token_urlsafe(32)
full = f"{prefix}_{raw}"
hash = hashlib.sha256(full.encode()).hexdigest()
return full, hash # full → uživateli JEDNOU, hash → do DB
Ukládání
# ❌ API_KEY = "sk_live_abc123" # V kódu!
# ✅ os.environ['STRIPE_API_KEY']
# ✅ Secret manager (Vault, AWS SM, Azure KV)
Best practices
- Hashujte klíče v DB (SHA-256)
- Prefix pro rozlišení (sk_live_, sk_test_)
- Expirace a rotace
- Scope — minimální oprávnění per klíč
- Pre-commit hooks (gitleaks, truffleHog)
Klíčový takeaway
API klíče hashujte, rotujte, omezujte scope. Nikdy necommitujte do Gitu.