İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Güvenlik & Kimlik
  • Cosmos DB Dynamic Data Masking: Veri Güvenliğinde Yeni Dönem
Bulut Altyapı Güvenlik & Kimlik Azure Cosmos DB, Dynamic Data Masking, hassas veri, kurumsal güvenlik, SQL yetkilendirme, sunucu tarafı maskeleme, veri güvenliği Aşkın KILIÇ 21/04/2026 3 Yorumlar

Cosmos DB Dynamic Data Masking: Veri Güvenliğinde Yeni Dönem

Cosmos DB Dynamic Data Masking: Veri Güvenliğinde Yeni Dönem
📑 İçindekiler
  1. Performans ve Sınırlamalar: Gerçekçi Olalım
  2. Maliyet Analizi: Ek Fiyat Var mı?
  3. Pratik İpuçları: İlk Adımlarınız
  4. Son Söz: İyi Bir Adım Ama Yeterli Değil
  5. Sıkça Sorulan Sorular
  6. Dynamic Data Masking veritabanındaki asıl veriyi değiştiriyor mu?
  7. DDM'i etkinleştirmek için uygulama kodumda bir şey değiştirmem gerekiyor mu?
  8. Cosmos DB DDM hangi API'lerde çalışıyor?
  9. Change feed'den akan veriler de maskeleniyor mu?
  10. DDM'in ayrı bir maliyeti var mı?
  11. Kaynaklar ve İleri Okuma

⏱️ 11 dk okuma📅 21 Nisan 2026🔄 Güncelleme: 13 Eylül 2026

Geçen ay bir finans kuruluşunun Cosmos DB altyapısını denetlerken ekip liderine sordum: “Destek mühendisleri production veritabanını sorgularken müşteri TC kimlik numaralarını görebiliyor mu?” Cevap, tahmin ettiğim gibiydi; evet, herkes her şeyi görüyordu. Klasik hikâye. Hani şu “herkesin admin olduğu” ortamlardan bahsediyorum… İşte tam da bu tip senaryolar için Microsoft’un uzun süredir beklenen özelliği nihayet GA öldü: Azure Cosmos DB için Dynamic Data Masking.

Evet. Daha fazla bilgi için

Şimdi gelelim işin can alıcı noktasına.

Araya gireyim: Küçük ekipseniz (5-10 kişi): Büyük ihtimalle herkes zaten birbirinin alanına giriyor. DDM kurmak fena değil, ama ilk gün şart da değil. Önce RBAC tarafını düzgün toparlayın, sonra DDM’e bakarsınız; bütçe sıkışıksa Cosmos DB’nın built-in RBAC yapısı bile başlangıç için gayet iş görüyor.

Şey, küçük ekiplerde başka bir gerçek daha var: çoğu zaman tek bir connection string dolaşıyor. Herkes aynı hesabı kullanıyor. DDM’in anlamlı çalışması için RBAC’ın sağlam kurulmuş olması gerekiyor, yanı önce kimlik ve erişim tarafını rayına oturtmanız lazım. Sız ne dersiniz? Evet, temel konu bu.

Enterprise seviyede (50+ geliştirici, destek ekipleri, analiz ekipleri): Burada tablo değişiyor. Bir telekom şirketini düşünün; yüzlerce geliştirici var, destek ekibi production veritabanına bakıyor, analiz ekibi rapor çekiyor (ve her biri farklı veri görüyor), işte o noktada DDM baya işe yarıyor. Onsuz yönetmek… nasıl desem, idare eder bir senaryo değil.

💡 Bilgi: Dynamic Data Masking şu an sadece Azure Cosmos DB for NoSQL API’sinde destekleniyor. MongoDB, Cassandra, Gremlin veya Table API kullanıyorsanız henüz bu özellikten yararlanamıyorsunuz. Microsoft’un bu API’lere de genişleteceğini düşünüyorum ama resmî bir tarih yok.

Performans ve Sınırlamalar: Gerçekçi Olalım

Her güvenlik katmanının bir faturası var, DDM de bundan kaçmıyor. Sunucu tarafında her sorgu sonucu işlenirken araya küçük bir adım giriyor, ama işin ilginci şu: Microsoft’un kendi testlerine göre etki “minimal” kalıyor. Ben bunu henüz büyük ölçekli bir production ortamında birebir sınamadım, o yüzden %100 emin değilim. Yine de preview döneminde kurduğum bir test ortamında bakınca, açık konuşayım, göze batan bir gecikme görmedim.

Şimdi sınırlamalar kısmına gelelim. Birkaç tane var, ve bunları baştan bilmek iyi oluyor:

  • Maskeleme sadece NoSQL API’de çalışıyor — yukarıda söylediğim gibi
  • Nested JSON property’lerde path tanımlaması bazen kafa karıştırıcı olabiliyor
  • Array içindeki alanlarda maskeleme kuralı tanımlamak biraz tricky
  • Change feed üzerinden akan veri maskelenmemiş hâlde geliyor — bu çok kritik bir detay! — bunu es geçmeyin
  • Cross-partition sorgularda maskeleme davranışı bazen beklenmedik sonuçlar verebiliyor (bunu kendi test ortamımda yaşadım)

Ha, bunu atlamayayım: Change feed konusu gerçekten önemli. Eğer change feed’i kullanıp başka bir sisteme veri aktarıyorsanız — mesela bir analitik pipeline’a — o tarafta veri maskelenmemiş şekilde gider. Yanı DDM’i tek başına güvenlik çözümü diye görmek biraz fazla iyimser olur. Katmanlı yaklaşım lazım. İşin aslı bu. Güvenlik mimarisini bütünüyle düşünmek gerekiyor; daha önce Azure DevOps Güvenlik Taraması: Tek Tıkla Başlıyor yazımda da güvenlik tarama araçlarından bahsetmiştim (buna dikkat edin)

Maliyet Analizi: Ek Fiyat Var mı?

Tuhaf ama, Güzel haber şu: DDM için ayrıca bir lisans parası ödemiyorsunuz. Cosmos DB hesabınız varsa, bu özelliği açıp kullanabiliyorsunuz, işte olay bu kadar basit. Microsoft ek RU tüketimi için “ihmal edilebilir düzeyde” diyor; ben de kendi testlerimde gözle görülür bir fark yakalamadım ama yoğun workload’larda birkaç yüzdelik oynama olabilir, önü da kenara not etmek lazım.

Ve işler burada ilginçleşiyor.

TL tarafında bakınca tablo biraz daha netleşiyor. Zaten Cosmos DB’nın RU maliyeti başlı başına önemli bir kalem, o yüzden DDM’in eklediği marjinal maliyet pek konuşulacak gibi durmuyor; asıl farkı uygulama katmanında maskeleme middleware’i yazarken, sonra önü test ederken. Yıllarca bakımını çekerken hissediyorsunuz. Bir geliştirici buna haftalar harcayabiliyor, DDM işe işi 15 dakikada toparlıyor; açık konuşayım, bu yüzden maliyet optimize etmeu kafasını biraz daha kurcalamak isterseniz Bulut Maliyet Optimizasyonu: Hâlâ Geçerli Prensipler yazıma da bakabilirsiniz.

Pratik İpuçları: İlk Adımlarınız

Denemek istiyorsanız, bence şöyle başlayın:

  1. Önce RBAC tarafına bir bakın. DDM, RBAC olmadan pek anlamlı durmuyor. Hâlâ master key ile bağlanıyorsanız, lafı gevelemeden AAD tabanlı kimlik doğrulamaya geçin; yoksa güvenlik var sanıp aslında eski alışkanlığı sürdürmüş oluyorsunuz. (bence en önemlisi)
  2. Hassas alanları tek tek çıkarın. Hangi container’da hangi property’ler hassas veri taşıyor? Bunu Excel’e yazan da olur, deftere karalayan da olur — önemli olan envanteri net görmek, çünkü sonra “bu alan nerede kalmıştı?” diye dönüp durmak insanı yoruyor. — bunu es geçmeyin
  3. Pilot için tek bir container seçin. Production’a yüklenmeden önce test edin, bakın akış nasıl gidiyor (özellikle change feed tarafında maskelenmemiş veri sızıyor mu diye). İlk başta küçük başlamak daha az can sıkıyor, açık konuşayım.
  4. Maskeleme kurallarını tanımlayın. Default masking çoğu senaryoda iş görüyor, ama kredi kartı ya da TC kimlik gibi alanlarda Custom String masking daha iyi oturabiliyor; yanı her alanı aynı kalıba sokmaya çalışmayın.
  5. Unmask yetkisini sadece gerçekten ihtiyacı olan rollere verin. “Herkes görsün” diye başlamak kolay geliyor ama sonra işler karışıyor; least privilege burada da geçerli, hem de bayağı geçerli.

Bir de şunu ekleyeyim: DDM’i ilk denediğimde ARM template üzerinden kural tanımlarken JSON path’lerde epey uğraştım. Cosmos DB’deki property path’ler “/” ile başlıyor — kendi adıma konuşayım — (mesela “/email”), buna dikkat etmek gerekiyor; ben ilk seferde path’i yanlış yazınca maskeleme çalışmadı ama ortada düzgün bir hata da yoktu, sessizce geçti. Debug etmek biraz sınır bozucuydu, hani insan bekliyor ki en azından bir uyarı çıksın, ama yok.

Son Söz: İyi Bir Adım Ama Yeterli Değil

Bence DDM’in GA’ya gelmesi, doğru tarafa atılmış bir adım. Ama yetiyor mu? Pek sayılmaz. Şifreleme var, ağ izolasyonu var, audit logging var, RBAC var. Işin aslı bunların hepsi birlikte anlam kazanıyor (tek başına duran şey pek işe yaramıyor), DDM de bu yapının içinde yer alıyor. Güzel dürüyor, ama sadece bir parça.

Bunu biraz açayım.

Aslında burada ufak bir kırılma var — dur bir saniye — benim esas beklentim DDM’in MongoDB API tarafında da çalışmasıydı. Türkiye’de Cosmos DB kullanan şirketlerin hatırı sayılır kısmı MongoDB API’yi seçiyor, çünkü ekipler o tarafa daha alışık oluyor, bazı uygulamalar da orada daha rahat akıyor; ama tam da bu yüzden, o tarafta eksik kalınca boşluk bariz hissediliyor — dürüst olayım, biraz hayal kırıklığı —. Umarım Microsoft bunu da yakında getirir.

Bakın, Neyse, uzun lafın kısası: Cosmos DB’de hassas veri tutuyorsanız ve DDM’i henüz açmadıysanız, bugün açın. 15 dakikanızı alır, abartmıyorum, güvenlik duruşunuzu da fena olmayan bir seviyede yukarı çeker. Hem KVKK denetiminde eliniz biraz daha rahatlar.

Sıkça Sorulan Sorular

Dynamic Data Masking veritabanındaki asıl veriyi değiştiriyor mu?

Hayır, kesinlikle hayır. DDM aslında tamamen sorgu sonucu üzerinde çalışıyor — yanı veritabanındaki orijinal veri olduğu gibi dürüyor. Sadece yetkisiz kullanıcılara dönen sonuçlarda maskeleme devreye giriyor. Bence bu, özellikle veri bütünlüğü konusunda endişesi olanları rahatlatacak bir detay (en azından benim deneyimim böyle)

DDM’i etkinleştirmek için uygulama kodumda bir şey değiştirmem gerekiyor mu?

Hiç gerek yok. Maskeleme tamamen sunucu tarafında, Cosmos DB engine seviyesinde hallediliyor. Hangi SDK ya da client kullanırsanız kullanın, maskeleme kuralları otomatik olarak işliyor. Açıkçası bu kısım bence DDM’in en güzel yanlarından biri — mevcut uygulamanıza hiç dokunmadan güvenlik katıyorsunuz.

Cosmos DB DDM hangi API’lerde çalışıyor?

Şu an yalnızca Azure Cosmos DB for NoSQL API’sinde destekleniyor. MongoDB, Cassandra, Gremlin ve Table API’lerde henüz yok. Microsoft’un bu API’lere de genişletme planı olduğu söyleniyor ama tecrübeme göre bu tür “yakında geliyor” açıklamalarında resmî bir tarih pek verilmiyor — bu sefer de öyle.

Change feed’den akan veriler de maskeleniyor mu?

Hayır, ve bu gerçekten çok önemli bir nokta. Change feed üzerinden akan veriler maskelenmemiş hâlde geliyor. Yanı eğer change feed aracılığıyla başka sistemlere veri aktarıyorsanız, o tarafta ayrıca güvenlik önlemleri almanız şart. Bunu atlayan çok kişi görüyorum, dikkat!

Bir dakika — bununla bitmedi.

DDM’in ayrı bir maliyeti var mı?

Yok. Mevcut Cosmos DB hesabınızda ücretsiz olarak açabiliyorsunuz — hani ayrı bir lisans falan gerekmiyor. RU tüketiminde çok ufak bir artış olabilir, ama pratikte fark edilebilir bir maliyet artışı yaratmıyor.

Kaynaklar ve İleri Okuma

Azure Cosmos DB Dynamic Data Masking — Microsoft Resmî Dokümantasyonu

Garip gelecek ama, General Availability: Dynamic Data Masking for Azure Cosmos DB — Microsoft DevBlog

Azure Cosmos DB Role-Based Access Control (RBAC) — Microsoft Learn

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

CodeQL 2.27.2: C++ Regex Ayrıştırıcı ve Go CFG Değişimi
CodeQL 2.27.2: C++ Regex Ayrıştırıcı ve Go CFG Değişimi10 Eki 2026
Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları
Azure MCP Server 3.0: Yeni Araçlar ve Yükseltme Notları19 Eki 2026
Binlog MCP Server: CI'da Otomatik Build Analizi Devri
Binlog MCP Server: CI'da Otomatik Build Analizi Devri4 Tem 2026
C++ Kodunu CLI’da Anlamak: Copilot’a Gelen Akıllı Katman
C++ Kodunu CLI’da Anlamak: Copilot’a Gelen Akıllı Katman10 May 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Cosmos DB Dynamic Data Masking hassas veri kurumsal güvenlik SQL yetkilendirme sunucu tarafı maskeleme veri güvenliği
Önceki yazı

Codex Kurumsal Ölçekte: Ne Vaat Ediyor, Ne Eksik?

Sonraki yazı

Kubernetes’te Production Debug Güvenliği: Rehber

İlginizi Çekebilir

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
Aşkın KILIÇ 0

Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı

24/10/2026
Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
Aşkın KILIÇ 0

Copilot Usage Metrics API: IDE Dışı Araç Kullanımı

24/10/2026
GitHub Apps ile Enterprise Yönetimi PAT'siz Yürütmek
Aşkın KILIÇ 0

GitHub Apps ile Enterprise Yönetimi PAT’siz Yürütmek

23/10/2026

3 comments

comments user
Fatma B. 21/04/2026 23:13

Uygulama katmanında maskeleme yaparken ne kadar hata yapıldığını bizzat yaşadım, bu yaklaşım gerçekten işleri kolaylaştırır. Asıl verinin dokunulmadan kalması da kritik, özellikle audit süreçlerinde hayat kurtarıyor. Bu arada şu yazınız da güzeldi: Codex Kurumsal Ölçekte: Ne Vaat Ediyor, Ne Eksik? — https://www.askinkilic.com.tr/codex-kurumsal-olcekte-ne-vaat-ediyor-ne-eksik/

comments user
Derya E. 22/04/2026 07:39

Uygulama katmanında maskeleme yaparken kaç kez bug çıktı, kaç kez “bu alan neden gözüküyor” diye debug yaptık… DB seviyesinde çözülmesi gerçekten mantıklı bir yaklaşım. Bir de Codex gibi araçlarla bu tür güvenlik konfigürasyonlarının otomatize edilip edilemeyeceğini merak ediyorum, o konuda da güzel bir yazınız var: https://www.askinkilic.com.tr/codex-kurumsal-olcekte-ne-vaat-ediyor-ne-eksik/

comments user
Ceren M. 22/04/2026 10:05

Sorgu anında maskeleme mantığı gerçekten temiz bir çözüm, uygulama katmanında her yerde ayrı ayrı maskeleme yazmak hem hataya açık hem de bakımı zorlaşıyor. Peki bu maskeleme kuralları Cosmos DB’nin hangi API’larında çalışıyor, NoSQL API’a özgü mü yoksa diğerlerinde de geçerli mi?

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
    24/10/2026 Microsoft Sovereign Cloud: İş Yükü Bazlı Kontrol Katmanı
  • PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
    24/10/2026 PowerToys 0.102: Yeni Fare Araçları ve CLI Desteği
  • Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
    24/10/2026 Copilot Usage Metrics API: IDE Dışı Araç Kullanımı
  • Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
    24/10/2026 Code with Cosmos: Dört Bölümde Üretime Hazır AI Uygulaması
  • GitHub Apps ile Enterprise Yönetimi PAT'siz Yürütmek
    23/10/2026 GitHub Apps ile Enterprise Yönetimi PAT’siz Yürütmek
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Azure Developer CLI 1.34: azure.yaml Katmanları ve
    04/10/2026 Azure Developer CLI 1.34: azure.yaml Katmanları ve
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL CI/CD CodeQL code review copilot Copilot CLI DevOps Entra ID geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry MSVC otomasyon performans Pull Request RAG verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Codex Kurumsal Ölçekte: Ne Vaa...
    Kubernetes’te Production... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS