İçindekiler
- 1 SaaS Uygulamalarında Müşteri Verisi Ayrıştırmanın Neden Bu Kadar Kritik Olduğunu Netleştirelim
- 2 KVKK ve GDPR Perspektifinden Veri Ayrıştırma Zorunlulukları
- 3 Uygulama Katmanında Müşteri Verisi Ayrıştırma Desenleri
- 4 Hosting ve Ağ Mimarisiyle Müşteri Verisi İzolasyonunu Güçlendirmek
- 5 KVKK/GDPR Uyumlu Veri Yerelleştirme, Yedekleme ve Saklama
- 6 Log, İzleme ve Denetim Kayıtlarında Anonimleştirme
- 7 Örnek Senaryo: Büyüyen B2B SaaS İçin Uçtan Uca Uyumlu Mimarinin Çizilmesi
- 8 DCHost ile Pratik Yol Haritası: Nereden Başlamalısınız?
SaaS Uygulamalarında Müşteri Verisi Ayrıştırmanın Neden Bu Kadar Kritik Olduğunu Netleştirelim
SaaS ürünü geliştiren ekiplerle yaptığımız mimari tasarım toplantılarında en çok tartıştığımız konulardan biri, müşterilerin verisinin nasıl ayrıştırılacağı ve bunun hosting mimarisine nasıl yansıtılacağı oluyor. Bir yanda hızla ürün çıkarmak, maliyetleri kontrol altında tutmak ve basit bir mimariyle ilerlemek istiyorsunuz; diğer yanda ise KVKK ve GDPR yükümlülükleri, olası veri ihlali cezaları ve kurumsal müşterilerin beklediği güven seviyesi var.
Çok kiracılı (multi-tenant) SaaS yapısında aynı veritabanı, aynı uygulama kodu ve çoğu zaman aynı sunucular üzerinden onlarca, hatta yüzlerce müşteriye hizmet veriyorsunuz. Bu da şu soruları gündeme getiriyor:
- Her müşterinin verisini gerçekten mantıksal olarak ne kadar iyi ayırıyorsunuz?
- Loglar, yedekler, raporlar ve analitik sistemlerinde bu ayrıştırma devam ediyor mu?
- Veri yerelleştirme, silme talepleri, erişim kayıtları gibi KVKK/GDPR gereklilikleri mimarinizle uyumlu mu?
Bu yazıda DCHost ekibi olarak, SaaS uygulamaları için müşteri verisi ayrıştırma stratejilerini, KVKK/GDPR uyumlu hosting mimarisi ile birlikte ele alacağız. Yani sadece "hangi veritabanı deseni daha iyi" sorusuna değil; aynı zamanda "bu desenleri Türkiye ve Avrupa merkezli KVKK/GDPR uyumlu hosting altyapısında nasıl hayata geçirmelisiniz" sorusuna da yanıt vereceğiz.
KVKK ve GDPR Perspektifinden Veri Ayrıştırma Zorunlulukları
Teknik mimariyi konuşmadan önce, neden bu kadar uğraşıyoruz sorusunun hukuki tarafını sadeleştirelim. Hem KVKK hem GDPR, SaaS sağlayıcısını çoğu senaryoda veri işleyen (processor) veya bazen de veri sorumlusu (controller) konumuna koyuyor. Hangi rolde olursanız olun, bazı ortak yükümlülükler var:
- Veri minimizasyonu: İhtiyaç olmayan veriyi toplamamak ve tutmamak.
- Erişim kontrolü: Her veriye sadece yetkili kişi ve sistemlerin erişebilmesi.
- Veri bütünlüğü ve gizliliği: Yetkisiz erişim, sızıntı, yanlışlıkla paylaşım risklerini azaltmak.
- Veri yerelleştirme: Bazı verilerin belirli ülkelerde veya bölgelerde saklanması.
- Silme ve taşınabilirlik hakları: Kullanıcı talep ettiğinde veriyi silebilmek veya makul formatta aktarabilmek.
Bu başlıkların tamamı mimari kararlarınızla birebir ilişkili. KVKK ve GDPR’ı sadece "metin hazırlayıp onay almak" veya "çerez politikasına cümle eklemek" olarak görürseniz, hosting tarafında birkaç yıl sonra geri dönüşü zor teknik borçlarla karşılaşmanız kaçınılmaz.
Veri yerelleştirme, loglama ve silme süreçlerini genel olarak ele aldığımız KVKK ve GDPR uyumlu hosting nasıl kurulur rehberimiz bu yazının hukuki arka planı için iyi bir tamamlayıcı olacaktır.
Veri Sorumlusu, Veri İşleyen ve Hosting Sağlayıcısının Rolü
SaaS dünyasında tipik senaryo şöyle:
- Müşteriniz (B2B şirket) çoğu zaman veri sorumlusu.
- Siz (SaaS sağlayıcısı) çoğu zaman veri işleyen konumundasınız.
- Biz (DCHost gibi hosting sağlayıcısı) ise genellikle alt veri işleyen (sub-processor) rolündeyiz.
Bu zincirde her halka, kendi sorumluluklarını yerine getirmek zorunda. Siz, müşterinize karşı hem uygulama mimariniz hem de seçtiğiniz hosting altyapısı ile hesap veriyorsunuz. Bu yüzden "KVKK/GDPR uyumlu SaaS" demek aslında üç katmanda uyumlu olmak demek:
- Uygulama kodu ve veritabanı mimarisi
- Hosting ve ağ güvenliği mimarisi
- Operasyonel süreçler (yedek, log, denetim, erişim yönetimi)
Uygulama Katmanında Müşteri Verisi Ayrıştırma Desenleri
Çok kiracılı SaaS mimarisinde müşteri verisini ayrıştırmanın üç ana yolu var. Bunlar, hem güvenlik hem de KVKK/GDPR açısından farklı risk profilleri oluşturuyor.
1) Tek Veritabanı, Satır Bazlı Ayrıştırma (tenant_id Kolonu)
En çok kullanılan ve en pratik görünen model: Tüm müşteriler için tek bir veritabanı kullanılır, her tabloya bir tenant_id (veya benzeri) kolonu eklenir. Uygulama, her sorguya otomatik olarak ilgili tenant filtresini ekler.
Avantajları:
- Operasyonel olarak basit, tek şema yönetilir.
- Raporlama, toplu istatistik ve analitik daha kolaydır.
- Maliyet açısından verimli; tek veritabanı sunucusu ile başlayabilirsiniz.
Dezavantajları ve KVKK/GDPR riskleri:
- Uygulama kodunda yapılan küçük bir hata (örneğin WHERE koşulunun unutulması) çapraz müşteri veri sızıntısına yol açabilir.
- Denetim ve log tarafında hangi satıra kimin eriştiğini detaylı izlemek zordur.
- Silme taleplerinde (özellikle "unutulma hakkı") ilgili kiracının tüm verisini eksiksiz silmek daha dikkat ister.
Bu desen kullanılacaksa, kod tarafında zorunlu tenant filtresi (row-level security), view veya ORM seviyesinde global filter kullanmayı ve otomatik testlere tenant karışımı senaryoları eklemeyi neredeyse zorunlu görüyoruz.
2) Ayrı Şema veya Ayrı Veritabanı Yaklaşımı
Bir seviye daha güvenli ve izole model: Her müşteri için ayrı şema (schema-per-tenant) veya tamamen ayrı veritabanı (database-per-tenant) oluşturulur. Uygulama, oturum açan kullanıcıya göre doğru şema/veritabanına bağlanır.
Avantajları:
- Müşteri verisi, mantıksal olarak çok daha güçlü ayrılmış olur.
- Bir müşterinin verisini taşımak, arşivlemek veya silmek daha kontrollüdür.
- Büyük müşterileri ayrı veritabanı sunucularına bölerek ölçekleme yapmak kolaylaşır.
Dezavantajlar:
- Şema değişiklikleri (migration) daha karmaşık hale gelir.
- Onlarca/yüzlerce veritabanı için bağlantı yönetimi ve izleme yükü artar.
- Raporlama ve analitik için merkezi veri ambarı kurma ihtiyacı doğar.
Küçük SaaS ve API projeleri için multi-tenant veritabanı rehberimizde bu üç yaklaşımı performans ve operasyonel yük açısından detaylı karşılaştırmıştık. KVKK/GDPR açısından bakınca, genellikle ayrı veritabanı yaklaşımı, satır bazlı modele göre daha öngörülebilir risk profili sunuyor.
3) Tam Ayrık (Single-Tenant) Mimariler
Özellikle regüle sektörlere (finans, sağlık, kamu vb.) SaaS satan şirketler için üçüncü model sıkça gündeme geliyor: Her müşteri için tamamen ayrı veritabanı, ayrı uygulama instanceları ve çoğu zaman ayrı VPS veya dedicated sunucu.
Avantajları:
- Müşteri verisi, hukuki ve teknik olarak en güçlü izolasyonla ayrılmış olur.
- Her müşteri için özel yedekleme, saklama, şifreleme politikaları uygulanabilir.
- Kurumsal müşterilere "diğer müşterilerle aynı veritabanını paylaşmıyorsunuz" demek ciddi satış avantajı sağlar.
Dezavantajlar:
- Operasyonel maliyet ve yönetim yükü artar.
- Uygulama güncellemelerini tüm müşterilere dağıtmak için güçlü bir otomasyon gerekir.
- Kaynak kullanımında boşluklar oluşabilir (özellikle küçük müşteriler için).
SaaS uygulamaları için çok kiracılı mimari türleri rehberimizde bu single-tenant / multi-tenant kararlarını hem teknik hem ticari açıdan detaylı tartıştık. KVKK/GDPR uyumluluğu söz konusu olduğunda; hassas veri işleyen SaaS’ler için en azından "premium" müşterilere single-tenant paket sunmak, risk yönetimi açısından ciddi avantaj sağlıyor.
Hosting ve Ağ Mimarisiyle Müşteri Verisi İzolasyonunu Güçlendirmek
Veriyi sadece veritabanında değil, tüm hosting katmanında ayrıştırmanız gerekiyor. Çünkü veri ihlalleri çoğu zaman uygulama kodundan değil, yanlış yapılandırılmış sunucular, açık portlar, zayıf şifreler veya paylaşımlı altyapılardaki güvenlik açıklarından geliyor.
VPS, Dedicated ve Colocation Arasında Doğru Kombinasyon
DCHost tarafında SaaS müşterileriyle çalışırken genelde şu desenleri görüyoruz:
- Küçük ve orta ölçekli SaaS: Birden fazla izole VPS: uygulama, veritabanı, arka plan işler (queue), cache, log vb. için ayrı VPS’ler.
- Büyüyen ve kurumsal ağırlıklı SaaS: Uygulama sunucuları için esnek VPS, veritabanı ve kritik bileşenler için dedicated sunucular.
- Çok regüle sektörler veya yüksek hacim: Kendi donanımını getiren müşteriler için colocation, üzerine DCHost ağ ve güvenlik katmanı.
Buradaki temel amaç, uygulama ve veritabanı katmanlarını birbirinden ayırarak hem performans hem de güvenlik kazanmak. Bu konuyu genel olarak ele aldığımız veritabanı sunucusunu uygulama sunucusundan ayırmak rehberi, SaaS için de birebir geçerli.
Ağ Segmentasyonu, Güvenlik Duvarı ve Zero Trust Yaklaşımı
KVKK/GDPR uyumu sadece "Türkiye’de sunucu" demek değildir. Aynı veri merkezinde bile aşağıdaki segmentasyonu kurmanız beklenir:
- Uygulama sunucuları, veritabanı sunucuları ve yönetim panelleri için ayrı ağ segmentleri (VLAN vb.).
- Veritabanı portlarının sadece ilgili uygulama VPS’lerinden erişilebilir olması.
- Yönetim erişimlerinin (SSH, RDP, panel) VPN veya Zero Trust ağlar üzerinden kısıtlanması.
Zero Trust ile hosting ve sunucu erişimini güvenceye almak yazımızda anlattığımız prensipler, SaaS ortamlarında özellikle yönetim ve destek ekiplerinin erişimi için kritik. Müşteri verisini ayırırken, sadece veritabanı seviyesini değil, kim hangi sunucuya, hangi kanaldan girebiliyor sorusunu da net yanıtlayabilmelisiniz.
Şifreleme: Disk, Veritabanı ve Uygulama Katmanı
KVKK ve GDPR, verinin "uygun teknik önlemlerle" korunmasını bekler. Bu "uygun teknik önlem" çoğu zaman şifreleme demektir:
- Disk şifreleme: VPS veya dedicated sunucularda disk seviyesinde şifreleme ile "sunucu çalındı, disk fiziksel olarak ele geçirildi" gibi uç senaryolara karşı koruma.
- Veritabanı şifreleme: Hassas alanlar (TC kimlik, sağlık verisi, finansal veri) için kolon bazlı şifreleme.
- Uygulama seviyesinde şifreleme: Belli alanların sadece belirli modüller tarafından çözülmesi (örneğin kart maskeleme, tokenizasyon).
Şifreleme varsa, bir de anahtar yönetimi (key management) olmak zorunda. Bu konuyu daha geniş perspektiften ele aldığımız yedek şifreleme ve anahtar yönetimi rehberi, SaaS yedekleriniz için de doğrudan uygulanabilir.
KVKK/GDPR Uyumlu Veri Yerelleştirme, Yedekleme ve Saklama
Uygulama ve hosting mimarinizi doğru kursanız bile, yedek ve saklama politikalarınız uyumsuzsa resim tamamlanmış sayılmaz. Özellikle "unutulma hakkı", "veri saklama süresi" ve "log saklama" gibi başlıklar burada devreye giriyor.
Veri Yerelleştirme: Hangi Ülkede Hangi Veriyi Tutmalısınız?
Türkiye’de hizmet veren SaaS sağlayıcıları için en sık gelen soru: "Veriyi Türkiye’de mi, Avrupa’da mı tutmalıyız?" Yanıt, veri türüne ve müşteri profilinize göre değişiyor:
- KVKK uyarınca Türkiye’de yerleşik veri sorumluları için, özellikle özel nitelikli kişisel verilerin yurt dışına aktarımı ciddi şartlara tabi.
- Avrupa’daki müşteriler için GDPR’ın veri aktarımı kuralları ve standart sözleşme maddeleri (SCC) devreye giriyor.
Bu nedenle birçok SaaS müşterimizle şu modeli kurguluyoruz:
- Türkiye merkezli müşteriler için Türkiye veri merkezlerinde çalışan production ve yedek ortamları.
- AB merkezli müşteriler için Avrupa Birliği sınırları içinde ayrı kümeler.
Veri yerelleştirme ve KVKK/GDPR uyumlu hosting rehberimizde bu kararları ülke ülke ve senaryo senaryo ele alıyoruz. SaaS için pratik önerimiz: En azından "TR cluster" ve "EU cluster" benzeri iki ayrı hosting bölgesi tasarlayıp, müşteri onboarding sürecinde bunu sözleşmeye de net yazmak.
Yedekleme ve Saklama Süreleri
SaaS mimarilerinde tipik olarak:
- Günlük veya saatlik veritabanı yedekleri
- Dosya depolama (object storage) yedekleri
- Konfigürasyon ve kod deposu yedekleri
üretiliyor. Ancak KVKK/GDPR açısından kritik soru şu: Bu yedekler ne kadar süreyle saklanıyor ve silme talepleri yedeklere nasıl yansıyor?
Bu konuyu SaaS özelinde ele aldığımız SaaS uygulamaları için müşteri verisi yedekleme ve veri saklama politikaları yazımızda; saklama süresi, RPO/RTO hedefleri ve KVKK/GDPR dengesini ayrıntılı işledik. Özetle:
- Sonsuza kadar saklanan yedekler, uyum açısından büyük bir risk.
- Silme talebi gelen bir kullanıcı için, makul süre içinde bu bilginin yedeklerden de çıkmış olması beklenir.
- Saklama sürelerinizi (örneğin 30-60-90 gün) dökümante edip, sözleşmelere ve aydınlatma metinlerine yazmalısınız.
Daha genel çerçeve için de yedek saklama süresi nasıl belirlenir, KVKK, GDPR ve maliyet dengesi rehberimizi tavsiye ederiz.
Log, İzleme ve Denetim Kayıtlarında Anonimleştirme
Çoğu SaaS projesinde asıl ihmal edilen yer, log ve analitik katmanı oluyor. Uygulama ve veritabanında müşteri ayrıştırmasını düzgün yapmış olsanız bile:
- Web sunucu loglarında IP adresleri
- Uygulama loglarında e-posta, telefon, müşteri ID’leri
- Analitik araçlarında kullanıcı davranış verileri
çoğu zaman ham ve korumasız şekilde tutuluyor.
KVKK ve GDPR için log anonimleştirme rehberimizde, IP maskeleme ve pseudonymization tekniklerini detaylı anlattık. SaaS özelinde önerimiz:
- Log formatlarınızda tam IP yerine maskeleme (örneğin son okteti 0 yapmak) kullanmak.
- Hassas alanları (TC, e-posta, telefon) loglara hiç yazmamak veya maskeleyerek yazmak.
- Log saklama süresini iş ihtiyacı ile sınırlı tutmak (örneğin 90 veya 180 gün).
- Merkezi loglama (Loki/ELK vb.) kullanıyorsanız, erişim yetkilerini rol bazlı sıkı yönetmek.
Denetim kayıtları (audit log) ise ayrı bir konu: Burada kim hangi veriye, ne zaman erişti sorusunun cevabını tutmanız gerekiyor. Özellikle kurumsal müşteriler için bu audit kayıtlarını görselleştirebilmek, KVKK/GDPR uyumluluğunu kanıtlamak açısından büyük artı.
Örnek Senaryo: Büyüyen B2B SaaS İçin Uçtan Uca Uyumlu Mimarinin Çizilmesi
Somutlaştıralım. Diyelim ki Türkiye merkezli, insan kaynakları odaklı bir B2B SaaS ürününüz var. Çalışan verisi, performans verisi, belki maaş bilgileri gibi oldukça hassas veriler işliyorsunuz. Birkaç yıl içinde hem Türkiye’de hem Avrupa’da büyümeyi hedefliyorsunuz.
DCHost tarafında böyle bir projede genelde aşağıdaki yolu izliyoruz:
- Veri envanteri ve sınıflandırma: Hangi veri gerçekten kişisel, hangisi özel nitelikli, hangi veriler anonimleştirilebilir belirlenir.
- Multi-tenant veritabanı modeli: Orta vadede ölçeklenebilir olması için ayrı veritabanı (database-per-tenant) deseni tercih edilir; büyük kurumsal müşteriler için single-tenant opsiyonu planlanır.
- Hosting bölgesi ayrımı: DCHost altyapısında "TR cluster" ve "EU cluster" kurgulanır, veri yerelleştirme politikasıyla uyumlu hale getirilir.
- Ağ ve güvenlik katmanı: Uygulama, veritabanı, cache ve yönetim panelleri için ayrı VPS’ler ve ağ segmentleri; port bazlı sıkı güvenlik duvarı kuralları uygulanır.
- Yedekleme ve saklama: Veritabanı ve dosya yedekleri için 30-60-90 gün senaryoları tasarlanır, KVKK/GDPR ve iş sürekliliği gereksinimleriyle uyumlu hale getirilir.
- Log ve audit stratejisi: IP maskeleme, hassas alanların loglanmaması, rol bazlı log erişimi ve denetim kayıtlarının tutulması sağlanır.
Bu mimariye; geliştirme, test ve canlı ortamları da ekleyip, geliştirme–test–canlı ortamlar için hosting mimarisi rehberimizdeki prensiplerle birleştirdiğinizde, hem teknik hem uyum tarafında "ayakları yere basan" bir SaaS altyapınız olur.
DCHost ile Pratik Yol Haritası: Nereden Başlamalısınız?
Tüm bu başlıklar teoride mantıklı görünüyor, ama biliyoruz ki çoğu SaaS projesi zaten canlıda ve "sıfırdan mimari tasarlama" lüksü yok. Bu yüzden DCHost olarak genelde şu üç adımlı yaklaşımı öneriyoruz:
- Mevcut durum analizi: Veritabanı modeli, hosting topolojisi, yedekleme planı, log stratejisi ve erişim yönetimini birlikte gözden geçiriyoruz. Nerede KVKK/GDPR açığı oluşabileceğini somut maddelerle listeliyoruz.
- Önceliklendirilmiş aksiyon listesi: "Bugün yapmazsanız risk aldığınız" maddelerle, "bir sonraki çeyrekte planlarsanız iyi olur" maddelerini ayırıyoruz. Örneğin önce veritabanı erişimlerini ve backup şifrelemesini düzeltmek, sonra log anonimleştirmeye geçmek gibi.
- Altyapı evrimi: Gerekirse mevcut tek VPS mimarisini, adım adım çoklu VPS veya dedicated + VPS karmasına taşıyoruz. Bunu yaparken kesintiyi minimumda tutmak için daha önce anlattığımız kesintisiz geçiş ve taşıma rehberlerindeki yaklaşımları uyguluyoruz.
Sonuçta hedef basit: Hem yatırımcılarınıza hem de kurumsal müşterilerinize, "Mimari ve hosting tarafında KVKK/GDPR uyumunu ciddiye alan, denetlenebilir ve belgelenebilir bir SaaS ürünümüz var" diyebilmek. DCHost altyapısı üzerinde, Türkiye ve Avrupa veri merkezleri arasında doğru kombinasyonu kurup; veritabanı, yedek, log ve erişim katmanlarını birlikte tasarladığınızda bu cümle yalnızca pazarlama vaadi olmaktan çıkar, arkasını teknik olarak doldurabildiğiniz somut bir gerçek haline gelir.
Eğer kendi SaaS projeniz için "mevcut durum fotoğrafını" birlikte çekmek ve aşama aşama KVKK/GDPR uyumlu bir hosting mimarisi tasarlamak isterseniz, DCHost ekibiyle detaylı bir mimari oturum planlayabilirsiniz. Ürününüzün büyüme hedefi, müşteri profili ve sektörünüz ne olursa olsun; veriyi doğru ayrıştıran, log ve yedekleri uyumlu yöneten, ölçeklenebilir bir altyapıyı birlikte kurgulamak mümkün.
