Vaka çalışması · Banka · API güvenliği
Container platformundaki mikroservisler için merkezi API güvenliği
Bir banka, kimlik doğrulama ve yetkilendirmeyi mikroservislerinin içinden çıkarıp container platformunun önündeki tek bir gateway'de topladı. Gateway bankanın identity provider'ına bağlandı; kimliği doğrulanmamış hiçbir istek bir servise ulaşmadı.
Sonuçlar
Engellendi
yetkisiz istekler, container platformuna ulaşmadan
Ortadan kalktı
cluster'ın dışa açıklığı
Azaldı
mikroservislerdeki kimlik ve erişim yönetimi karmaşıklığı
Bağlam
Bankacılıkta sıkı güvenlik gereksinimleri ve regülasyonlar, kimlik ve erişim yönetimini her mikroservis mimarisinin kritik bir parçası yapar. Kubernetes tabanlı bir container platformu ekiplere ölçek ve hız kazandırır; ama güvenlik kontrollerinin yine de mimarinin doğru katmanında durması gerekir.
Banka mikroservislerini böyle bir platformda çalıştırıyordu. Her servis kimlik doğrulama ve yetkilendirmeyi kendi içinde, özel geliştirilmiş bir kimlik ve erişim yönetimi (IAM) çözümüyle kurduğu kendi entegrasyonu üzerinden yapıyordu. Güvenlik uygulama koduna dağıldığı için merkezi kontrol zorlaşıyor, yetkisiz trafik erken aşamada durdurulamıyordu. Mikroservis sayısı arttıkça bu yaklaşımı ölçeklemek ve sürdürmek de zorlaştı.
Kısıtlar
- Authentication ve authorization mantığının doğrudan uygulama koduna gömülü olması
- İstekler container platformuna ulaşmadan önce trafiğin merkezi olarak denetlenememesi
- IAM’in her mikroserviste farklı uygulanması ve güvenlik politikalarının zamanla birbirinden ayrışma riski
- Her yeni mikroservisle büyüyen operasyonel yük
- Güvenlik sorumluluklarının platform ekibi ile uygulama ekipleri arasında net olarak ayrılmamış olması
Yaklaşımımız
- Cluster’ın dışında bir gateway. API gateway, container platformundan bağımsız olarak bir sanal makineye kuruldu; böylece güvenlik kontrolleri, korudukları platformdan ayrı bir yerde durdu.
- Bankanın identity provider’ına bağlı. Gateway, bankanın mevcut identity provider’ı ile entegre edildi ve OAuth 2.0 token’larını onun üzerinden doğruladı.
- Gelen tüm trafik tek noktadan. Mikroservislere giden trafik network seviyesinde gateway üzerinden geçirildi ve tüm servisler gateway’in arkasına alındı.
- Erişim kuralları tek yerde. Kimlik doğrulama ve yetkilendirme kontrolleri her serviste ayrı ayrı değil, merkezi olarak gateway’in policy katmanında tanımlandı.
- Platformdan önce ret. Yetkisiz ya da hatalı istekler gateway’de reddedildi ve container platformuna hiç ulaşmadı.
- Güvenlik kodu servislerden çıktı. Her servisteki özel IAM entegrasyon kodu kaldırıldı. İş mantığına dokunulmadı; servislere yalnızca kendi işlerini yapmak kaldı.
Sonuç
Gelen tüm trafik, cluster’a ulaşmadan önce gateway’de doğrulandı ve yetkilendirildi; güvenlik kontrolleri tek ve tutarlı bir kontrol noktasında uygulanır hale geldi. Yetkisiz erişimler container platformuna ulaşmadan engellendi ve cluster’ın dışa açık saldırı yüzeyi ortadan kalktı.
IAM entegrasyonunun her mikroservisten çıkarılması servisleri sadeleştirdi ve güvenlik politikalarını merkezileştirdi: yeni bir güvenlik gereksinimi artık tek noktadan, tüm servislere aynı anda uygulanabiliyor. Her erişim gateway’de kayıt altına alındığı için güvenliği yönetmek ve denetlemek kolaylaştı; geliştirme ekipleri de yeniden uygulama geliştirmeye odaklandı.