Ana içeriğe geç

Secrets ve Configs Yonetimi

Bu sayfa, Docker Swarm icinde gizli bilgi ile normal konfigurasyonun nasil ayrilacagini tanimlar.

Temel Kural

Her runtime deger ayni sinifa ait degildir.

Iki ana aile:

  • secret -> sizdirilmamasi gereken degerler
  • config -> servis davranisini belirleyen ama gizli olmayan degerler

Secret Ornekleri

  • database password
  • JWT signing secret
  • Kafka auth bilgileri
  • SMTP/API provider credential'lari
  • FTP/FOTA credential'lari
  • OAuth client secret'lari

Config Ornekleri

  • topic isimleri
  • timeout ve retry ayarlari
  • feature flag'ler
  • environment bazli endpoint adresleri
  • threshold ve operational tuning parametreleri

Neden Ayrim Onemli?

Bu ayrim sayesinde:

  • hassas bilgi log ve config dump'larina daha az karisir
  • rollout sirasinda neyin rotate edilmesi gerektigi netlesir
  • servis davranisi degisen config ile credential rotation ayni islem gibi ele alinmaz

Onerilen Prensipler

  1. Secret'lar image icine gomulmez.
  2. Config ile secret ayni dosyada tutulmaz.
  3. Secret rotation icin yeniden deploy etkisi onceden bilinir.
  4. Servis dokumanlarinda hangi secret/config'e ihtiyac oldugu deployment contract olarak yazilir.
  5. Production ve staging environment ayrimi secret/config seviyesinde net olur.

Deployment Contract Acisindan

Her servis icin en az su tablo gelecekte yazilmalidir:

  • gerekli secret'lar
  • gerekli config'ler
  • opsiyonel config'ler
  • default fallback davranisi var mi yok mu

Bu model, deployment dokumani ile servis dokumanini birbirine baglayan kritik noktadir.