S3 üzerindeki dosyaların görüntülenememesi ve “Access Denied” hatası almanız, S3 bucket’ınızın (depolama alanınızın) erişim izinlerinin düzgün ayarlanmamış olduğunu gösteriyor. Bu durumu çözmek için aşağıdaki adımları takip edebilirsiniz:
- AWS Management Console’a gidin ve oturum açın.
- Hizmetler menüsünden “S3” seçeneğini bulun ve tıklayın.
- İlgili S3 bucket’ınızı (depolama alanınızı) bulun ve üzerine tıklayın.
- “Permissions” (İzinler) sekmesine gidin ve “Bucket Policy” (Depolama Alanı İlkesi) bölümüne tıklayın.
- Aşağıdaki JSON örneğini, sizin S3 bucket’ınıza uygun şekilde düzenleyerek “Bucket Policy” bölümüne yapıştırın:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/*"
}
]
}
Burada “BUCKET_NAME” kısmını, kendi S3 bucket’ınızın adıyla değiştirmeniz gerekmektedir. Örnek: "arn:aws:s3:::my-example-bucket/*"
- Değişiklikleri kaydedin ve sayfayı kapatın.
Bu işlemleri tamamladıktan sonra, S3 üzerindeki dosyalarınıza herkesin erişebilmesini sağlamış olacaksınız. Bu değişikliklerin ardından, sitenizdeki resimlerin görüntülenmesi gerekmektedir.
Eğer sadece belirli kullanıcıların veya rollerin S3 üzerindeki dosyalara erişmesini istiyorsanız, ilgili kullanıcı ve rollere uygun IAM politikaları oluşturarak, “Principal” değerini ve “Resource” değerini uygun şekilde düzenlemeniz gerekmektedir. Bu konuda daha fazla bilgi için AWS resmi dokümantasyonunu inceleyebilirsiniz.