Jak obrócić (rotować) klucz API?

Ostatnia aktualizacja: 3 miesiące temu

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

  1. Zaloguj się do Ustawienia → API

  2. Kliknij "Utwórz nowy klucz API"

  3. Nazwij go opisowo (np. "Production Web v2")

  4. Skopiuj nowy klucz od razu — jest wyświetlany tylko raz

  5. 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:

  1. Najpierw usuń naruszony klucz w Ustawienia → API

  2. Utwórz nowy klucz zastępczy

  3. Szybko wdroż nowy klucz we wszystkich aplikacjach

  4. Akceptuj krótkie przestoje, aby zapobiec nieautoryzowanemu dostępowi

  5. Monitoruj logi użycia pod kątem podejrzanej aktywności

  6. 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

Czy ten artykuł był pomocny?