İçeriğe Atla
Rehberler · 7 dk okuma · görüntülenme
100%

JWKS Anahtar Rotasyonu için Operasyonel Runbook

JWT anahtar rotasyonunda oluşan 401 dalgasını (kid mismatch/JWKS cache) triage etmek ve güvenli overlap/caching stratejisi kurmak için runbook.

JWKS anahtar rotasyonu ve cache katmanlarını gösteren kapak görseli

Kimlik katmanında en pahalı incident’lardan biri şudur: “Login çalışıyor ama tüm servisler 401 dönüyor.” Sebep çoğu zaman uygulama kodu değil, anahtar rotasyonudur: JWT imzalama anahtarı değişir, JWKS güncellenir; ama istemciler/gateway’ler eski JWKS’yi cache’te tutmaya devam eder.

Bu runbook; “kid mismatch” sınıfı hatayı hızlı teşhis etmek ve rotasyonu kurumsal ölçekte güvenli hâle getirmek için hazırlanmıştır.

1) Semptomlar: ne zaman JWKS şüphesi doğar?

Tipik sinyaller:

  • 401/403 oranı ani yükselir
  • Sorun tüm servislerde aynı anda görünür (gateway/edge doğrulama yapıyorsa)
  • Deploy ile aynı dakikalarda başlar (IdP/gateway değişikliği)
  • Log’larda “unknown kid”, “no matching key”, “signature verification failed”

2) Triage: 10 dakikada kanıt üret

2.1 Hangi kid patlıyor?

Örnek log araması (uyarlayın):

rg -n "kid|jwks|signature|unknown key|no matching" /var/log -S | head

Amaç: hata mesajındaki kid değerini yakalamak.

2.2 JWKS endpoint’i gerçekten yeni anahtarı yayımlıyor mu?

Operasyon tarafında en iyi test, sadece “endpoint açılıyor mu?” değil, kid listesidir.

curl -fsS https://<idp-or-gateway>/.well-known/jwks.json | jq -r '.keys[].kid'

Eğer kid listesinde hata alan token’ın kid’i yoksa:

  • Rotasyon “tek anahtar” olarak yapılmış olabilir (overlap yok)
  • Yanlış environment deploy olmuş olabilir
  • CDN/LB katmanı eski JWKS yanıtını taşıyor olabilir

2.3 Cache katmanını tespit et (en kritik adım)

JWKS çoğu zaman şu katmanlarda cache’lenir:

  • API gateway / reverse proxy (Envoy, NGINX, Kong vb.)
  • Uygulama içinde JWKS cache (SDK)
  • CDN (yanlış Cache-Control ile)

3) Hızlı mitigasyon: 401 dalgasını durdur

Öncelik: üretimi geri getir. Sonra rotasyonu “doğru” yap.

3.1 Eski anahtarı geri yayımla (en hızlı geri dönüş)

Eğer mümkünse JWKS’de eski + yeni anahtarı birlikte yayımla (overlap). Böylece:

  • Cache’ler yeni JWKS’yi aldığında bile eski token’lar doğrulanır
  • Aşamalı geçiş yapabilirsin

3.2 JWKS cache süresini geçici düşür

Geçici politika:

  • Cache-Control: max-age=60 (veya daha düşük)
  • Gateway’lerde JWKS refresh periyodunu kısalt
  • CDN’de JWKS path’ini bypass/purge et

3.3 “kid” üretim stratejisini düzelt

Hatalı pratik: aynı kid ile farklı anahtar yayımlamak. Bu, cache ile birleşince doğrulama kaosuna döner.

Doğru pratik:

  • kid değişince anahtar değişmiş demektir.
  • Eski kid bir süre daha JWKS’de kalır (grace period).

4) Kalıcı çözüm: güvenli rotasyon tasarımı

4.1 Overlap (çift anahtar) penceresi tanımla

Operasyonel kural önerisi:

  • “Eski anahtar JWKS’de en az 2× maksimum token TTL kadar kalır.”

Örnek:

  • Token TTL: 30 dk
  • Overlap: ≥ 60 dk

4.2 Rotasyon checklist (deploy öncesi)

  • Yeni anahtar üretildi, yeni kid hazır
  • JWKS’de eski+yeninin birlikte yayınlandığı doğrulandı
  • JWKS Cache-Control bilinçli belirlendi
  • Gateway/JWKS cache refresh aralığı biliniyor
  • 401 oranı için alarm ve dashboard hazır

4.3 Alarm ve doğrulama

Önerilen metrikler:

  • 401 oranı (gateway + servis bazlı)
  • “unknown kid” log oranı
  • JWKS fetch hata oranı / latency

5) Runbook kapanış: rotasyon sonrası temizlik

Rotasyon stabil olduktan sonra:

  • Eski anahtarı kaldırmadan önce token TTL’in dolduğunu doğrula
  • Cache ayarlarını normal seviyeye çek (çok sık fetch de gereksiz yük)
  • Postmortem’e “hangi cache katmanı uzattı?” sorusunu ekle

Anahtar rotasyonu, sadece güvenlik işi değil; operasyonel süreklilik işidir. Güvenli kurumlar, rotasyonu “bir kere yapıp unutulan” görev değil, tekrar eden ve tatbikatı yapılan bir değişiklik olarak yönetir.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

Yeni yazılardan haberdar olun

Haftada bir yeni içerikler ve kaynaklar doğrudan e-postanıza gelsin.

Spam yok. Yalnızca yeni ve önemli içerikler için e-posta gönderilir.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar