AWS Türkçe Blog

Amazon S3’de verilerin güvenliğini sağlamak için en iyi 10 güvenlik uygulaması

Orijinal makale: Link (Megan O’Neil ve Temi Adebambo)

Amazon Simple Storage Service’te (Amazon S3) 100 trilyondan fazla nesne ve neredeyse hayal edilemeyecek kadar geniş kullanım durumları setiyle Amazon S3’de depolanan verilerin güvenliğini sağlamak her kuruluş için önemlidir. Bu nedenle, verilerinizi S3’de güvence altına almak için ilk 10 denetimi hazırladık. Varsayılan olarak, tüm S3 klasörleri (bucket) özeldir ve yalnızca ACL’ler, S3 klasör politikaları ve kimlik tabanlı politikalar aracılığıyla açıkça erişim izni verilen kullanıcılar tarafından erişilebilir. Bu gönderide, AWS Organizations servis kontrol politikaları (Service Control Policies – SCP’) gibi kuruluş çapında önleyici denetimler de dahil olmak üzere S3’de verilerinizin güvenliğini sağlamak için kullanabileceğiniz en son S3 özelliklerini ve Amazon Web Services (AWS) hizmetlerini gözden geçiriyoruz. S3 için Amazon GuardDuty, AWS CloudTrail nesne düzeyinde log kaydetme, AWS Security Hub S3 denetimleri ve S3 veri olaylarına özgü CloudTrail yapılandırması gibi S3 dedektif denetimleri için de öneriler sağlıyoruz. Buna ek olarak, S3’de veri koruma seçenekleri ve verileri şifrelemek için dikkat edilecek hususlar sağlıyoruz. Son olarak, S3’de depolanan veriler için yedekleme ve kurtarma önerilerini gözden geçiriyoruz. S3’nin desteklediği geniş kullanım durumları kümesi göz önüne alındığında, özel kullanım durumunuza ve ilgili ayrıntılara uygun olarak uygulanan kontrollerin önceliğini belirlemelisiniz.

Public S3 klasörleri organizasyon düzeyinde engelleyin

Genel S3 kullanımı için AWS hesaplarını belirtin ve S3 Block Public Access‘i etkinleştirerek tüm diğer S3 klasörlerin yanlışlıkla herkese açık hale gelmesini engelleyin. S3 Block Public Access ayarının değiştirilemeyeceğini onaylamak için Organizations SCP’lerini kullanın. S3 Block Public Access, gelecekte oluşturacağınız dahil olmak üzere hesap düzeyinde ve ayrıca tek tek klasörlerde çalışan bir koruma düzeyi sağlar. Varolan genel erişimi (ACL veya politika tarafından belirtilmiş olsun) engelleme ve yeni oluşturulan öğelere genel erişimin verilmediğini belirleme yeteneğine sahipsiniz. Bu, diğer tüm AWS hesaplarını engellerken yalnızca belirlenmiş AWS hesaplarının genel S3 klasörlerine sahip olmasını sağlar. Organizations SCP’leri hakkında daha fazla bilgi edinmek için Hizmet denetim politikalarına bakın.

Verilen tüm erişimin kısıtlı ve özel olduğunu doğrulamak için klasör politikalarını kullanın

Amazon S3 klasör politikasında verilen erişimin sağladığınız belirli bir AWS asılıyla (principal), federe kullanıcılarla, servis asıllarıyla, IP adresleriyle veya VPC’lerle sınırlı olup olmadığını kontrol edin. Principal “*” gibi bir wildcard kimliğe izin veren bir klasör politikası herkes tarafından erişilebilir. Bir wildcard eylemi “*” sağlayan bir klasör politikası, kullanıcının klasör içinde herhangi bir eylemi gerçekleştirmesine potansiyel olarak izin verebilir. Daha fazla bilgi için Klasör politikaları kullanmaya bakın.

Kimlik tabanlı politikaların wildcard eylemleri kullanmadığından emin olun

Kimlik politikaları, AWS Identity and Access Management (IAM) kullanıcılarına ve rollerine atanan politikalardır ve yanlışlıkla erişimin veya kaynaklarda değişikliklerin engellenmesine yardımcı olmak için en az ayrıcalık politikasına (the principle of least privilege) uymalıdır. En az ayrıcalıklı kimlik politikaları oluşturmak S3:* yerine S3:GetObject veya S3:PutObject gibi belirli eylemleri tanımlamayı içerir. Buna ek olarak, belirli eylemlerde ek denetimler belirtmek için önceden tanımlanmış AWS genelindeki koşul anahtarlarını ve S3’e özgü koşul anahtarlarını kullanabilirsiniz. S3 için yaygın olarak kullanılan AWS genelindeki koşul anahtarının bir örneği IpAddress: { aws:SourceIP: “10.10.10.10”} olup, S3’deki belirli eylemler için kuruluşunuzun iç IP alanını belirtebilirsiniz. Security Hub’ı kullanan hesaplarınızda wildcard karakter eylemleri ve wildcard kaynak içeren politikaları algılamak için Security Hub’ı ve CloudWatch Logs kullananarak S3’de monitörleme IAM.1 başlıklı konuyla bakın.

Okuma, yazma ve silme erişimini bölmeyi düşünün. Yalnızca S3’e veri üreten ve yazan ancak nesneleri okumaya veya silmeye gerek duymayan kullanıcılara veya hizmetlere yazma erişimine izin verin. El ile müdahale yerine zamanlamayla nesneleri silmek için S3 yaşam döngüsü politikası (lifecycle policy) tanımlayın (Bkz. Depolama yaşam döngüsünü yönetme). Bu, kimlik tabanlı politikalarınızdan silme eylemlerini kaldırmanıza olanak tanır. IAM policy simulator ile politikalarınızı doğrulayın. S3 kaynaklarınıza AWS hesabınızın dışından erişim izni veren S3 klasör politikalarını veya IAM’i tanımlamanıza, incelemenize ve tasarlamanıza yardımcı olması için IAM-Access Analyzer‘ı kullanın.

Şüpheli etkinlikleri algılamak için GuardDuty’de S3 korumasını etkinleştirin

2020 yılında, GuardDuty S3 için kapsama duyurdu. Bu özelliği etkinleştirmek, GuardDuty’nin şüpheli aktiviteleri algılamak için S3 veri erişim olaylarını (veri düzlemi işlemleri) ve S3 yapılandırmasını (kontrol düzlemi API’leri) sürekli olarak izlemesini ve profilini oluşturmasını sağlar. Bunlar olağandışı coğrafi konumlardan gelen istekler, önleyici denetimlerin devre dışı bırakılması ve yanlış yapılandırılmış klasör izinlerini bulma girişimi ile tutarlı API çağrı desenleri gibi aktivitelerdir. Bunu başarmak için GuardDuty, anomali algılama, makine öğrenimi ve sürekli olarak güncellenen tehdit zekası kombinasyonunu kullanır. S3 için GuardDuty’nin nasıl etkinleştirileceği de dahil olmak üzere daha fazla bilgi edinmek için Amazon GuardDuty’deki Amazon S3 korumasına bakın.

Belirtilen alanların dışındaki hassas verileri taramak için Macie kullanın

Mayıs 2020’de AWS Amazon Macie‘yi yeniden tanıttı. Macie, verilerinizi S3’de otomatik olarak gözden geçirmek ve sınıflandırmak için makine öğrenimini kullanarak hassas verilerinizi keşfetmenize ve korumanıza yardımcı olan tam olarak yönetilen bir hizmettir. Macie’nin organizasyon genelinde etkinleştirilmesi tüm kuruluşunuzun S3 ortamının merkezi, sürekli güncellenen bir görünüm elde etmek ve merkezi bir konsol aracılığıyla güvenlik en iyi uygulamalarına bağlılığınızı izlemek için basit ve uygun maliyetli bir yöntemdir. Macie, şifreleme ve erişim denetimi için tüm klasörleri sürekli olarak değerlendirir ve kuruluşunuzun dışında herkese açık, şifrelenmemiş veya paylaşılan veya çoğaltılan klasör hakkında sizi uyarır. Macie, ortak hassas veri türlerinin ve oluşturduğunuz özel veri türlerinin tam olarak yönetilen listesini kullanarak hassas verileri değerlendirir ve hassas verilerin bulunduğu herhangi bir nesne için bulgular verir.

Verilerinizi S3’de şifreleyin

İstemci tarafı ve sunucu tarafı seçenekleri de dahil olmak üzere S3’de verileri şifrelemek için dört seçenek vardır. Sunucu tarafı şifreleme ile S3, verilerinizi AWS veri merkezlerindeki disklere yazarken nesne düzeyinde şifreler ve eriştiğinizde şifresini çözer. İsteğinizin kimliğini doğruladığınız ve erişim izinleriniz olduğu sürece şifrelenmiş veya şifrelenmemiş nesnelere erişim biçiminizde bir fark yoktur.

İlk iki seçenek AWS Key Management Service’ı (AWS KMS) kullanır. AWS KMS, şifreleme anahtarları oluşturmanıza ve yönetmenize ve bunların çok çeşitli AWS servisleri ve uygulamalarında kullanımını kontrol etmenize olanak tanır. AWS’in S3 verilerinizi şifrelemek için kullandığı şifreleme anahtarını yönetmek için seçenekler vardır.

  • Amazon S3 tarafından yönetilen şifreleme anahtarları (SSE-S3) ile sunucu tarafı şifreleme. SSE-S3 kullandığınızda, her nesne AWS tarafından yönetilen benzersiz bir anahtarla şifrelenir. Bu seçenek, ek adımlar içermeyen bir kutuyu işaretleyerek verilerinizi şifrelemenizi sağlar. Şifreleme ve şifre çözme sizin için şeffaf bir şekilde işlenir. SSE-S3 kullanışlı ve uygun maliyetli bir seçenektir.
  • AWS KMS’te (SSE-KMS) depolanan müşteri ana anahtarlarıyla (Customer Master Keys – CMK) sunucu tarafı şifreleme, SSE-S3’ye benzer, ancak SSE-S3’ye kıyasla bazı ek avantajlar ve maliyetler de sunar. S3’deki nesnelerinizin yetkisiz erişimine karşı ek koruma sağlayan bir CMK kullanımı için ayrı izinler vardır. SSE-KMS ayrıca CMK’nizin ne zaman ve kimler tarafından kullanıldığını gösteren bir denetim izi de sağlar. SSE-KMS, kullanım durumunuza bağlı olarak size daha ayrıntılı kontrol sağlayabilecek anahtar erişim politikasını kontrol etmenizi sağlar.
  • Müşteri tarafından sağlanan anahtarlarla (SSE-C) sunucu tarafı şifrelemede, şifreleme anahtarlarını yönetirsiniz ve S3, nesnelerinize eriştiğinizde disklere ve şifre çözme işlemlerine yazarken şifrelemeyi yönetir. Bu seçenek, kendi şifreleme anahtarlarınızı sağlamanız ve yönetmeniz gerekiyorsa kullanışlıdır. Her bir nesneyi şifrelemek için kullanılan anahtarların oluşturulmasından, depolanmasından ve izlenmesinden sizin sorumlu olduğunuzu ve AWS’in anahtarların kaybolması durumunda müşteri tarafından sağlanan anahtarları kurtarma yeteneğine sahip olmadığını unutmayın. SSE-C ile hesaba katmanız gereken en önemli şey, bir nesneyi her koyduğunuzda veya GET yaptığınızda müşteri tarafından yönetilen anahtarı sağlamanız gerektiğidir.
  • İstemci tarafı şifreleme, verilerinizi S3’de şifrelemek için başka bir seçenektir. AWS KMS’te depolanan bir CMK kullanabilir veya uygulamanızda sakladığınız bir ana anahtar kullanabilirsiniz. İstemci tarafı şifrelemesi, verileri AWS’e göndermeden önce şifrelediğiniz ve AWS’ten aldıktan sonra şifresini çözmeniz anlamına gelir. AWS anahtarlarınızı yönetmez ve şifreleme veya şifre çözme işlemlerinden sorumlu değildir. Genellikle istemci tarafı şifrelemenin çalışması için uygulamanıza derinlemesine katıştırılması gerekir.

S3 Versioning ve S3 Object Lock kullanarak S3’deki verileri yanlışlıkla silinmeye karşı koruyun

Amazon S3, birden çok Erişilebilirlik Alanı‘ndaki nesnelerin yüzde 99.999999999’unun dayanıklılığı için tasarlanmıştır, tüm bölgeyi etkileyen olaylara karşı dayanıklıdır ve belirli bir yıl içinde yüzde 99,99 kullanılabilirlik için tasarlanmıştır. Verilerinizi S3’de yedeklemek için stratejiler söz konusu olduğunda bu coğu zaman klasör ve nesneleri yanlışlıkla silinmeye karşı korumakla ilgilidir. Bu durumda S3 Versioning klasörlerinizde depolanan her nesnenin her versiyonunu korumak, almak ve geri yüklemek için kullanılabilir. S3 Versioning oluşturma, bir nesnenin birden çok versiyonunu aynı klasörde tutmanızı sağlar ve yanlışlıkla silme veya üzerine yazmadan nesneleri kurtarmanıza yardımcı olabilir. Bu özelliğin ilişkili maliyetleri olduğunu unutmayın. S3 Versioning’i kritik yedekleme verilerini veya hassas verileri depolayan S3 klasörleri gibi seçici senaryolarda düşünebilirsiniz.

S3 klasörlerinizde S3 Versioning etkinleştirildiğinde, çok faktörlü kimlik doğrulama (Multi-Factor authentication – MFA) silmesini etkinleştirmek için bir klasör yapılandırarak isteğe bağlı olarak başka bir güvenlik katmanı ekleyebilirsiniz. Bu yapılandırmayla, klasör sahibinin bir versiyonu silmek veya klasörün versiyon oluşturma durumunu değiştirmek için herhangi bir istek kimlik doğrulaması iki form içermelidir.

S3 Object Lock, bir-kez-yaz-çok-oku (write-once-read-many – WORM) modeli kullanarak nesneleri depolayarak veri kaybını azaltmanıza yardımcı olan bir özelliktir. Object Lock’ı kullanarak, bir nesnenin üzerine yazılmasını veya silinmesini sabit bir süre veya süresiz olarak engelleyebilirsiniz. Object Lock için, verilerin yazıldıktan sonra değiştirilmemesi veya silinmemesi zorunluluğu senaryoları da dahil olmak üzere belirli kullanım durumları olduğunu unutmayın.

CloudTrail ve S3 sunucu erişim logları kullanarak S3 için logları kaydetmeyi etkinleştirin

Amazon S3 CloudTrail ile entegre edilmiştir. CloudTrail, S3 konsolundan yapılan aramalar ve S3 API’lerine yapılan kod çağrıları da dahil olmak üzere API çağrılarının bir alt kümesini yakalar. Ayrıca, tüm klasörleriniz için veya belirli klasörlerin listesi için CloudTrail veri olaylarını etkinleştirebilirsiniz. Çok aktif bir S3 klasörünün büyük miktarda log verisi oluşturabileceğini ve CloudTrail maliyetlerini artırabileceğini unutmayın. Bu maliyet ile ilgili endişeliyseniz, bu ek log kaydını yalnızca kritik verileri içeren S3 klasörleri için etkinleştirmeyi düşünün.

Sunucu erişim logları bir klasöre yapılan isteklerin ayrıntılı kayıtlarını sağlar. Sunucu erişim logları güvenlik ve erişim denetimlerinde size yardımcı olabilir.

Verilerinizi S3’de yedekleyin

S3 verilerinizi varsayılan olarak coğrafi olarak çeşitli Erişilebilirlik Alanlarında depolasa da, uyumluluk gereksinimleriniz verileri daha da uzak mesafelerde depolamanızı gerektirebilir. Bölgeler arası çoğaltma (Cross-region Replication – CRR), bu gereksinimleri karşılamaya yardımcı olmak için uzak AWS Bölgeleri arasında veri çoğaltmanıza olanak tanır. CRR, farklı AWS Bölgelerindeki klasörler arasında nesnelerin otomatik, eşzamansız kopyalanmasını sağlar. Nesne çoğaltması hakkında daha fazla bilgi için Nesneleri çoğaltmaya bakın. Bu özelliğin ilişkili maliyetleri olduğunu unutmayın. Kritik yedekleme verilerini veya hassas verileri depolayan S3 klasörleri gibi seçici senaryolarda CRR’ı düşünebilirsiniz.

Security Hub ve CloudWatch Logs kullanarak S3’yi izleme

Security Hub, AWS’teki güvenlik durumunuzun kapsamlı bir görünümünü sunar ve ortamınızı güvenlik endüstrisi standartlarına ve en iyi uygulamalara göre kontrol etmenize yardımcı olur. Security Hub AWS hesapları, hizmetleri ve desteklenen üçüncü taraf çözüm ortağı ürünlerinden güvenlik verileri toplar ve güvenlik eğilimlerinizi analiz etmenize ve en yüksek öncelikli güvenlik sorunlarını belirlemenize yardımcı olur.

AWS Temel Güvenlik En İyi Yöntemleri standardı, hesaplarınıza dağıtılan ve kaynaklarınızın en iyi güvenlik uygulamalarından ne zaman saptığını algılayan ve net düzeltme adımları sağlayan bir dizi denetimdir. Denetimler, S3 de dahil olmak üzere birden çok AWS hizmetinde en iyi uygulamaları içerir. AWS Temel Güvenlik En İyi Uygulamalarını S3 ve IAM’de aşağıdaki dedektif kontrollerini içerdiği için etkinleştirmenizi öneririz:

IAM.1: IAM’in politikaları tam “*” yönetimsel ayrıcalıklarına izin vermemelidir.
S3.1: Block Public Access ayarı etkinleştirilmelidir
S3.2: S3 klasörleri genel okuma erişimini yasaklamalıdır
S3.3: S3 klasörleri ortak yazma erişimi yasaklamalıdır
S3.4: S3 klasörleri sunucu tarafı şifrelemesi etkinleştirilmiş olmalıdır
S3.5: S3 klasörleri Secure Socket Layer kullanmak için istekleri gerektirecektir
S3.6: Klasör politikalarında diğer AWS hesaplarına verilen Amazon S3 izinleri kısıtlanmalıdır
S3.8: S3 Block Public Access ayarı klasör düzeyinde etkinleştirilmelidir

Düzeltme adımları da dahil olmak üzere her denetimle ilgili ayrıntılar için lütfen AWS Temel Güvenlik En İyi Uygulamaları denetimlerini gözden geçirin.

Yukarıda uyarılmak istediğiniz belirli bir S3 API etkinliği varsa CloudTrail loglarını S3 için Amazon CloudWatch ile birlikte kullanabilirsiniz. CloudWatch Logs ile CloudTrail entegrasyonu CloudTrail tarafından yakalanan S3 klasör düzeyinde API etkinliğini, belirttiğiniz CloudWatch log grubundaki CloudWatch log akışına sunar. Belirli API etkinliğini izlemek için CloudWatch alarmları oluşturursunuz ve belirli API etkinliği gerçekleştiğinde e-posta bildirimleri alırsınız.

Sonuç

Bu yazıda açıklanan on uygulamayı kullanarak Amazon S3‘deki verileriniz için en az ayrıcalıklı erişim, durağan verilerin şifrelenmesi, genel erişimi engelleme, log kaydetme, izleme ve yapılandırma kontrolleri gibi güçlü koruma mekanizmaları oluşturabilirsiniz.

Kullanım durumunuza bağlı olarak ek koruma mekanizmalarını göz önünde bulundurmalısınız. Örneğin, büyük bir klasör politikasını paylaşılan veri kümesine erişmesi gereken her uygulama için ayrı, kesintili erişim noktası politikalarına ayrıştırmak için kullanabileceğiniz Access Points gibi, S3’deki büyük paylaşılan veri kümeleri için güvenlikle ilgili denetimler mevcuttur. S3 güvenliği hakkında daha fazla bilgi edinmek için Amazon S3 Güvenlik belgelerine bakın.

Şimdi S3’deki verilerinizi daha güvenli hale getirmek için en iyi 10 güvenlik uygulamasını incelediğinize göre bu kontrollerin AWS hesaplarınızda ayarlandığından emin olun ve güvenli bir şekilde geliştirin!

Bu gönderiyle ilgili sorularınız varsa, Amazon S3 forumunda yeni bir konu başlığı başlatın veya AWS Support’a başvurun.

Daha fazla AWS Güvenlik nasıl yapılır içerikleri, haberler ve özellik duyuruları mı istiyorsunuz? Bizi Twitter’da takip edin!