Mailbox Audit Log Nedir, Neden Önemli?

Mailbox Audit Log, bir posta kutusunda yapılan her eylemi (mail okuma, silme, taşıma, gönderme, "Send-As", admin erişimi) kayıt altına alır. Kullanım alanları:

  • Eski çalışan ayrıldığında "ne yaptı" tespiti
  • Hassas mail silinme şüphesi
  • KVKK / GDPR uyum denetimi
  • Phishing sonrası "hangi maile erişildi" forensik
  • Admin yetkilendirme audit'i

2026 İtibarıyla — Default Açık mı?

Evet — Microsoft Ocak 2019'dan beri tüm tenant'larda varsayılan olarak açık ("On by default"). Eski tenant'larda kapalı kalmış olabilir, kontrol edin:

Connect-ExchangeOnline
Get-OrganizationConfig | Format-List AuditDisabled

# AuditDisabled : False  → audit aktif
# AuditDisabled : True   → audit kapalı, açın

Kapalıysa açma

Set-OrganizationConfig -AuditDisabled $false

Tek Mailbox İçin Audit Durumunu Kontrol

Get-Mailbox ahmet@firmaniz.com |
  Select Identity, AuditEnabled, AuditLogAgeLimit,
    @{n="Owner";e={$_.AuditOwner -join ","}},
    @{n="Delegate";e={$_.AuditDelegate -join ","}},
    @{n="Admin";e={$_.AuditAdmin -join ","}}

Default action sets

TipLoglanır
AuditOwnerMailbox sahibi: HardDelete, MoveToDeletedItems, SoftDelete, Update, UpdateFolderPermissions
AuditDelegateDelegasyon: Create, FolderBind, Move, MoveToDeletedItems, SendAs, SendOnBehalf, Update
AuditAdminAdmin: Copy, Create, FolderBind, HardDelete, Move, SendAs, Update

Audit Log Süresini Uzat (Default 90 gün → 1 yıl / 7 yıl)

Default 90 gün. KVKK için 7 yıl önerilir. Office 365 E5 / Microsoft 365 E5 Compliance lisansı varsa:

Set-Mailbox ahmet@firmaniz.com -AuditLogAgeLimit 2555  # gün cinsinden = 7 yıl
Set-Mailbox -Identity ahmet@firmaniz.com -AuditLogAgeLimit 365  # 1 yıl

Tüm mailbox'lar için toplu

Get-Mailbox -ResultSize Unlimited |
  Set-Mailbox -AuditLogAgeLimit 365

Kullanılan Action'ları Genişlet (MailItemsAccessed)

"MailItemsAccessed" — hangi mail okundu — ayrı, daha ayrıntılı log. E5 / Microsoft 365 E5 Compliance lisansı şart. Açma:

Set-Mailbox ahmet@firmaniz.com `
  -AuditOwner @{Add="MailItemsAccessed","Send"} `
  -AuditDelegate @{Add="MailItemsAccessed"} `
  -AuditAdmin @{Add="MailItemsAccessed"}

Bu açıldığında her mail okumasından kayıt çıkar — phishing forensik'i için kritik.

Sorgulama 1 — Get-MailboxAuditLog (Eski, Mailbox-Specific)

Tek mailbox için son 30 günde silinen öğeler:

Search-MailboxAuditLog -Identity ahmet@firmaniz.com `
  -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) `
  -Operations HardDelete, SoftDelete, MoveToDeletedItems `
  -ShowDetails |
  Select Operation, OperationResult, LastAccessed, ItemSubject, FolderPathName, LogonUserDisplayName |
  Export-Csv .\delete_audit.csv -NoTypeInformation -Encoding UTF8

Sorgulama 2 — Search-UnifiedAuditLog (Modern, Tenant-Wide)

Tüm tenant'ta her servis için audit (Exchange + SharePoint + Teams + Entra). Lisans olarak Microsoft 365 E3+ önerilir.

Belirli kullanıcının son 7 gün tüm aktivitesi

Connect-ExchangeOnline
Connect-IPPSSession  # Compliance Center

Search-UnifiedAuditLog `
  -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) `
  -UserIds ahmet@firmaniz.com `
  -ResultSize 5000 |
  Select CreationDate, UserIds, Operations, AuditData |
  Export-Csv .\user_audit.csv -NoTypeInformation

Belirli mailbox'a kim "FolderBind" yapmış (kim mail okumuş)

Search-UnifiedAuditLog `
  -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) `
  -Operations FolderBind, MailItemsAccessed `
  -ObjectIds ahmet@firmaniz.com -ResultSize 1000 |
  Select CreationDate, UserIds, Operations

Tüm "SendAs" kullanımları

Search-UnifiedAuditLog `
  -StartDate (Get-Date).AddDays(-90) -EndDate (Get-Date) `
  -Operations SendAs -ResultSize 5000 |
  Select CreationDate, UserIds,
    @{n="SentAs";e={($_.AuditData | ConvertFrom-Json).MailboxOwnerUPN}}

Compliance Search ile İçerik Arama

"Audit log'da görüldü ama içeriği görmek istiyorum" senaryosu:

New-ComplianceSearch -Name "AhmetMailQ1" `
  -ExchangeLocation ahmet@firmaniz.com `
  -ContentMatchQuery \u0027from:cikti@example.com AND received:01/01/2026..03/31/2026\u0027

Start-ComplianceSearch -Identity "AhmetMailQ1"

# Sonra
Get-ComplianceSearch -Identity "AhmetMailQ1" |
  Select Items, Size, Status

Audit Log Retention (Lisans Bazlı)

LisansDefault RetentionMax
Business Basic / Standard / Premium90 gün180 gün
Office 365 E390 gün1 yıl (settings)
Microsoft 365 E51 yıl10 yıl (Audit Premium add-on)

Powershell Audit Log Custom Retention Policy (E5)

New-UnifiedAuditLogRetentionPolicy `
  -Name "Audit-7-yil" `
  -Description "KVKK uyumu — 7 yıl" `
  -RecordTypes ExchangeItem, ExchangeItemAggregated `
  -RetentionDuration TenYears `
  -Priority 1

Yaygın Sorunlar

"Search-UnifiedAuditLog returns 0 results"

Audit log Compliance Portal'da etkin mi kontrol et: Get-AdminAuditLogConfig | Select UnifiedAuditLogIngestionEnabled. False ise:

Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true

Audit log'a 24-48 saat gecikmeli düşüyor

Microsoft'un ingestion latency'si normaldir. Real-time için Activity Alerts kurulur.

Get-MailboxAuditLog çok yavaş

Search-UnifiedAuditLog'a geç. Sonraki sorgular hızlı.

SSS

Default 90 gün retention için ek lisans gerekir mi?

Hayır — temel audit ücretsiz. 1 yıl ve üzeri için E5 / Microsoft 365 E5 Compliance lisansı.

MailItemsAccessed her okumayı logluyor mu?

Evet — her bireysel mail okumasını. Yoğun kullanıcılarda günde 10K+ kayıt çıkar. E5 retention ile birlikte planlanmalı.

Eski kullanıcı silindi — audit log'u nasıl tutarım?

Mailbox silmeden önce Litigation Hold aç. Audit log mailbox'la birlikte indefinite tutulur.

Audit log dışarıya export edilebilir mi (SIEM)?

Evet — Office 365 Management API ile SIEM'e (Splunk, Sentinel) gerçek-zamanlı stream.

Admin "audit'i kapatabilir" — bu loglanıyor mu?

Evet — Set-OrganizationConfig -AuditDisabled $true komutu Unified Audit Log'a düşer (Operations: "Set-OrganizationConfig"). Admin temizleyemez.

Audit + KVKK uyum paketi için bize ulaşın → Microsoft 365 E5 Compliance + retention danışmanlığı.