AWS IAM, bulut kaynaklarına erişimi yönetmek için kullanılan temel hizmettir. IAM kullanıcıları ve rolleri arasındaki farkı anlamak, güvenlik ve yönetim açısından kritik öneme sahiptir. IAM kullanıcıları, belirli bir kişi veya uygulamaya kalıcı kimlik bilgileri sağlarken, IAM rolleri geçici yetkilendirme ile çalışır ve daha güvenli bir yaklaşım sunar. Bu yazıda, her iki yöntemin avantajlarını ve hangi senaryoda hangisinin kullanılması gerektiğini pratik ipuçları ve bir kontrol listesi ile ele alacağız.
IAM Kullanıcıları: Ne Zaman ve Nasıl Kullanılmalı?
IAM kullanıcıları, AWS hesabınıza erişmesi gereken bireyler veya hizmet hesapları için oluşturulur. Her kullanıcıya kalıcı bir kullanıcı adı ve parola (konsol erişimi için) veya erişim anahtarları (API/CLI için) atanır. Ancak, kalıcı kimlik bilgileri güvenlik riski oluşturabilir. Aşağıda IAM kullanıcılarını kullanırken dikkat etmeniz gereken noktalar yer alıyor:
- Minimum Ayrıcalık İlkesi: Her kullanıcıya yalnızca ihtiyaç duyduğu izinleri verin. Gereksiz yönetici yetkilerinden kaçının.
- Parola Politikaları: Karmaşık parola kuralları ve düzenli değişim zorunluluğu getirin.
- Çok Faktörlü Kimlik Doğrulama (MFA): Tüm kullanıcılar için MFA'yı zorunlu kılın. SMS tabanlı MFA'nın güvenli olmadığını unutmayın; donanım anahtarı veya uygulama tabanlı MFA tercih edin.
- Erişim Anahtarlarının Döndürülmesi: Erişim anahtarlarını belirli aralıklarla yenileyin ve kullanılmayan anahtarları iptal edin.
- Kullanıcı Sayısını Sınırlayın: Mümkün olduğunca az sayıda IAM kullanıcısı oluşturun; bunun yerine rolleri tercih edin.
IAM Rolleri: Geçici Yetkilendirme ile Güvenliği Artırın
IAM rolleri, belirli bir süre için geçerli olan ve güvenlik token hizmeti (STS) tarafından sağlanan geçici kimlik bilgileri kullanır. Roller, kullanıcılar, AWS hizmetleri veya harici hesaplar tarafından üstlenilebilir. Rol kullanımı, kalıcı kimlik bilgilerini ortadan kaldırarak güvenliği önemli ölçüde artırır. İşte rol kullanımı için ipuçları:
- AWS Hizmetleri İçin Rol Kullanın: EC2, Lambda, ECS gibi hizmetlere izin vermek için rolleri kullanın. Örneğin, AWS Fargate veya ECS görev tanımlarında IAM rolü belirleyerek konteynerlerin S3, DynamoDB gibi kaynaklara erişmesini sağlayabilirsiniz.
- Çapraz Hesap Erişimi: Farklı AWS hesapları arasında güvenli erişim için rolleri kullanın. Rol üstlenme ile hesaplar arası izin yönetimi daha güvenlidir.
- Federasyon: Kurumsal kimlik sağlayıcınız (Active Directory, Okta) ile entegre olarak kullanıcıların AWS'ye rol üstlenerek erişmesini sağlayın. Bu sayede IAM kullanıcısı oluşturmaya gerek kalmaz.
- Geçici Kimlik Bilgilerinin Ömrü: Rol oturum süresini ihtiyaca göre ayarlayın (varsayılan 1 saat, maksimum 12 saat). Kısa süreler güvenliği artırır.
- Rol İzinlerini Dar Tutun: Rolün erişebileceği kaynakları ve eylemleri sınırlayın. Koşullar (conditions) ekleyerek daha hassas kontrol sağlayın.
Kontrol Listesi: Doğru Seçimi Yapmak
Aşağıdaki kontrol listesi, IAM kullanıcısı mı yoksa rol mü kullanmanız gerektiğine karar vermenize yardımcı olacaktır:
| Senaryo | Önerilen Yöntem |
|---|---|
| Bir kişi AWS konsoluna düzenli erişim ihtiyacı duyuyor | IAM kullanıcısı + MFA |
| Bir uygulama (EC2, Lambda) AWS kaynaklarına erişecek | IAM rolü |
| Farklı bir AWS hesabındaki kaynaklara erişim | IAM rolü (çapraz hesap) |
| Harici kimlik sağlayıcı (SAML, OIDC) ile giriş | IAM rolü (federasyon) |
| Geçici veya kısa süreli erişim gerekiyor | IAM rolü |
| Yönetimsel işlemler (nadir, yüksek ayrıcalıklı) | IAM rolü (break glass) |
Sık Yapılan Hatalar ve Kaçınılması Gerekenler
- Kalıcı Anahtarları Kod İçine Gömmek: Erişim anahtarlarını doğrudan uygulama koduna yazmak yerine, rol kullanın veya Secrets Manager gibi bir hizmetle yönetin.
- Rol Paylaşımı: Aynı rolü birden fazla farklı amaç için kullanmayın. Her iş yükü için ayrı roller oluşturun.
- İzin Genişletme: Rol politikalarında “Resource”: ”*” kullanmaktan kaçının. Mümkün olduğunca spesifik kaynak ARN'leri belirtin.
- Rol Koşullarını İhmal Etmek: Rolün belirli IP aralıklarından veya belirli bir VPC'den üstlenilmesini sağlamak için koşullar ekleyin.
- MFA'yı Atlamak: IAM kullanıcıları için MFA'yı zorunlu kılmayın. Rol kullanıyorsanız bile, rol üstlenme işlemi için MFA isteyebilirsiniz.
IAM rolleri ve kullanıcıları arasındaki dengeyi iyi kurmak, bulut güvenliğinizin temelini oluşturur. IaC araçlarıyla rollerin ve kullanıcıların yönetimini otomatikleştirerek insan hatasını azaltabilirsiniz. Unutmayın: mümkün olan her yerde rolleri tercih edin, kullanıcıları istisnai durumlar için saklayın.
Sık Sorulan Sorular
AWS IAM rolü ile kullanıcısı arasındaki temel fark nedir?
IAM kullanıcıları kalıcı kimlik bilgilerine sahipken, IAM rolleri geçici kimlik bilgileri (STS) kullanır. Roller daha güvenlidir çünkü uzun vadeli anahtarlar içermez ve belirli bir süre sonra geçerliliğini yitirir.
Bir EC2 örneğine IAM kullanıcısı mı yoksa rol mü atamalıyım?
EC2 örneğine IAM rolü atamalısınız. Rol, örneğe otomatik olarak geçici kimlik bilgileri sağlar ve anahtarları yönetme zahmetini ortadan kaldırır. IAM kullanıcısının erişim anahtarlarını EC2'ye gömmek güvenlik riski oluşturur.
IAM rolleri cross-account erişim için nasıl kullanılır?
Kaynak hesapta bir IAM rolü oluşturulur ve güvenilir hesap (veya kullanıcı) bu rolü üstlenme yetkisine sahip olur. Kullanıcı, rolün ARN'ini kullanarak geçici kimlik bilgileri alır ve hedef kaynaklara erişir.
IAM kullanıcıları ne zaman kullanılmalıdır?
IAM kullanıcıları, AWS konsoluna düzenli olarak giriş yapması gereken gerçek kişiler için kullanılmalıdır. Ancak mümkünse federasyon (örneğin SAML) ile rol kullanımı tercih edilmelidir. Kullanıcı hesapları için MFA zorunlu hale getirilmelidir.






