Regularna rotacja kluczy API to ważna praktyka bezpieczeństwa. Oto jak bezpiecznie rotować klucze, nie zakłócając działania usługi.
Dlaczego rotować klucze API?
Dobra praktyka bezpieczeństwa: Ogranicza narażenie, jeśli klucz kiedykolwiek zostanie naruszony
Zmiany w zespole: Gdy deweloperzy odchodzą lub zmieniają role
Podejrzenie naruszenia: Jeśli uważasz, że klucz mógł zostać ujawniony
Zgodność: Niektóre polityki bezpieczeństwa wymagają okresowej rotacji kluczy
Zmiany środowiska: Gdy przenosisz infrastrukturę lub dokonujesz refaktoryzacji
Standardowy proces rotacji (bez przestojów)
Krok 1: Utwórz nowy klucz
Zaloguj się do Ustawienia → API
Kliknij "Utwórz nowy klucz API"
Nazwij go opisowo (np. "Production Web v2")
Skopiuj nowy klucz od razu — jest wyświetlany tylko raz
Zabezpiecz go
Krok 2: Zaktualizuj swoją aplikację
Wdróż nowy klucz do swojej aplikacji (zmienne środowiskowe, menedżer sekretów itp.)
Uruchom ponownie aplikację, aby załadować nowy klucz
Zweryfikuj, że nowy klucz działa poprawnie
Monitoruj wszelkie błędy
Krok 3: Monitoruj przejście
Przez pewien czas utrzymuj aktywne oba klucze
Sprawdź Ustawienia → API, aby zobaczyć daty „Ostatnio użyty”
Poczekaj, aż stary klucz nie będzie wykazywał ostatniej aktywności
Upewnij się, że wszystkie instancje/usługi przełączyły się na nowy klucz
Krok 4: Usuń stary klucz
Gdy potwierdzisz, że stary klucz nie jest już używany
Usuń lub dezaktywuj stary klucz w Ustawienia → API
Zapisz rotację w dokumentacji dla swoich rejestrów
Szybki proces rotacji (jeśli klucz został naruszony)
Jeśli klucz jest na pewno naruszony i musisz działać natychmiast:
Najpierw usuń naruszony klucz w Ustawienia → API
Utwórz nowy klucz zastępczy
Szybko wdroż nowy klucz we wszystkich aplikacjach
Akceptuj krótkie przestoje, aby zapobiec nieautoryzowanemu dostępowi
Monitoruj logi użycia pod kątem podejrzanej aktywności
W razie potrzeby skontaktuj się z wsparciem
Strategia rotacji dla wielu środowisk
Dla systemów produkcyjnych zastosuj podejście etapowe:
Tydzień 1: Development
Utwórz i wdroż nowy klucz do środowiska dev
Dokładnie przetestuj
Tydzień 2: Staging
Wdróż nowy klucz do środowiska staging
Uruchom testy integracyjne
Monitoruj pod kątem problemów
Tydzień 3: Produkcja
Wdróż nowy klucz do produkcji w czasie małego ruchu
Uważnie monitoruj
Utrzymuj stary klucz aktywny przez 24–48 godzin jako plan awaryjny
Tydzień 4: Czyszczenie
Sprawdź, że stary klucz nie wykazuje aktywności
Usuń stary klucz
Zaktualizuj dokumentację
Przykład automatyzacji
Skrypt pomocniczy do sprawdzenia, czy rotacja klucza została zakończona:
#!/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
Dobre praktyki
Rotuj regularnie: Co 90 dni dla kluczy produkcyjnych
Dokumentuj rotacje: Prowadź log, kiedy klucze były rotowane i dlaczego
Testuj przed usunięciem: Zawsze upewnij się, że nowy klucz działa, zanim usuniesz stary
Używaj wielu kluczy: Rozdzielenie kluczy per środowisko ułatwia rotację
Automatyzuj, gdy to możliwe: Korzystaj z narzędzi do zarządzania sekretami, które obsługują automatyczną rotację
Lista kontrolna po rotacji
Potwierdź te elementy po rotacji:
✅ Wszystkie instancje produkcyjne używają nowego klucza
✅ Wszystkie środowiska staging/dev zostały zaktualizowane (jeśli używasz tego samego klucza)
✅ Zmienne środowiskowe zostały zaktualizowane
✅ Sekrety CI/CD zostały zaktualizowane
✅ Dokumentacja została zaktualizowana
✅ Członkowie zespołu zostali powiadomieni
✅ Stary klucz został usunięty
✅ Rotacja została zapisana do celów audytu