İzmir’de 380 çalışanlı bir gıda üreticisi, KVKK + ISO 27001 + müşteri (büyük perakende zincirleri) denetim baskısı altında bulut güvenliği hardening programı başlattı. 9 aylık çalışma sonunda Defender for Cloud secure score 38’den 84’e çıktı, sızma testinden geçildi, müşteri denetimleri aşıldı. Bu yazı o programdan 17 somut aksiyon notu — checklist olarak değil, uygulanış detaylarıyla.
Tehdit Yüzeyini Anlama: Risk Assessment
İlk 3 hafta inventory + risk assessment:
- Azure: 2 subscription, 14 resource group, 220 resource, 8 farklı region
- Identity: 412 user, 38 service principal, 24 admin role atanmış
- Data: 18 storage account, 8 SQL DB, 4 Cosmos DB, ~~18 TB total
- Network: 6 VNet, 38 subnet, 4 ExpressRoute, 12 public IP
Microsoft Defender for Cloud secure score: 38/100. Sentinel’de 6 ayda 0 incident kaydı (çünkü kuralar yoktu, görünmüyordu).
Kimlik Katmanı (5 Aksiyon)
1. MFA: Tüm Hesaplar İçin Zorunlu
Conditional Access ile tüm user’lara MFA zorunlu, IP whitelist (kurumsal ağ) hariç:
Policy: Block legacy authentication
Conditions: All users, All cloud apps, Client apps = Legacy
Action: Block
Policy: Require MFA
Conditions: All users (except break-glass), All cloud apps
Exclusion: Trusted IPs (corp network)
Action: Grant access requiring MFA
2. Privileged Identity Management (PIM)
Eski durum: 24 user’da Owner/Contributor rolü kalıcı. Yeni: PIM, kişiler eligible, 8 saatlik aktivasyon, justification + approval şart.
3. Break-Glass Hesabı
2 emergency hesap, MFA dışı, sadece bilinen sayıda kişide credential, FIDO2 hardware key. Conditional Access policy’lerden hariç. Aylık denetim.
4. Service Principal Audit
38 SP’den 14’ü kullanılmıyordu (legacy migration kalıntısı), silindi. Aktif SP’lerin secret’ları 90 günde rotate, federated credential’a geçiş başladı.
5. Just-in-Time (JIT) VM Access
22 VM’de SSH/RDP port’u sürekli açık. JIT ile sadece talep edildiğinde 3 saat açılıyor, IP filtresi (talep edenin IP’si).
Ağ Katmanı (4 Aksiyon)
6. Network Segmentation
Tek “default” VNet’in içinde her şey karışıktı. Üç katmana ayrıldı:
- Hub VNet: Firewall, ExpressRoute, DNS
- Spoke 1 (Production): App Service, AKS, Function App
- Spoke 2 (Data): SQL, Cosmos, Storage (private endpoint)
- Spoke 3 (Management): Bastion, monitoring
7. Private Endpoint Tüm PaaS Servislere
Storage, SQL, Cosmos, Key Vault, ACR — hepsi private endpoint’le sadece VNet içinden erişilebilir. Public endpoint kapalı.
8. Azure Firewall Premium
Outbound trafik filtreleme, IDPS (intrusion detection/prevention), TLS inspection. Maliyet ~$1.000/ay ama saldırı önleme + compliance şart.
9. DDoS Protection Standard
Public-facing IP’ler için DDoS Protection Standard. Maliyet $2.944/ay tenant başına ama L3/L4 DDoS koruma + SLA + cost protection (saldırı sırasında scaled bandwidth ücreti Microsoft’tan).
Veri Katmanı (3 Aksiyon)
10. Encryption at Rest, Customer-Managed Keys (CMK)
Default Microsoft-managed key yerine Key Vault’taki HSM-backed CMK ile encrypt. Storage, SQL, Cosmos hepsi CMK kullanıyor. Key rotation 90 günde otomatik.
11. Backup ve İmmutable Storage
Azure Backup Vault ile critical VM’ler, SQL DB’ler, file share’ler. Soft delete + immutable retention 30 gün → ransomware bile silemiyor.
12. Data Loss Prevention (DLP)
Microsoft Purview ile sensitive data discovery: TC kimlik, kredi kart, IBAN otomatik tespit + label + DLP policy. Dış paylaşımda alarm/block.
Monitor Katmanı (3 Aksiyon)
13. Defender for Cloud Tüm Plan’lar Aktif
Defender plan’ları (Servers, App Service, Storage, SQL, Containers, Key Vault, Resource Manager, DNS) hepsi aktif. Aylık ek ~~$1.400 ama recommendations + threat protection + compliance dashboard.
14. Microsoft Sentinel Workspace + Detection Rules
Tüm log’lar Sentinel’e bağlandı (Azure AD, Office 365, Defender, Firewall, NSG flow logs, AKS audit). 47 detection rule + 12 SOAR playbook.
15. Diagnostic Settings Tüm Resource’larda
Azure Policy ile tüm resource’ların diagnostic settings’i Log Analytics workspace’e gönderiyor (zorunlu). Audit ihtiyacında trail var.
Vakaya Hazırlık (2 Aksiyon)
16. Incident Response Playbook
16 sayfa IR playbook: Hangi alarm hangi seviyede, kim haberdar, hangi süre içinde aksiyon, eskalasyon, müşteri/regülasyon bildirim süreçleri (KVKK 72 saat). Yıllık 2 tatbikat.
17. Backup Restore Drill
3 ayda bir restore tatbikatı. Production’dan rastgele bir DB seçiliyor, yedekten yeni DB restore ediliyor, data integrity kontrolü, rapor.
Sonuçlar
| Metrik | Önce | Sonra |
|---|---|---|
| Defender for Cloud Secure Score | 38 | 84 |
| Internet’ten erişilebilir resource sayısı | 62 | 4 (kurumsal portal + CDN) |
| Eligible-only privileged role oranı | %0 | %92 |
| MFA enforced user oranı | %34 | %100 |
| Sentinel detection rule | 0 | 47 |
| Mean Time to Detect (MTTD) | — | ~~18 dk |
| Sızma testinden geçme | Hayır | Evet |
Maliyet
| Kalem | Aylık (USD) |
|---|---|
| Defender for Cloud (tüm plan) | 1.400 |
| Sentinel (200 GB/gün commitment) | 1.150 |
| Azure Firewall Premium | 1.000 |
| DDoS Protection Standard | 2.944 |
| Toplam ek güvenlik bütçesi | ~6.500 |
Karşılığında: müşteri denetimleri geçildi (yoksa $1.5M ciro kaybı riski), ISO 27001 sertifikası alındı, KVKK denetimi clean rapor.
Sahada Düşülen Üç Tuzak
- Hardening’i tek seferde uygulamaya çalışmak: 17 aksiyon paralel yürütülünce çatışmalar çıkıyor. Phased approach: ay başına 2-3 aksiyon.
- Break-glass hesabı düşünmemek: Conditional Access bug’ı tüm hesapları kilitler, break-glass olmazsa tenant kullanılamıyor. İlk gün açılmalı.
- Defender’ı açıp ignore etmek: Recommendations aktif olur ama haftalık review yoksa anlam yok. Owner atanır, haftalık report gönderilir.
CloudSpark olarak bulut güvenliği hardening programları, KVKK + ISO 27001 + PCI uyum projeleri ve SOC kurulumları için danışmanlık veriyoruz.



