1. Erişim İzinlerini Kontrol Etme
# Bucket Policy Kontrolü
Bucket policy, bucket’ınıza yapılan tüm istekleri yönetir. Eğer burada yanlış bir yapılandırma varsa, sadece sizin değil, tüm kullanıcılar için erişim kısıtlanmış olabilir.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
Yukarıdaki örnekte, bucket'ınıza yapılan `GetObject` işlemlerine tüm kullanıcıların erişimi sağlanmıştır. Eğer buradaki Effect kısmı `"Deny"` olarak ayarlanmışsa, erişim engellenmiş demektir.
# IAM Kullanıcı Erişim İzinleri
Eğer IAM kullanıcılarını kullanıyorsanız, kullanıcıya gerekli izinleri verdiğinizden emin olmalısınız. IAM Policy'de yanlış bir yapılandırma da "Access Denied" hatasına neden olabilir. Kullanıcıya belirli bir bucket’ı okuma veya yazma izni vermek için aşağıdaki gibi bir politika ekleyebilirsiniz:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
2. CORS (Cross-Origin Resource Sharing) Yapılandırmasını Kontrol Etme
S3 CORS yapılandırmasını şu şekilde kontrol edebilirsiniz:
*
GET
POST
PUT
*
Bu yapılandırma, tüm alan adlarından gelen GET, POST ve PUT isteklerine izin verir. Bu sayede erişim problemleri ortadan kalkar.
3. Bucket veya Dosya İzinlerini Gözden Geçirme
Bucket içindeki her dosya için ACL (Access Control List) de kontrol edilmelidir. Eğer dosya sadece belirli bir kullanıcıya açık ise, başka kullanıcıların erişimi engellenebilir.
4. IAM Rol ve Politika Hatalarını Kontrol Etme
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
5. Varlıklar ve Hesap Kısıtlamaları
6. AWS CloudTrail ve CloudWatch Logs Kullanımı
Sonuç
Eğer bu adımları takip ederken başka bir sorunla karşılaşırsanız, AWS dökümantasyonuna göz atarak daha fazla bilgi edinebilirsiniz.