S3’te Şifreleme Nasıl Zorunlu Hale Getirilir?

careerpath-tnail

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:

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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!