AWS S3, bulutun temel depolama yapı taşı. Ama yanlış konfigüre edilirse, kritik veriler tüm internete açık hale gelir. "S3 bucket açık bulundu" başlıklı haberleri çokça duyduk. Bu yazıda güvenliğin nasıl sağlanacağına odaklanacağız.
01. Default Olarak Kapalı
2018'den beri AWS, yeni oluşturulan bucket'ları default olarak public erişime kapalı yapıyor. "Block Public Access" ayarı bucket seviyesinde ve hesap seviyesinde açık olmalı.
02. IAM ve Bucket Policy
Erişim iki katmanda kontrol edilir:
- IAM policy: kullanıcı/rol bazlı yetki
- Bucket policy: bucket'ın kendi kuralları
İkisi çakıştığında, daha kısıtlayıcı olan geçerlidir.
03. Encryption
Data at rest için SSE-S3, SSE-KMS veya SSE-C. En yaygın SSE-KMS: AWS'nin KMS anahtarları ile şifreleme. Anahtar rotasyonu otomatik ayarlanabilir.
04. Versioning ve Object Lock
Versioning: silinen dosyalar aslında silinmez, önceki versiyonlar korunur. Object Lock: belirli süre boyunca silinmeyi engelleyen "WORM" (write once, read many) mod.
05. Access Logs ve GuardDuty
S3 erişimlerinin loglanması aktif olmalı. GuardDuty, anormal erişim örüntüleri tespit eder ve uyarır (örneğin, gece 3'te 10.000 dosya indirme).