Serverless Framework'ten AWS CDK'ya Geçiş: Bölüm 5 - Authentication, Authorization ve IAM
Serverless Framework'ten AWS CDK'ya geçerken Cognito ile güçlü kimlik doğrulama, API Gateway authorizer'lar ve ince taneli IAM politikaları uygulama.
Serverless Framework'ten AWS CDK'ya authentication ve authorization migrasyonu, hem güvenlik duruşunu hem de uygulama performansını etkileyebilecek benzersiz zorluklar sunar. Organizasyonlar genellikle Serverless Framework implementasyonlarının organik büyüme ve hızlı iterasyon döngüleri yoluyla güvenlik borcu biriktirdiğini keşfederler.
Yaygın pattern'lar arasında aşırı geniş IAM izinleri olan fonksiyonlar, multiple custom authorizer'lara dağılmış authorization logic'i ve erişim kontrol kararları için yetersiz audit trail'ler bulunur. Bu sorunlar migration değerlendirmeleri sırasında belirgin hale gelir ve compliance gereksinimlerini önemli ölçüde etkileyebilir.
Bu guide, migration süreci boyunca uygulama erişilebilirliğini korurken AWS CDK ile enterprise-grade authentication ve authorization yeniden inşa etmeyi kapsar.
Seri Navigasyonu:
- Bölüm 1: Neden Geçiş Yapalım?
- Bölüm 2: CDK Environment Kurulumu
- Bölüm 3: Lambda Fonksiyonları ve API Gateway Migration
- Bölüm 4: Database ve Environment Management
- Bölüm 5: Authentication, Authorization ve IAM (bu yazı)
- Bölüm 6: Migration Stratejileri ve Best Practice'ler
Authentication Migration Zorluklarını Anlama
Çözümler implement etmeden önce, mevcut authentication pattern'larını değerlendirmek önemlidir. Migration değerlendirmeleri sırasında keşfedilen yaygın sorunlar şunları içerir. Audit sonrası bu sorunları tek seferde çözmek yerine öncelik sırasına koymak; önce güvenlik risklerini, sonra performans iyileştirmelerini ele almak genellikle daha verimli olur.
Yaygın Serverless Framework Authentication Pattern'ları
User Management: Environment'lar boyunca üç farklı Cognito pool, manuel oluşturulmuş, custom attribute'ların sıfır dokümantasyonu.
Authorization: 12 farklı Lambda authorizer, her biri farklı JWT validation logic'i, caching yok, ortalama 400ms authorization latency.
IAM İzinleri: 47 Lambda fonksiyonu wildcard izinlerle. En kritik payment fonksiyonumuz tüm DynamoDB tablolarına "*" erişime sahipti.
Secret'lar: Environment variable'larda hardcode edilmiş API key'ler, environment'lar arası paylaşılmış, son rotasyon "uzun zaman önce."
Audit Trail: Hiç. Authorization kararlarının sıfır loglama'sı. "Kim neye ne zaman erişti" sorusuna cevap verecek yol yok.
Migration Etki Değerlendirmeleri
- Compliance riski: Aşırı geniş data erişimi için potansiyel regülatuvar cezalar
- Performans etkisi: 400ms ortalama authorization latency (toplam request zamanının 28%'i)
- Operasyonel overhead: Authentication sorunlarını çözmek için haftada 3 saat
- Güvenlik borcu: Gereksiz izinleri olan 47 fonksiyon
Production-Grade Cognito Implementation
Audit'ten sonra authentication'ı enterprise kontrolleriyle yeniden inşa ettik. İşte battle-tested yaklaşım:
Enterprise-Grade CDK Yaklaşımı
İşte SOC 2 audit'ini geçen ve 180K+ kullanıcıyı handle eden Cognito implementasyonu:
Custom Auth Flow'ları için Lambda Trigger'ları
400ms Authorization Felaketi
Legacy authorization kurulumumuz performansı öldürüyordu. Her API request şunları gerektiriyordu:
- JWT decode: 50ms
- Cognito JWK fetch: 150ms (caching yok)
- Signature verification: 80ms
- Database role lookup: 120ms
- Toplam authorization zamanı: Request başına 400ms
Business etkisi: Toplam request zamanının 28%'i authorization'da harcandı. Mobile app "yavaş" olarak algılandı. API responsiveness hakkında customer şikayetleri.
Yüksek Performanslı JWT Authorization
İşte latency'yi 400ms'den 12ms'ye düşüren caching-optimized authorizer:
Group'larla Request-Based Authorizer
Wildcard IAM Felaketi
Güvenlik audit'imiz sırasında payment processing Lambda'mızın bu IAM policy'ye sahip olduğunu keşfettik:
Çeviri: Payment fonksiyonumuz S3 bucket'larını silebilir, EC2 instance'larını terminate edebilir veya hesabımızdaki herhangi bir DynamoDB tablosuna erişebilirdi. Bir compromised fonksiyon = tam hesap ele geçirme.
Business etkisi: 180K$ potansiyel GDPR cezası, başarısız SOC 2 audit, bloke edilmiş enterprise anlaşmaları.
Least Privilege IAM Mimarisi
İşte güvenlik audit'imizi geçen ve izinleri 94% azaltan role-based sistem:
Resource-Based Policy'ler
Cross-Service Authentication
IAM ile Service-to-Service Auth
API Key Management
Güvenli API Key Dağıtımı
Migration Security Checklist
Authentication Migration
- Cognito user attribute'larını mevcut schema'ya map et
- User migration Lambda trigger implement et
- Password policy uyumluluğunu test et
- MFA ayarlarının gereksinimleri karşıladığını doğrula
- Düzgün hesap recovery flow'ları kur
Authorization Migration
- Custom authorizer'ları CDK'ya dönüştür
- Düzgün caching stratejileri implement et
- Token validation'ı iyice test et
- Auth endpoint'leri için CORS ayarlarını doğrula
- Mevcut rolleri yeni yapıya map et
IAM Migration
- Mevcut Lambda rollerini audit et
- Least privilege ilkelerini implement et
- Wildcard izinleri kaldır
- Gerektiği yerde resource-based policy'ler ekle
- Cross-account erişim gerekliyse test et
Güvenlik Best Practice'leri
Security Migration Sonuçları
3 haftalık yoğun güvenlik yeniden inşasından sonra, ölçülebilir iyileştirmeler:
Performans İyileştirmeleri
- Authorization latency: 400ms → 12ms (97% azalma)
- Cache hit oranı: 0% → 94% (JWK caching)
- API response zamanı: Ortalama 1.4s → 0.8s (42% iyileştirme)
- Mobile app algılanan performans: "Yavaş" → "Hızlı" kullanıcı geri bildirimi
Güvenlik Posture
- Over-privileged fonksiyonlar: 47 → 0 (100% eliminasyon)
- Wildcard IAM izinleri: 23 fonksiyon → 0 fonksiyon
- Audit trail kapsamı: 0% → 100% (tüm auth event'leri loglandı)
- Başarısız auth tespiti: Manuel → 30 saniye otomatik alert'ler
- Compliance durumu: Başarısız audit → SOC 2 Type II uyumlu
Operasyonel Verimlilik
- Auth troubleshooting zamanı: Haftada 3 saat → Haftada 15 dakika
- Güvenlik incident'ları: Ayda 2-3 → Ayda 0 (6 aydır devam ediyor)
- Authorization cache hit oranı: 94% (5 dakikalık TTL)
- JWT validation hataları: Günde 15 → Günde 2 (daha iyi error handling)
Business Etkisi
- Enterprise anlaşmaları unblock: 2.3M$ satış pipeline'ı yeniden açıldı
- Compliance audit: SOC 2 Type II geçti
- GDPR ceza riski: 180K (tam compliance)
- Müşteri güveni: Satış demo'larında görünür güvenlik iyileştirmeleri
CDK Versiyon Uyumluluk Notu
Bu uygulama AWS CDK v2.100+ ile test edilmiştir. Cognito özellikleri ve gelişmiş güvenlik özellikleri CDK sürümleri arasında farklılık gösterebilir. Özellikle Cognito gelişmiş tehdit koruması yapılandırması için güncel CDK dokümantasyonunu kontrol edin.
Zor Yoldan Öğrenilen Güvenlik Dersleri
1. Her Zaman Least Privilege ile Başla
Önce: "Action": "*" çünkü "ship etmek daha hızlı"
Sonra: Her fonksiyon, her kaynak için explicit izinler
Etki: Attack surface'de 94% azalma
2. Performans ve Güvenlik Karşılıklı Özel Değil
Önce: "Güvenlik latency ekler" Sonra: Düzgün caching auth'u hem daha hızlı HEM daha güvenli yaptı Etki: Daha güçlü güvenlikle 97% latency azalması
3. Audit Trail Pazarlık Edilemez
Önce: Kimin neye eriştiğine dair sıfır görünürlük Sonra: Tam context ile her auth kararı loglandı Etki: SOC 2 audit'ini geçti, compliance sağladı
4. Her Şeyi (Güvenli Şekilde) Cache'le
Önce: Her request'te JWK fetch Sonra: Invalidation ile multi-level caching Etki: 94% cache hit oranı, 20ms altında auth
5. Role-Based Access Control Ölçeklenebilir
Önce: Fonksiyon başına ad-hoc izinler Sonra: Net sorumlulukları olan standartlaştırılmış roller Etki: Basitleştirilmiş yönetim, daha iyi güvenlik
Sırada Ne Var
Serverless uygulamanız artık gerçekten performans gösteren enterprise-grade authentication ve authorization'a sahip. User management bulletproof, API'lar optimize edilmiş JWT verification ile korunmuş ve IAM policy'leri sıkı least privilege ilkelerini takip ediyor.
6. Bölüm'da, tüm migration'ı bir araya getireceğiz:
- Tam migration stratejileri ve zaman çizelgeleri
- Production'da gerçekten işe yarayan test yaklaşımları
- Kariyerinizi kurtaran rollback prosedürleri
- Tüm stack boyunca performans optimizasyonu
- Incident'ları önleyen monitoring ve observability
Güvenlik temeli sağlam. Bu migration'ı düzgün bir şekilde bitirelim.
Serverless Framework'ten AWS CDK'ya Geçiş Rehberi
Serverless Framework'ten AWS CDK'ya tam geçiş sürecini kapsayan 6 bölümlük kapsamlı rehber. Kurulum, uygulama pattern'leri ve best practice'ler dahil.