Mevzuat RadarDokümantasyon
Uygulamaya git ↗

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ı:

HakEndpointİç akış
Erişim (Access)POST /api/v1/privacy/dsr type=ACCESSJSON snapshot — profil + etkinlik özeti
Düzeltme (Rectify)POST /api/v1/privacy/dsr type=RECTIFYPrivacy ekibi review (PENDING_REVIEW)
Silme (Erasure)POST /api/v1/privacy/dsr type=DELETEPrivacy ekibi review + müşteri admin onay
İşleme kısıtlamaPOST /api/v1/privacy/dsr type=RESTRICTHesap freeze, audit log korunur
Veri taşınabilirliğiPOST /api/v1/privacy/dsr type=EXPORTAnlı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ürePost-terminationYasal Dayanak
Subscriber e-posta (encrypted)Aktif sürekli90 günKVKK + GDPR sınırlı işleme amacı
Subscriber unsubscribe sonrası90 günHash + AES purgeKVKK Madde 7(1)
Authenticated kullanıcı profiliAktif sürekli30 gün graceMüş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 log365 günrecipientHash purgeOperasyonel
Outbox events180 günPurgeOperasyonel
Component state transitions90 günPurgeOperasyonel
KV history (CF)90 günAuto-trimCF 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 (hashStatus alanı); 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ılan dry-run).
  • Execute mode: staging URL, S3 backup URI ve RESTORE_DRILL_ALLOW=true zorunludur (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:

  1. Credential leak: API key sızıntı, rotation prosedürü.
  2. Cross-tenant access: yetki dışı erişim, isolation doğrulama.
  3. Ransomware restore: backup’tan kurtarma, RTO ölçümü.
  4. 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ışı

KonuKanalSLA
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)