TB
← Tüm yazılar

Secret rotation

Üretim sistemlerinde gizli bilgilerin otomatik ve kesintisiz rotasyonu icin mimari yaklasimlar, dual-credential gecisi ve operasyonel güvenilirlik tekniklerini inceliyoruz.

Secret rotation, veritabanı parolasi, API anahtari, TLS sertifikasi, imzalama anahtari ve encryption key gibi hassas credential'larin periyodik veya olay tetiklemeli olarak yenilenmesidir. Statik secret'lar zamanla sızıntı riski biriktirir; çalışan ayrilmasi, log sızıntisi veya vendor compromise sonrasi eski credential hala geçerli olabilir. Otomatik ve kesintisiz rotation, modern güvenlik olgunlugunun temel gereksinimlerinden biridir.

Rotation tetikleyicileri

  • Zaman bazli: DB parola 30 gun, API key 90 gun, TLS cert otomatik (cert-manager).
  • Olay bazli: Compromise suphesi, çalışan offboarding, vendor bildirimi.
  • Politika bazli: PCI-DSS, SOC2 periyodik rotation zorunlulugu.
  • Version bazli: Key rotation without credential change (KMS key re-wrap).

Zero-downtime rotation mimarisi

Kesintisiz rotation icin dual-credential donemi zorunludur. Asagidaki fazlar sirayla uygulanir:

  1. Yeni secret uretilir; eski secret hala aktif (overlap baslangici).
  2. Tüm consumer'lar (uygulama, CI, entegrasyon) yeni secret'a güncellenir.
  3. Dogruulama: yeni secret ile başarılı istek, eski secret hala calisiyor (fallback).
  4. Grace period sonunda eski secret iptal edilir.
  5. Audit: rotation tamamlandi, overlap suresi loglandi.
# Dual DB credential overlap ornegi
Phase 1: user_app_v1 (aktif) + user_app_v2 (olusturuldu, henuz kullanilmiyor)
Phase 2: app config user_app_v2'ye gecirildi, v1 hala DB'de aktif
Phase 3: tum instance'lar v2 kullaniyor dogrulandi
Phase 4: user_app_v1 DROP USER

Secret store entegrasyonu

HashiCorp Vault, AWS Secrets Manager, Azure Key Vault rotation'u native veya Lambda/rotation handler ile otomatiklestirir. Vault database secrets engine dinamik credential üretir: her uygulama instance'i farklı kisa omurlu DB kullanıcısı alir; TTL dolunca otomatik iptal. Bu model statik parola rotation'dan daha guvenlidir cunku credential omru dakikalarla sinirlidir.

Runtime secret refresh

Rotation sirasinda uygulama yeniden baslatilmadan yeni secret alinmali. .NET IOptionsMonitor, Java @RefreshScope, veya sidecar file watch ile config reload yapilir. Connection pool eski credential ile açık baglantilari drain eder; yeni baglantilar yeni credential kullanır.

TLS sertifika rotation

Let's Encrypt ve cert-manager Kubernetes'te otomatik renewal sağlar. Renewal 30 gun once baslar; başarısız renewal alert kritiktir. Multi-domain ve wildcard cert rotation'da DNS-01 challenge otomasyonu gerekir. Certificate transparency log'lari yanlış issuance tespiti icin izlenir.

Signing key rotation (JWT, API imza)

Asimetrik imza anahtarlari JWKS uzerinden dagitilir. Yeni key pair uretilir; kid header yeni anahtari isaret eder. Dogrulayicilar JWKS'teki tüm aktif public key'leri kabul eder; imzalayan yalnizca yeni private key kullanır. Eski private key grace period sonunda imha edilir. Bu model JWT rotation'da zero-downtime sağlar.

Encryption key rotation

Envelope encryption'da DEK veriyi sifreler, KEK DEK'yi sifreler. KEK rotation DEK'lerin yeni KEK ile re-wrap edilmesini gerektirir; veri yeniden sifrelenmez (re-encrypt gerekmez). Cloud KMS automatic key rotation yillik yeni key material üretir; eski key material decrypt-only modda kalir. Re-wrap job arka planda batch çalışır.

Coordination ve orchestration

Rotation cok servisli sistemde koordinasyon gerektirir. Runbook otomasyonu (Terraform, Ansible, custom orchestrator) sirali adimlari uygular. Her adim health check ile dogrulanir; başarısız adim otomatik rollback. Maintenance window düşük riskli rotation icin tercih edilir; kritik sistemlerde blue-green config gecisi kullanılır.

Failure mode analizi

  • Partial rollout: Bazi instance eski, bazi yeni secret — overlap donemi bunu tolere eder.
  • Rotation stuck: Consumer guncellenemedi; alert ve manual müdahale SLA.
  • Premature revoke: Eski secret erken iptal — outage; grace period minimum suresi dokumante edilir.
  • Secret store outage: Cached secret ile sinirli sure devam; cache TTL ve fallback proseduru.

Audit ve uyumluluk

Her rotation olayi loglanir: secret ID (deger degil), rotation tipi, baslatan (otomatik/manual), baslangic-bitis, etkilenen consumer listesi. Denetimde rotation SLA kanitlanir. Break-glass manual rotation ayri onay ve post-review gerektirir.

Test ve tatbikat

Staging ortaminda aylik rotation drill yapilir: otomasyon calisiyor mu, uygulama reload ediyor mu, monitoring alert veriyor mu. Chaos engineering ile secret store geçici kesilir; uygulama davranisi gozlemlenir. Drill sonucu runbook güncellenir.

Anti-pattern'ler

  1. Manual rotation only: Unutulur; otomasyon sart.
  2. Big bang cutover: Overlap olmadan eski iptal — kesinti riski.
  3. Rotation without monitoring: Sessiz basarisizlik production outage.
  4. Same secret everywhere: Tek rotate tüm sistemleri etkiler; scope ayirimi yapin.

Metrikler

Rotation olgunluk metrikleri: otomatik rotation orani (yüzde), ortalama rotation suresi, rotation basarisizlik sayisi, ortalama credential omru, ve overlap penceresi suresi. Hedef: kritik secret'larin yüzde 100'u otomatik rotation kapsamında.

Secret rotation operasyonel yük degil, güvenlik yatirimidir. Dual-credential gecisi, secret store otomasyonu, runtime refresh ve duzenli drill bir arada uygulandiginda compromise sonrasi blast radius daralir ve uyumluluk gereksinimleri kanitlanabilir şekilde karsilanir.

Cross-team coordination

Rotation runbook'u uygulama, platform, veritabanı ve güvenlik ekiplerinin ortak sorumlulugundadir. RACI matrisi net olmalidir: kim üretir, kim dagitir, kim dogrular, kim iptal eder. Slack veya PagerDuty rotation kanali geçici koordinasyon icin acilir; tamamlaninca kapatilir. Post-rotation retrospective küçük sorunlari bile runbook'a yansitir.

Regulatory mapping

PCI-DSS 8.2.4 credential rotation periyodik değişiklik gerektirir. NIST SP 800-57 key management lifecycle rehberlik sağlar. KVKK ve GDPR dogrudan rotation zorunlulugu getirmez; ancak uygun teknik onlemler (Article 32) kapsamında rotation makul tedbir sayilir. Denetimde otomatik rotation loglari kanit olarak sunulur.

Emergency rotation

Compromise tespit edildiginde emergency rotation SLA'si dakikalarla olculur. Onceden yazilmis playbook: secret iptal, yeni uret, priority deploy, log inceleme, stakeholder bildirimi. Emergency rotation'da overlap kisaltilabilir veya atlanabilir; outage riski kabul edilir. Incident commander rotation surecini yönetir; normal change management geçici devre disi birakilir.

Third-party ve SaaS credential rotation

Harici servis API key'leri (odeme, e-posta, SMS) ayri rotation takvimine tabidir. Vendor dashboard ve kendi secret store'unuz senkron tutulmali; tek taraf guncellenip digeri unutulursa entegrasyon kopar. Webhook endpoint secret rotation partner tarafinda da güncelleme gerektirir; cift yonlu iletiim proseduru tanimlanir. SaaS vendor compromise bildirimine abonelik, rotation playbook'unu otomatik tetikler.

Observability ve alerting

Rotation pipeline'inin her adimi metrik üretir: secret_created, consumer_updated, old_secret_revoked. Başarısız adim PagerDuty alert tetikler. Dashboard rotation coverage yuzdesini gösterir; kapsam disi secret'lar backlog'a alinir. Synthetic check periyodik olarak secret store erisimini ve credential gecerliligini dogrular; sessiz bozulma erken yakalanir.

Maliyet ve otomasyon ROI

Manuel rotation muhendis saati ve insan hatasi maliyeti tasir. Otomasyon ilk yatırım gerektirir; ancak ölçek buyudukce birim maliyet duser. Dual-credential overlap kisa tutularak güvenlik penceresi minimize edilir. Otomasyon script'leri version control'de tutulur; değişiklik code review'dan gecer. ROI hesabi incident maliyeti ile karsilastirildiginda otomasyon genellikle ilk yil içinde kendini amorti eder.

Container ve Kubernetes secret rotation

Kubernetes Secret objesi rotation External Secrets Operator veya Vault Agent Injector ile otomatik güncellenir. Pod volume mount reload sinyali (inotify veya SIGHUP) ile yeni deger alir; restart gereksinimi azaltilir. Init container veya sidecar pattern secret'i dosya olarak sunar; uygulama process'i dogrudan etcd ile ugrasmaz. Rotation sirasinda rolling update stratejisi pod'larin kademeli guncellenmesini sağlar.