AWS, Azure veya Google Cloud kullanıyor olun, IAM (Identity and Access Management) politikaları bulut güvenliğinizin temelidir. Yanlış yapılandırılmış bir izin, veri sızıntısına veya yetkisiz erişime yol açabilir. Bu yazıda, IAM politikalarını oluştururken ve yönetirken dikkat etmeniz gereken en kritik noktaları, somut ipuçları ve bir kontrol listesi ile ele alıyoruz.
IAM Politikaları Nedir ve Neden Önemlidir?
IAM politikaları, bulut kaynaklarına kimlerin hangi koşullar altında erişebileceğini tanımlayan kurallardır. Doğru yapılandırılmamış bir politika, saldırganların sisteminize sızmasına veya iç tehditlerin verileri kötüye kullanmasına olanak tanır. Özellikle sunucusuz mimarilerde IAM hataları daha sık görülür çünkü her fonksiyon farklı izinler gerektirir.
IAM Politikası Oluştururken En Sık Yapılan Hatalar
Bulut ortamlarında en sık rastlanan hatalar şunlardır:
- En az ayrıcalık ilkesini uygulamamak: Kullanıcılara veya hizmet hesaplarına ihtiyaç duymadıkları izinleri vermek.
- Yönetici izinlerini aşırı kullanmak: Tüm kaynaklara tam erişim sağlayan politikalar kullanmak.
- Politikaları düzenli olarak gözden geçirmemek: Eski roller ve atıl izinler birikir.
- Koşul ifadelerini ihmal etmek: IP kısıtlaması veya MFA zorunluluğu gibi ek güvenlik katmanları eklememek.
En İyi Uygulamalar: Adım Adım IAM Güvenliği
Aşağıdaki adımları izleyerek IAM politikalarınızı daha güvenli hale getirebilirsiniz.
1. En Az Ayrıcalık İlkesini Benimseyin
Her kullanıcı veya hizmet hesabına yalnızca görevini yerine getirmesi için gereken minimum izinleri verin. Örneğin, bir geliştiricinin yalnızca belirli bir S3 bucket'ına okuma erişimi varsa, yazma izni eklemeyin. İzinleri kısıtlamak için “Allow” yerine “Deny” ifadelerini tercih edin.
2. Rolleri ve Politikaları Ayrıştırın
Kullanıcılara doğrudan politika eklemek yerine, rollere politikalar atayın ve kullanıcıları bu rollere ekleyin. Bu yönetimi kolaylaştırır ve hata riskini azaltır. Terraform gibi araçlarla state file yönetimi yaparken IAM rollerini de kod olarak tanımlamak, sürüm kontrolü ve tekrarlanabilirlik sağlar.
3. Koşul Anahtarları Kullanın
IAM politikalarında aws:SourceIp, aws:MultiFactorAuthPresent veya aws:RequestedRegion gibi koşul anahtarları ekleyerek erişimi kısıtlayın. Örneğin, yalnızca belirli bir ofis IP'sinden gelen isteklere izin verin veya hassas işlemler için MFA zorunlu kılın.
4. Düzenli Denetim ve İzleme Yapın
Bulut sağlayıcınızın günlük kaydı (CloudTrail, Azure Monitor) ve IAM Access Analyzer gibi araçlarını kullanarak politikalarınızı periyodik olarak tarayın. Kullanılmayan roller, eski anahtarlar ve aşırı izinleri tespit edin.
5. Hizmete Özel Politikalar Oluşturun
Her bulut hizmeti farklı izin yapılarına sahiptir. Örneğin, AWS Lambda için yalnızca ilgili CloudWatch Logs ve DynamoDB tablolarına erişim veren bir politika yazın. Genel “AdministratorAccess” politikasını kullanmaktan kaçının.
6. Geçici Kimlik Bilgileri Kullanın
Uzun süreli erişim anahtarları yerine, STS (Security Token Service) ile geçici kimlik bilgileri kullanın. Bu, anahtar sızıntısı riskini azaltır ve her oturum için süre sınırı koyar.
7. Çapraz Hesap Erişimini Sınırlandırın
Farklı AWS hesapları veya abonelikler arasında erişim verirken, yalnızca gerekli kaynaklara ve rollerle sınırlayın. Güvenilmeyen hesaplara “PassRole” yetkisi vermeyin.
IAM Politikaları Kontrol Listesi
Aşağıda, yeni bir IAM politikası oluştururken veya mevcut politikaları gözden geçirirken kullanabileceğiniz bir kontrol listesi bulunmaktadır. Her maddeyi tek tek kontrol edin.
- En az ayrıcalık ilkesi uygulanıyor mu?
- Yönetici izinleri (Admin, Owner) yalnızca acil durumlar için ayrılmış mı?
- Politikalar rollere atanmış mı, kullanıcılara doğrudan eklenmemiş mi?
- Koşul ifadeleri (IP, MFA, zaman kısıtı) eklenmiş mi?
- Hizmete özel politikalar ayrı ayrı tanımlanmış mı?
- Geçici kimlik bilgileri kullanılıyor mu?
- Düzenli denetim (Access Analyzer, CloudTrail) etkin mi?
- Kullanılmayan roller ve eski anahtarlar temizlenmiş mi?
- Çapraz hesap erişimi sınırlandırılmış mı?
- Politika değişiklikleri kod olarak (Terraform, CloudFormation) yönetiliyor mu?
Bu kontrol listesini aylık veya üç aylık periyotlarla uygulayarak güvenlik duruşunuzu sürekli iyileştirebilirsiniz.
Sonuç Yerine: IAM Yönetimini Alışkanlık Haline Getirin
IAM politikaları, bir kere kurup unutacağınız bir yapı değildir. Bulut ortamınız büyüdükçe ve yeni hizmetler eklendikçe politikalarınızı da güncellemelisiniz. Yukarıdaki en iyi uygulamaları ve kontrol listesini takip ederek yetkilendirme hatalarını en aza indirebilir, veri ihlali riskinizi azaltabilirsiniz. Unutmayın, güvenlik herkesin sorumluluğudur ve doğru yapılandırılmış IAM politikaları bu sorumluluğun temelidir.
Sık Sorulan Sorular
IAM politikalarında en sık yapılan hata nedir?
En sık yapılan hata, en az ayrıcalık ilkesini uygulamamak ve kullanıcılara gereğinden fazla izin vermektir. Bu durum, veri sızıntısına veya yetkisiz erişime yol açabilir.
IAM politikaları neden düzenli olarak denetlenmelidir?
Zamanla kullanılmayan roller, eski anahtarlar ve aşırı izinler birikir. Düzenli denetim, güvenlik açıklarını tespit ederek riskleri azaltır.
Bulut IAM'de koşul anahtarları nasıl kullanılır?
Koşul anahtarları, erişimi IP adresi, MFA durumu veya bölge gibi faktörlere göre sınırlar. Örneğin, yalnızca belirli bir IP aralığından gelen isteklere izin vermek için kullanılır.
IAM politikalarını kod olarak yönetmenin avantajı nedir?
Terraform veya CloudFormation gibi araçlarla politikaları kod olarak yönetmek, sürüm kontrolü, tekrarlanabilirlik ve hata önleme sağlar. Ayrıca değişikliklerin izini sürmeyi kolaylaştırır.






