Hogyan forgassak (rotáljak) API-kulcsot?

Utolsó frissítés: 3 hónappal ezelőtt

Az API-kulcsok rendszeres rotálása fontos biztonsági gyakorlat. Így tudod biztonságosan rotálni a kulcsaidat anélkül, hogy megzavarnád a szolgáltatásodat.

Miért rotálj API-kulcsokat?

  • Biztonsági alapelv: Korlátozza az expozíciót, ha egy kulcs valaha kompromittálódik

  • Csapatváltozások: Amikor fejlesztők kilépnek vagy szerepkört váltanak

  • Gyanús kompromittálódás: Ha úgy gondolod, hogy egy kulcs nyilvánosságra kerülhetett

  • Megfelelőség (compliance): Egyes biztonsági irányelvek időszakos kulcsrotálást írnak elő

  • Környezetváltás: Amikor infrastruktúrát migrálsz vagy refaktorálsz

Szokásos rotálási folyamat (kiesés nélkül)

1. lépés: Hozz létre egy új kulcsot

  1. Lépj be a Beállítások → API menüpontba

  2. Kattints a "Új API-kulcs létrehozása" gombra

  3. Adj neki leíró nevet (pl. "Production Web v2")

  4. Másold ki az új kulcsot azonnal – csak egyszer jelenik meg

  5. Tárold biztonságosan

2. lépés: Frissítsd az alkalmazásodat

  • Telepítsd az új kulcsot az alkalmazásodba (környezeti változók, secrets manager stb.)

  • Indítsd újra az alkalmazásodat, hogy betöltse az új kulcsot

  • Ellenőrizd, hogy az új kulcs megfelelően működik

  • Figyeld az esetleges hibákat

3. lépés: Kövesd átmenetet

  • Ideiglenesen tartsd mindkét kulcsot aktívan

  • Nézd meg a Beállítások → API oldalon a "Last used" (Legutóbb használt) dátumokat

  • Várj, amíg a régi kulcsnál nem látszik legutóbbi aktivitás

  • Győződj meg róla, hogy minden példány/szolgáltatás az új kulcsra váltott

4. lépés: Töröld a régi kulcsot

  • Miután megerősítetted, hogy a régi kulcs már nincs használatban

  • Töröld vagy deaktiváld a régi kulcsot a Beállítások → API menüpontban

  • Dokumentáld a rotálást a nyilvántartásaidhoz

Gyors rotálási folyamat (ha kompromittálódott)

Ha egy kulcs biztosan kompromittálódott, és azonnal lépned kell:

  1. Töröld először a kompromittált kulcsot a Beállítások → API menüpontban

  2. Hozz létre egy új, helyettesítő kulcsot

  3. Gyorsan telepítsd az új kulcsot az összes alkalmazásba

  4. Fogadj el rövid kiesést a jogosulatlan hozzáférés megelőzéséhez

  5. Figyeld a használati naplókat bármilyen gyanús tevékenység miatt

  6. Ha szükséges, vedd fel a kapcsolatot a támogatással

Több környezetre kiterjedő rotálási stratégia

Termelési (production) rendszereknél alkalmazz fázisolt megközelítést:

1. hét: Fejlesztés (Development)

  • Hozz létre és telepítsd az új kulcsot a dev környezetbe

  • Teszteld alaposan

2. hét: Staging

  • Telepítsd az új kulcsot a staging környezetbe

  • Futtass integrációs teszteket

  • Figyeld a problémákat

3. hét: Termelés (Production)

  • Telepítsd az új kulcsot a production környezetbe alacsony forgalmú időszakban

  • Figyeld szorosan

  • Tartsd a régi kulcsot aktívan 24–48 óráig visszaesési (fallback) lehetőségként

4. hét: Takarítás (Cleanup)

  • Ellenőrizd, hogy a régi kulcsnál nincs aktivitás

  • Töröld a régi kulcsot

  • Frissítsd a dokumentációt

Automatizálási példa

Szkript, amely segít ellenőrizni, hogy a kulcsrotálás teljes:

#!/bin/bash
# check-api-key.sh
OLD_KEY="sk_live_OLD123..."
NEW_KEY="sk_live_NEW789..."
echo "Testing old key..."
OLD_RESPONSE=$(curl -s -w "%{http_code}" -X POST https://api.cathopic.com/resources \
  -H "x-api-key: $OLD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"test","page":1,"page_size":1}')
echo "Testing new key..."
NEW_RESPONSE=$(curl -s -w "%{http_code}" -X POST https://api.cathopic.com/resources \
  -H "x-api-key: $NEW_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"test","page":1,"page_size":1}')
echo "Old key status: ${OLD_RESPONSE: -3}"
echo "New key status: ${NEW_RESPONSE: -3}"
if [ "${NEW_RESPONSE: -3}" == "200" ]; then
  echo "✅ New key is working!"
else
  echo "❌ New key failed!"
fi

Legjobb gyakorlatok

  • Rotáld rendszeresen: Minden 90 napban a production kulcsoknál

  • Dokumentáld a rotálásokat: Vezess naplót arról, mikor rotáltad a kulcsokat és miért

  • Tesztelj törlés előtt: Mindig ellenőrizd, hogy az új kulcs működik, mielőtt eltávolítanád a régit

  • Használj több kulcsot: Környezetenként külön kulcsokkal könnyebb a rotálás

  • Automatizálj, ahol lehetséges: Használj secrets management eszközöket, amelyek támogatják az automatikus rotálást

Rotálás utáni ellenőrzőlista

A rotálás után erősítsd meg ezeket:

  • ✅ Minden production példány az új kulcsot használja

  • ✅ Minden staging/dev környezet frissítve van (ha ugyanazt a kulcsot használod)

  • ✅ A környezeti változók frissítve vannak

  • ✅ A CI/CD secrets frissítve vannak

  • ✅ A dokumentáció frissítve van

  • ✅ A csapattagok értesítve lettek

  • ✅ A régi kulcs törölve lett

  • ✅ A rotálás naplózva van audit célokra

Hasznos volt ez a cikk?