Secrets management (zarządzanie sekretami)
Definicja
Secrets management to sposób bezpiecznego przechowywania i używania sekretów, np. kluczy API, tokenów dostępowych, haseł i certyfikatów.
Co to w zasadzie jest?
Sekret to klucz do drzwi. Nie wkładasz go do publicznego repo i nie wklejasz do promptu. Trzymasz go w sejfie, czyli w menedżerze sekretów.
Jeśli sekret wycieknie, ktoś może podszyć się pod Twoją aplikację albo wyciągnąć dane. To częsty problem bezpieczeństwa: klucz trafia do repo, logów albo historii gita.
Dobre zarządzanie sekretami oznacza proste zasady: sekrety są w dedykowanym miejscu, mają minimalne uprawnienia, są rotowane i monitorowane.
Praktyczne zastosowania (konkretne scenariusze)
Scenariusz 1: Klucze API w CI/CD
- Cel: bezpieczne uruchamianie automatyzacji.
- Wejście: klucz API potrzebny w pipeline.
- Kroki: zapisz w secrets managerze -> użyj jako zmiennej -> ukryj w logach.
- Rezultat: klucz nie trafia do kodu.
- Zabezpieczenie: rotacja i ograniczone uprawnienia.
Scenariusz 2: Oddzielenie środowisk
- Cel: ograniczenie skutków wycieku.
- Wejście: sekrety dla dev, test i prod.
- Kroki: rozdziel sekrety -> nadaj role -> monitoruj użycie.
- Rezultat: wyciek w dev nie daje dostępu do prod.
- Zabezpieczenie: least privilege.
Scenariusz 3: Skanowanie repo
- Cel: wykrycie przypadkowo dodanych sekretów.
- Wejście: kod i historia repo.
- Kroki: skan -> alert -> rotacja sekretu.
- Rezultat: szybsza reakcja na wyciek.
- Zabezpieczenie: blokady przed commitem.
Ryzyka i jak je ograniczać
Ryzyko 1: Wyciek klucza w repo lub logach
- Ryzyko: Wyciek klucza w repo lub logach.
- Jak ograniczać: skanuj sekrety, redaguj logi i rotuj klucze.
Ryzyko 2: Wklejenie sekretu do promptu
- Ryzyko: Wklejenie sekretu do promptu.
- Jak ograniczać: stosuj szkolenia, DLP i blokady wzorców.
Ryzyko 3: Za szerokie uprawnienia
- Ryzyko: Za szerokie uprawnienia.
- Jak ograniczać: ogranicz zakres, IP i czas ważności sekretu.
Checklista “zanim użyjesz”
- Czy sekret jest poza kodem?
- Czy ma minimalne uprawnienia?
- Czy jest rotowany?
- Czy użycie sekretu jest logowane?
- Czy pipeline ukrywa sekret w logach?
Diagram
flowchart LR
A[Secrets vault]
B[Aplikacja]
C[CI/CD]
D[Repo]
A --> B
A --> C
D -. nie przechowuje sekretów .-> A
Diagram pokazuje, że sekrety powinny trafiać do aplikacji i pipeline z sejfu, a nie z repozytorium.
Dalsza lektura
Miejsce w mapie
- Secrets management → chroni dostęp do: API
- Secrets management → wspiera: SSO / IAM
- Secrets management → powinien być monitorowany przez: Audit trail