Pomoc i poradnikiBezpieczeństwo konta › Bezpieczne używanie tokenów API

Bezpieczne używanie tokenów API

3 min czytania · Bezpieczeństwo konta

Token API to klucz, który daje pełny programowy dostęp do Twojego konta przez REST API. Jeśli wycieknie, atakujący może zrobić to samo co Ty. Poniższe zalecenia zmniejszają ryzyko, że Ci się to przytrafi.

Traktuj token jak hasło

  • Nigdy nie wklejaj tokenu do publicznych repozytoriów (GitHub, GitLab).
  • Nie przesyłaj tokenu przez Discord, Slack ani e-mail podczas rozwiązywania problemów.
  • Token przechowuj w zmiennej środowiskowej lub w menedżerze sekretów (HashiCorp Vault, AWS SSM Parameter Store, Doppler i podobne).
  • W pipeline CI/CD (zautomatyzowanym systemie build/deploy) używaj funkcji "masked secret", aby token nie pojawiał się w logach w czytelnej postaci.
Lista tokenów API z czasem ostatniego użycia
Przy każdym tokenie widzisz czas ostatniego użycia - pomoc przy rotacji i wykrywaniu nieoczekiwanej aktywności.

Rotacja tokenów

W każdej z poniższych sytuacji natychmiast unieważnij stary token i wygeneruj nowy:

  • Pracownik, który miał dostęp, odchodzi.
  • W panelu przy każdym tokenie zobaczysz znacznik czasu Ostatnie użycie - jeśli zauważysz aktywność, której się nie spodziewałeś, natychmiast unieważnij token.
  • Co najmniej raz na 90 dni jako rutynowa higiena, nawet jeśli nic się nie wydarzyło.

Jeden token = jeden cel

Nie umieszczaj tego samego tokenu w pięciu różnych skryptach. Utwórz osobny token dla każdej integracji:

  • epulzio_xxxxxxxxxxxxxxxx - tylko do wdrożeń przez GitHub Actions
  • epulzio_xxxxxxxxxxxxxxxx - tylko do Terraform lub Pulumi (narzędzia do zarządzania infrastrukturą)
  • epulzio_xxxxxxxxxxxxxxxx - dla panelu Grafana pobierającego metryki

Jeśli jeden token wycieknie, unieważnisz tylko ten konkretny, a pozostałe integracje działają dalej.

Gdzie bezpiecznie przechowywać token

ŚrodowiskoZalecany sposób
Lokalne CLIPlik ~/.config/epulzio/token z prawami chmod 600 (czyta tylko Twój użytkownik)
DockerDocker secret lub --env-file (nie na sztywno przez ENV w Dockerfile)
KubernetesObiekt Secret zamontowany jako zmienna środowiskowa lub plik
GitHub ActionsSettings -> Secrets -> EPULZIO_TOKEN
Funkcje w chmurze (AWS Lambda, GCP Functions)AWS SSM Parameter Store lub Google Secret Manager

Token a sekret podpisu dla webhooków

Do weryfikacji przychodzących webhooków (powiadomień, które Ci wysyłamy) używaj osobnego sekretu podpisu (HMAC signing secret), a nie tokenu API. To dwie różne rzeczy. Szczegóły znajdziesz w artykule Generowanie tokenu API.

Czy ten poradnik był pomocny?