Przejdź do treści

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

Powiązane hasła