Gizlilik Operasyonları
MevzuatRadar gizlilik operasyonları KVKK 6698 Madde 11-13 ve GDPR Article 12-22 ortak gereksinimlerini kod düzeyinde uygular. Bu sayfa müşteri DPO/CSO ekiplerinin denetim sırasında talep ettiği teknik akışları açıklar.
Veri Sahibi Başvuruları (DSR)
Haklar
KVKK Madde 11 kapsamında veri sahibinin hakları:
| Hak | Endpoint | İç akış |
|---|---|---|
| Erişim (Access) | POST /api/v1/privacy/dsr type=ACCESS | JSON snapshot — profil + etkinlik özeti |
| Düzeltme (Rectify) | POST /api/v1/privacy/dsr type=RECTIFY | Privacy ekibi review (PENDING_REVIEW) |
| Silme (Erasure) | POST /api/v1/privacy/dsr type=DELETE | Privacy ekibi review + müşteri admin onay |
| İşleme kısıtlama | POST /api/v1/privacy/dsr type=RESTRICT | Hesap freeze, audit log korunur |
| Veri taşınabilirliği | POST /api/v1/privacy/dsr type=EXPORT | Anlık CSV/JSON export |
| İtiraz | [email protected] (manuel akış) | Hukuki dayanak incelemesi; endpoint enum’unda ayrı tür yoktur |
SLA
KVKK Madde 13(2): 30 gün (gerekçeli durumda 60 güne uzayabilir; veri sahibine bildirilir). MevzuatRadar iç hedef: 15 iş günü.
Doğrulama
- Authenticated kullanıcı: oturum + 2FA OTP yeterli.
- Yetkili olmayan başvuru (eski çalışan, üçüncü taraf): kimlik doğrulama için TC kimlik + e-imza + müşteri admin onay.
- Toplu başvuru (kurum): KEP üzerinden müşteri DPO talebi.
Audit
Her DSR talebi hash zincirli AuditLog tablosuna yazılır:
oluşturmada DSR_REQUEST_CREATED, durum değişikliklerinde
DSR_REQUEST_UPDATED. Talep durumu
PENDING_REVIEW → IN_PROGRESS → FULFILLED | REJECTED olarak izlenir.
Tamper-evident hash zinciri sonradan değişiklik izini görünür kılar; hukuki
WORM/immutable storage beyanı değildir.
Retention Tablosu
| Veri Türü | Aktif Süre | Post-termination | Yasal Dayanak |
|---|---|---|---|
| Subscriber e-posta (encrypted) | Aktif sürekli | 90 gün | KVKK + GDPR sınırlı işleme amacı |
| Subscriber unsubscribe sonrası | 90 gün | Hash + AES purge | KVKK Madde 7(1) |
| Authenticated kullanıcı profili | Aktif sürekli | 30 gün grace | Müşteri sözleşmesi süresi |
| Audit log (hash zincirli) | Minimum 5 yıl (tenant bazlı artırılabilir) | Minimum 5 yıl; sözleşme hedefi 7 yıl | İç ENT-03 politikası + müşteri sözleşmesi |
| Notification log | 365 gün | recipientHash purge | Operasyonel |
| Outbox events | 180 gün | Purge | Operasyonel |
| Component state transitions | 90 gün | Purge | Operasyonel |
| KV history (CF) | 90 gün | Auto-trim | CF Pages limit |
Denetim/log arşivlemesi gece 03:00 Europe/Istanbul’da çalışan politika
tabanlı zamanlayıcılarla yapılır
(apps/api/src/modules/audit/log-retention-archival.scheduler.ts ve
audit-archive.service.ts); kayıtlar silinmez, arşiv işaretçisiyle taşınır.
Kategori bazlı otomatik temizleme (purge) yol haritasındadır; bu tablodaki
temizleme adımları o zamana kadar operasyonel prosedürle yürütülür.
Audit Log Hash Zinciri
KVKK ile ilgili tüm işlemler append-only hash zincirli denetim
kayıtlarına yazılır: DSR ve tenant içi işlemler AuditLog tablosuna, durum
sayfası abone akışı (confirm/unsubscribe) PublicStatusAuditLog tablosuna.
- Hash zinciri:
chainHash(prev, content)SHA-256 (apps/api/src/modules/public-status-subscribe/public-status-subscribe.crypto.ts). - Tampering korunması: Kayıtlarda güncelleme/silme API’si yoktur (append-only servis yazımı); sonradan değişiklik hash zinciri doğrulamasında görünür olur.
- Bütünlük doğrulaması: Zincir, kayıtlar her okunduğunda ve dışa
aktarıldığında doğrulanır (
hashStatusalanı); kopuk veya eksik zincir kayıt üzerinde açıkça işaretlenir. Uçtan uca doğrulama isteğe bağlı komutla yapılır (scripts/audit-chain-validate.mjs). - PII: kayıtlarda kişisel veri saklanmaz; subscriberId opaque hash,
IP
sha256(ipAddress).
Restore Drill (Yedek Geri Yükleme Tatbikatı)
Haftalık otomatik tatbikat + aylık sunucu üstü tatbikat şablonu ile düzenli yapılır. RPO/RTO hedefleri senaryo bazlıdır (iç HA/DR planında tanımlıdır); günlük yedek modelinde tam kayıp senaryosunda RPO en fazla son yedek yaşı, soğuk geri dönüş RTO’su saatler mertebesindedir.
- Komut:
ops/main-server/restore-drill.sh(varsayılandry-run). - Execute mode: staging URL, S3 backup URI ve
RESTORE_DRILL_ALLOW=truezorunludur (yanlışlıkla prod restore engellenir). - Kayıt: drill çıktısı JSON olarak sunucu log dosyasına yazılır; otomatik tatbikat sonuçları iş akışı çıktısı olarak saklanır.
Incident Tabletop (Olay Tatbikatı)
scripts/incident-response-tabletop.sh dört senaryo:
- Credential leak: API key sızıntı, rotation prosedürü.
- Cross-tenant access: yetki dışı erişim, isolation doğrulama.
- Ransomware restore: backup’tan kurtarma, RTO ölçümü.
- Provider outage: Cloudflare/Hetzner/OpenAI partial down, fallback path.
KVKK 72 saat bildirim penceresi her senaryoda test edilir; postmortem
template (docs/operations/post-mortem-template.md) ile rapor üretilir.
Müşteri Talep Akışı
| Konu | Kanal | SLA |
|---|---|---|
| Veri sahibi başvurusu (DSR) | [email protected] | 15 iş günü (KVKK m.13/2 30 gün üst sınır) |
| KVKK Bilgi ve İletişim talebi | [email protected] | KEP üzerinden 5 iş günü |
| Audit log talebi (forensic) | [email protected] | NDA + 5 iş günü |
Kaynak
- KVKK 6698 sayılı kanun
- KVKK Tebliğ (24 Ocak 2019) — veri ihlali bildirimi
- GDPR Article 12-22 (veri sahibi hakları)
- TTK Madde 82 (defter saklama süreleri)