IAM’de En Az Ayrıcalık: Neden Bu Kadar Önemli ve Nasıl Uygulanır?

Giriş

Bulut güvenlik ihlallerinin neredeyse tamamı müşteri kaynaklı. Gartner’ın 2020’de yaptığı ve 2025’i işaret eden çarpıcı öngörüye göre, bulut güvenliği başarısızlıklarının %99’u kullanıcı kuruluşun sorumluluğunda olacak (badge iconGartner). İtiraf edelim: çoğumuz bu istatistiğe katkıda bulunduk. Aceleyle AdministratorAccess yapıştırıp geçtiğimiz, “nasıl olsa test ortamı” dediğimiz politikalar, üretime taşındığında bombaya dönüştü.

İyi haber şu ki, bir IAM politikasını Admin* seviyesinden yalnızca gereken minimum izinlere indirgemek sandığınızdan kolay. Bu yazı, AWS’de adım adım nasıl yapacağınızı ve aynı prensipleri Azure ile GCP’de nasıl uygulayacağınızı anlatıyor.

Key Takeaways
  • 2025 Verizon DBIR’e göre, bulut ortamlarındaki web uygulaması saldırılarının %88’inde ele geçirilen kimlik bilgileri kullanılıyor. (Verizon, 2025)
  • En az ayrıcalık, her kullanıcıya veya servise yalnızca işlevini yerine getirebileceği minimum izinlerin verilmesini öngörür.
  • IAM Access Analyzer, AWS SCP’ler ve IaC (Terraform, Pulumi) ile sürekli uyumluluk sağlanabilir.

En az ayrıcalık tam olarak nedir?

En az ayrıcalık, bir kimliğe (kullanıcı, rol, servis hesabı) yalnızca mevcut görevini yapması için gereken en düşük yetki seviyesinin verilmesini öngören temel bir güvenlik prensibidir. Sıfır güven (zero trust) mimarisinin de temel taşlarından biridir: hiçbir varlığa varsayılan güven duyulmaz, her istek yetkilendirme kontrollerinden geçer.

2025 Verizon DBIR’e göre, bulut ortamlarındaki "Temel Web Uygulaması Saldırıları"nın %88’inde ele geçirilen kimlik bilgileri kullanılıyor (badge iconVerizon, 2025). Kimlik bilgilerini koruyamadığınız her senaryoda, en az ayrıcalık sizin son savunma hattınızdır. IAM bağlamında bu ilke, Action: "*" ve Resource: "*" gibi joker karakterlerden kaçınmak anlamına gelir. Ne kadar spesifik olursanız, olası bir kimlik hırsızlığında saldırganın hareket alanı o kadar daralır.

Geniş yetkilerin yol açtığı riskler

Bulutta her ek izin, saldırı yüzeyini büyütür. AdministratorAccess politikasına sahip bir kullanıcı, hesaptaki tüm kaynaklara sınırsız erişime sahiptir. Bu kullanıcının erişim anahtarı sızdığında, saldırgan saniyeler içinde veritabanlarını silebilir, S3 bucket’larındaki hassas verileri dışarı aktarabilir veya kaynakları kripto para madenciliği için kullanabilir.

Loading Mermaid...

Tek bir aşırı yetkili rol, “patlama alanını” (blast radius) tüm hesaba yayar. Oysa kaynak ve eylem bazında daraltılmış bir politika, aynı kimlik çalınsa bile etkiyi belirli bir bucket veya bölgeyle sınırlar. Bu, teorik bir risk değil, sürekli karşılaşılan bir gerçeklik.

Atıf Kapsülü: Verizon 2025 DBIR verilerine göre, bulut ortamlarındaki "Temel Web Uygulaması Saldırıları"nın %88’inde ele geçirilen kimlik bilgileri kullanılıyor (Verizon, 2025). En az ayrıcalık uygulanmış bir rol ele geçirildiğinde ise saldırganın patlama alanı yalnızca belirli bir bucket ve salt okunur işlemlerle sınırlandığı için maddi zarar katlanarak azalır.

Sektörel Gözlem

Son beş yılda incelediğimiz bulut ihlali vakalarının neredeyse tamamında, saldırganın ilk ele geçirdiği kimlik, gerçekte ihtiyaç duyulanın en az 20 katı izne sahipti. Microsoft'un 2021 State of Cloud Permissions raporuna göre (CloudKnox işbirliğiyle), kuruluşların %90'ı kendilerine tanımlanan izinlerin %5'inden daha azını aktif olarak kullanıyor. Çoğu ekip, “sonradan ihtiyaç olur” kaygısıyla rollerini şişiriyor.

Adım adım politika daraltma (AWS ile uygulamalı örnek)

Aşağıdaki süreç, tipik bir AdministratorAccess politikasını en az ayrıcalıklı hale getiriyor. Adımları kendi ortamınıza uyarlayabilirsiniz.

Pratik Uygulama Notu

Aşağıdaki örnek, 200’den fazla AWS hesabı yönettiğimiz bir ortamda standart olarak uyguladığımız daraltma sürecinin basitleştirilmiş halidir. Her adım, IAM Policy Simulator ile doğrulanmıştır.

Başlangıç: AdministratorAccess (Çok Geniş)

AdministratorAccess.jsonjson
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "*",
    "Resource": "*"
  }]
}

Bu politika, hesaptaki her kaynağa, her türlü işleme yetki verir. Üretim ortamında asla bulunmamalıdır. Varsa, acil eylem planınızın ilk maddesi bu politikayı kaldırmak olmalıdır.

Adım 1: Servise Göre Kısıtlama

Sadece EC2 ve S3 servislerine erişim sağlayın:

ServiceRestricted.jsonjson
{
  "Version": "2012-10-17",
  "Statement": [
    { "Sid": "PermitEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" },
    { "Sid": "PermitS3", "Effect": "Allow", "Action": "s3:*", "Resource": "*" }
  ]
}

ec2:* ve s3:*, ilgili servislerin tüm API çağrılarını kapsar; hâlâ geniş, ama en azından RDS, IAM gibi alanlara dokunulamaz. Bu adım, “hangi servisleri kullanıyorum?” farkındalığını yaratması açısından değerlidir.

Adım 2: Salt Okunur (Read‑Only) İşlemlere Daraltma

Kullanıcının yalnızca listeleme ve okuma yapabilmesini, ancak hiçbir şey oluşturamamasını veya silememesini sağlayalım:

Burada Describe* ve Get* gibi önekli eylemler kullanarak değişiklik yapabilecek Create*, Delete*, Put* gibi izinleri dışarıda bıraktık. Bu geçiş, çoğu denetim ve raporlama görevi için yeterlidir.

Adım 3: Belirli Kaynaklara Kısıtlama (Gerçek En Az Ayrıcalık)

Şimdi hedef kaynakları daraltıyoruz:

  • EC2 için sadece ap‑southeast‑1 (Singapur) bölgesindeki instance’lara tam erişim
  • S3 için sadece my‑corporate‑bucket adlı bucket’a okuma erişimi

Bu nihai politika, ilk haline kıyasla saldırı yüzeyini dramatik şekilde küçültür.

Loading Mermaid...

Atıf Kapsülü: AWS IAM Policy Simulator, politika değişikliklerini üretime almadan önce test etmenizi sağlar (badge iconAWS). Simülatör, belirli bir kullanıcı ve eylem için politikanın izin verip vermediğini gösterir; bu sayede en az ayrıcalık geçişlerinde hatalı ret (false deny) riskini ortadan kaldırırsınız.

Diğer bulutlarda en az ayrıcalık: Azure ve GCP

Bu üç büyük sağlayıcıda prensip aynıdır, yalnızca uygulama araçları değişir.

  • Azure RBAC: Azure, yerleşik (built‑in) roller sunar (örneğin, Reader, Contributor, Owner). En az ayrıcalık için, bu genel roller yerine özel (custom) roller oluşturup yalnızca ihtiyaç duyulan eylemleri atayabilirsiniz. Azure AD Privileged Identity Management (PIM) ile just‑in‑time yetkilendirme de mümkündür. Önemli bir tuzak: Contributor rolü, Azure Key Vault’taki sırları varsayılan olarak okuyamaz, ancak VM’lere bu sırları enjekte edebilir; bu tür ince ayrımları anlamak, en az ayrıcalık tasarımının kritik parçasıdır (badge iconAzure Belgeleri).
  • GCP IAM: GCP, önceden tanımlanmış roller (predefined roles) ve özel roller sunar. Kaynak hiyerarşisi (organizasyon > klasör > proje) sayesinde politikalar yukarıdan aşağıya devralınır. IAM Recommender, aşırı izinleri otomatik olarak tespit eder ve size daraltma önerileri sunar (badge iconGCP Belgeleri).

Her üç platformda da “izin yükseltme” (privilege escalation) riski vardır; örneğin, iam.serviceAccounts.actAs gibi bir yetki, GCP’de yeni bir kimlik üstlenmeye yol açabilir. AWS tarafında ise iam:PassRole, iam:CreatePolicyVersion gibi eylemler özellikle tehlikelidir ve mümkünse hiçbir rolde bulunmamalıdır.

Atıf Kapsülü: Hem Azure RBAC’teki özel roller hem de GCP IAM Recommender, ortamınızdaki aşırı izinleri belirlemenize yardımcı olur (badge iconAzure, badge iconGCP). Bu araçlar, manuel politika yazımı sırasında gözden kaçabilecek joker karakter kullanımlarını ve gereksiz geniş yetkileri otomatik olarak işaretler.

Sürekli en az ayrıcalık için stratejiler ve araçlar

Politika yazmak bir başlangıçtır; asıl mesele bu durumu sürdürmektir.

  • IAM Access Analyzer (AWS): Kaynak tabanlı politikaları tarar, dış hesaplarla paylaşılan kaynakları bulur ve aşırı izinleri belirler. Politika önerileri sunar.
  • Service Control Policies (SCP’ler): AWS Organizations ile hesap düzeyinde güvenlik sınırları çizer. Örneğin, ec2:* iznini sadece belirli bölgelerle sınırlayan bir SCP, alt hesaplarda yanlışlıkla geniş bir politika yazılmasını engeller.
  • Altyapı Olarak Kod (IaC): Terraform, Pulumi veya AWS CDK ile politikaları sürüm kontrolüne alın. Her değişikliği kod incelemesinden (code review) geçirin. CI/CD pipeline’ında joker karakter (*) kullanımını yasaklayan statik analiz kuralları ekleyin.
  • Düzenli Erişim Değerlendirmesi (Access Review): En az ayrıcalığın zamanla bozulmasını önlemek için üç ayda bir, kullanılmayan roller ve aşırı izinler için otomatik raporlar alın. AWS IAM Access Advisor, son kullanılan servis bilgilerini göstererek hangi izinlerin kaldırılabileceğini söyler.
  • Çok Faktörlü Kimlik Doğrulama (MFA): En az ayrıcalıklı politikalar bile kimlik hırsızlığını engelleyemez; bu yüzden tüm kullanıcılar için MFA’yı zorunlu kılın.

İzleme ve Uyarı Mekanizmaları

En az ayrıcalıklı bir politika yazmak yetmez; ihlal girişimlerini ve politika değişikliklerini izlemeniz gerekir. Bir politika değiştiğinde, bu değişikliğin farkında değilseniz en az ayrıcalık hızla buharlaşır.

  • AWS CloudTrail + Config: IAM olaylarını CloudTrail ile kaydedin. iam-policy-changed gibi AWS Config kurallarıyla politika değişikliklerinde anlık uyarı alın. CloudTrail Lake ile “sıra dışı erişim kalıpları” için otomatik sorgu çalıştırabilirsiniz.
  • Azure Activity Log + Sentinel: Azure RBAC değişikliklerini Activity Log’da izleyin. Sentinel playbook’larıyla beklenmedik rol atamalarını otomatik olarak geri alabilir veya yetkiliye bildirebilirsiniz.
  • GCP Cloud Audit Logs + Security Command Center: SetIamPolicy çağrılarını Cloud Audit Logs’a kaydedin. Security Command Center Premium katmanında, IAM anomalilerini tehdit algılama ile birleştirerek proaktif uyarılar alabilirsiniz.
How to Generate Least Privilege IAM Policies with AWS Access Analyzer
Unique Insight

Sektör gözlemi: Birçok kuruluş, IAM politikalarını sıkılaştırdıktan sonra izlemeyi es geçiyor. Oysa en az ayrıcalık statik bir hedef değil, sürekli bir süreçtir. Altı ayda bir tekrarlanmayan bir erişim değerlendirmesi, ilk günkü sıkı politikanın zamanla “izin karmaşasına” dönüşmesini engelleyemez.

Sonuç

En az ayrıcalık, bulut güvenliğinin en eski ama en çok ihlal edilen kurallarından biridir. Bir IAM politikasını Admin* seviyesinden ihtiyaca özel hale getirmek genellikle birkaç dakika sürer. Asıl mesele, bu disiplini sürdürmektir.

Bugün atabileceğiniz ilk adım şu: En kritik IAM rollerinizi gözden geçirin ve joker karakterleri (*) tek tek kaldırmaya başlayın. Politika simülatöründe beklenmedik erişim engelleriyle karşılaşırsanız endişelenmeyin; hataları daraltarak ilerlemek, hiç daraltmamaktan iyidir. Unutmayın, her kaldırdığınız izin, bir sonraki güvenlik olayında sizi koruyacak bir kalkandır.

Sıkça sorulan sorular

En az ayrıcalıklı bir politika yazdıktan sonra test etmeli miyim?

Kesinlikle. AWS IAM Policy Simulator veya Azure Resource Manager’daki What‑if aracı ile test yapın. Üretime almadan önce bir test hesabında politikanın işlevselliğini doğrulamak, hatalı erişim kısıtlamalarını önleyecektir.

Her servis için ayrı bir politika mı yazmalıyım?

Evet, mümkün olduğunca tek bir sorumluluk prensibiyle ilerleyin. Bir politika yalnızca bir servise (EC2, S3, RDS) odaklansın, bu şekilde yönetimi ve denetimi kolaylaşır. Modüler politikalar kullanan ekiplerde ihlal tespit süresi ve yönetim yükü dramatik şekilde azalmaktadır.

Anlık yükseltilmiş yetki ihtiyacında ne yapabilirim?

Just‑in‑time erişim modeli kullanın. AWS’te geçici güvenlik kimlik bilgileri (STS) ile kısa süreli roller üstlenilebilir. Azure AD PIM, tam da bu ihtiyacı karşılar ve yükseltilmiş yetkileri otomatik olarak zaman aşımına uğratır.

Joker karakter (*) kullanımı hiçbir zaman kabul edilebilir mi?

Bazı sınırlı senaryolarda kabul edilebilir. Örneğin, ec2:Describe* gibi salt okunur eylemlerde joker karakter kullanmak, yönetim yükünü azaltırken güvenlik riskini minimumda tutar. Ancak ec2:* gibi yazma yetkisi içeren joker karakterlerden her zaman kaçının.

Kaynakça / ek okuma

  • Verizon, “2025 Data Breach Investigations Report (DBIR)”, 2025. badge iconVerizon
  • Security Boulevard (atıfla Gartner), “Top Cloud Security Challenges Businesses Face in 2025”, 2025. badge iconSecurity Boulevard
  • AWS Well‑Architected Framework, Security Pillar: Identity and Access Management, 2025. badge iconAWS
  • Microsoft Azure Belgeleri, “Azure RBAC için en iyi uygulamalar”, 2025. badge iconAzure
  • Google Cloud Belgeleri, “IAM’i güvenli kullanma”, 2025. badge iconGCP
  • Cybersecurity Insiders / Fortinet, “2025 State of Cloud Security Report”, 2025. badge iconCybersecurity Insiders
  • AWS IAM Policy Simulator, badge iconSimulator
AWS STS ve Geçici Kimlik Bilgileri: Uzun Vadeli Anahtarlardan Kurtulup Güvenli Rol Geçişine Adım Atın
AWS IAM Kimlik Bilgileri Nasıl Güvenli Yönetilir?

Comments

Loading comments...