Bezpieczne używanie tokenów API
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.
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 Actionsepulzio_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
| Środowisko | Zalecany sposób |
|---|---|
| Lokalne CLI | Plik ~/.config/epulzio/token z prawami chmod 600 (czyta tylko Twój użytkownik) |
| Docker | Docker secret lub --env-file (nie na sztywno przez ENV w Dockerfile) |
| Kubernetes | Obiekt Secret zamontowany jako zmienna środowiskowa lub plik |
| GitHub Actions | Settings -> 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.