S3’te Şifreleme Nasıl Zorunlu Hale Getirilir?
S3’te
Şifreleme Nasıl Zorunlu Hale Getirilir?
Bu yazımızda,
AWS S3 servisinde bir bucket’a yüklenen objeler için şifrelemeyi zorunlu kılmak
amacıyla bucket politikasını nasıl kullanabileceğimize bakacağız.
AWS S3 üzerinde
şifreleme kullanmanın önemli olduğu birçok durum vardır. İşte AWS S3'de
şifreleme kullanmanın gerekli olabileceği bazı durumlar:
- Veri Güvenliği ve
Koruma:
●
Hassas
verilerin saklandığı durumlarda, şifreleme veri güvenliğini sağlamak için
önemlidir. Özellikle finansal bilgiler, kişisel bilgiler ve şirket içi
stratejik bilgiler gibi hassas verilerin şifrelenmesi, yetkisiz erişimlere
karşı koruma sağlar.
- Uyumluluk
Gereksinimleri:
●
Belirli
endüstri standartları veya yasal düzenlemeler, şirketlere verilerini
şifrelemelerini zorunlu kılabilir. Örneğin, finans, sağlık veya diğer
düzenlenmiş sektörlerde çalışan şirketler belirli şifreleme standartlarına
uymak zorunda olabilirler.
- Veri İletişimi ve
Transferi:
●
Verilerin
S3 depolama alanları arasında transfer edildiği durumlarda, şifreleme, bu
transferler sırasında verilerin güvenliğini sağlar. Bu özellikle çoklu AWS
hesapları veya farklı coğrafi bölgeler arasında veri transferi yapılıyorsa
önemlidir.
- Veri Yedekleme ve
Kurtarma:
●
S3
kullanılarak yapılan veri yedekleme işlemlerinde, şifreleme verilerin güvenli
bir şekilde saklanmasını sağlar. Bu sayede, veri kaybı durumlarında şifreli
verileri kurtarmak daha güvenli olur.
- Yetkilendirilmemiş
Erişimlere Karşı Koruma:
●
Şifreleme,
yetkilendirilmemiş kullanıcıların veya hesapların AWS S3 verilerine erişmesini
önler. Bu, verilere sadece yetkili kişilerin erişim sağlamasını sağlar.
- Veri İzdüşümü ve
İtibar Koruma:
●
Veri
ihlalleri ve izinsiz erişimler, şirketin itibarını olumsuz etkileyebilir.
Şifreleme kullanarak bu tür durumların önüne geçilerek, müşteri güveni ve
şirket itibarı korunabilir.
- Veri Şeffaflığı ve
Denetleme:
●
Şifreleme,
veriye erişim ve değişikliklerin izlenmesini sağlar. Bu sayede, denetleme ve
şeffaflık sağlanarak hangi kullanıcının hangi verilere eriştiği kolayca takip
edilebilir.
Bu durumlar, AWS
S3'de şifreleme kullanmanın önemini vurgular. Şifreleme, veri güvenliğini
artırarak potansiyel güvenlik ihlallerini minimize eder ve çeşitli
düzenlemelere uyum sağlar. Bu durumda S3 bucketlarında saklanacak her türlü
verinin şifrelenmeye zorlanmasını sağlamak isteyebilirsiniz. Bunun bir bucket
politikasıyla kolayca nasıl yapılabileceğini adım adım anlatalım.
Bucket’a
yüklenecek dosyaların şifrelenmesini zorunlu kılmak için aşağıdaki politikayı
kendinize uyarlayarak kullanabilirsiniz.
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid":
"DenyUnEncryptedObjectUploads",
"Effect":
"Deny",
"Principal":
"*",
"Action":
"s3:PutObject",
"Resource":
"arn:aws:s3:::BUCKET-ADINI-YAZINIZ/*",
"Condition":
{
"Null":
{
"s3:x-amz-server-side-encryption":
"true"
}
}
}
]
}
Yukarıdaki
bucket politikasını kullanmadan önce “Resource” bölümündeki “BUCKET-ADINI-YAZINIZ” bölümüne
politikayı uygulayacağınız bucket adını yazmanız gerekiyor.
Şimdi konsola giderek bu politikayı bir bucket’a uygulayalım. S3 servisine gidiyoruz ve politikasını değiştirmek istediğimiz bucket’ı seçiyoruz. Ardından “Permissions” bölümündeki “Bucket Policy” alt başlığında “Edit” butonuna tıklıyoruz. Aşağıdaki ekran görüntüsünde görebilirsiniz.
“Policy” bölümüne hazırladığımız politikayı yapıştırıyoruz ve kaydediyoruz.
Bu politika, S3 PUT objeleri API eyleminin
tüm sorumlularını reddedecektir; dolayısıyla bu kaynağa, yani bu bucketa
yükleme yapamaz ve bucket içindeki herhangi bir objeye düzenleme yapamazsınız.
Bu politikada bir koşul bölümü var ve bu
değer “NULL” olarak girilmiştir.
Artık bu değer XMZ sunucu tarafı
şifrelemesidir. Eğer bu belirtilirse, bu objenin şifreleneceği anlamına gelir.
Eğer boş/null ise şifrelenmemiş bir nesneyi yüklemeye çalışıyorsunuz demektir.
Bu durumda koşullarda “NULL” belirlendiği
için bu politika geçerli olacak ve reddedileceksiniz.
Yani bu
koşulu/engeli aşmanın tek yolu yüklemeye çalıştığınız objenin şifrelenmiş
olmasıdır.
Konsol üzerinden
herhangi bir dosyayı şifreleme opsiyonu seçilmeden yüklemeyi denediğinizde
başarısız olacaktır. Aynı şekilde AWS CLI komutu kullanarak dosya yüklemeyi
denediğinizde de aynı sonuç alınacaktır.
AWS CLI
Komutları;
1- Şifreleme olmaksızın:
aws s3 cp DOSYANIZIN-ADI s3: //BUCKET-ADINI-YAZINIZ
2-
Şifreleme opsiyonu ile: aws s3api put-object --body DOSYANIZIN-ADI --key DOSYANIZIN-ADI --bucket BUCKET-ADINI-YAZINIZ --server-side-encryption AES256
İkinci opsiyon
tercih edildiğinde sunucu tarafı şifreleme opsiyonu sayesinde dosya
şifrelendiği için başarılı sonuç alınacaktır.
Bunu konsol
üzerinden de yapmak mümkündür. Dosyayı konsol üzerinden yüklerken özellikler
bölümünden şifreleme anahtarı belirlendiği takdirde sonuç başarılı olacaktır.
Bu işlemi daha da kolaylaştırmak için yapılabilecek bir başka seçenek de
özelliklere gidip varsayılan şifrelemeyi etkinleştirmektir.
Mehmet Fatih Yar
AWS
hakkında öğrenmek istedikleriniz mi var? Profesyonel eğitim almak için alanında
uzman eğitmenlerimizle tanışabilirsiniz. AWS S3 ve diğer AWS hizmetleriyle
ilgili eğitimlerimiz hakkında daha fazla bilgi almak için info@yonetim.academy
adresine e-posta gönderebilirsiniz. AWS ile ilgili tüm konularda sizlere
yardımcı olmaktan mutluluk duyarız!