Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları
Bulut platformlarında en az ayrıcalıklı IAM rollerini ve hizmet hesaplarını yapılandırın; joker karakter izinleri ve uzun ömürlü anahtarlar gibi yaygın hatalardan kaçının.
Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları, CoddyKit'te ücretsiz bir Security+ Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Security+ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Security+ Academy kursu toplamda 4 dersten oluşur.
Bulut Kimliğinin Temelleri
Bulut ortamlarında kimlik yeni çevre sınırıdır. Bir VM başlatmak, veritabanı okumak veya bir API çağırmak gibi her eylem, çağrıyı yapan kimliğe göre yetkilendirilir. Bulut IAM (Kimlik ve Erişim Yönetimi) sistemleri, kimin hangi kaynak üzerinde ne yapabileceğini tanımlar. Ağ konumunun örtük güven sağladığı şirket içi ortamların aksine bulut IAM, kaynağı neresi olursa olsun her isteğin açıkça yetkilendirilmesini gerektirir.
AWS IAM'de Kullanıcılar, Gruplar ve Roller
AWS IAM üç temel kimlik türüne sahiptir. IAM Kullanıcıları, uzun süreli kimlik bilgilerine (erişim anahtarı + gizli anahtar) sahip bireysel kişileri veya uygulamaları temsil eder. IAM Grupları, kullanıcıları bir araya getirir ve ortak izinler atar. IAM Rolleri, kullanıcılar, AWS hizmetleri (EC2, Lambda) veya diğer hesaplar tarafından üstlenilebilen, geçici kimlik bilgilerine sahip kimliklerdir. Kimlik bilgileri otomatik olarak sona erdiği ve böylece kimlik bilgilerinin açığa çıkması riski azaldığı için roller, uzun süreli erişim anahtarlarına tercih edilir.
# IAM role trust policy — allows EC2 to assume this role
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': { 'Service': 'ec2.amazonaws.com' },
'Action': 'sts:AssumeRole'
}]
}
# EC2 instance with this role attached can call AWS APIs
# using temporary credentials from the instance metadata serviceIAM Policy'lerinde En Az Ayrıcalık
IAM policy'leri, bir kimliğin hangi kaynaklar üzerinde hangi eylemleri gerçekleştirebileceğini tanımlar. En az ayrıcalık ilkesi, policy'lerin yalnızca görev için gereken belirli eylemlere izin vermesini gerektirir. Yaygın ihlaller şunlardır: eylemler için * joker karakterlerini kullanmak (bir hizmetteki tüm eylemlere izin verir), kaynaklar için * kullanmak (tüm kaynaklara erişim sağlar) ve hizmet hesaplarına AdministratorAccess gibi aşırı geniş yetkili yönetilen policy'ler eklemek. Her joker karakter gerekçelendirilmeli ve düzenli olarak gözden geçirilmelidir.
# Overly permissive policy (AVOID)
{
'Effect': 'Allow',
'Action': 's3:*', # all S3 actions
'Resource': '*' # all buckets
}
# Least-privilege policy (PREFERRED)
{
'Effect': 'Allow',
'Action': ['s3:GetObject', 's3:ListBucket'],
'Resource': [
'arn:aws:s3:::my-specific-bucket',
'arn:aws:s3:::my-specific-bucket/*'
]
}GCP'de Hizmet Hesapları
Google Cloud Platform (GCP)'da insan olmayan iş yükleri, JSON anahtar dosyalarına veya Workload Identity Federation'a sahip, yönetilen kimlik varlıkları olan hizmet hesaplarını kullanarak kimlik doğrulaması yapar. Her hizmet hesabı en az ayrıcalık ilkesine uymalıdır: hesabı yalnızca çağırması gereken GCP hizmetlerine bağlayın. Hizmet hesabı anahtarları (konsoldan indirilen JSON dosyaları) parolalar gibi ele alınması gereken, uzun ömürlü kimlik bilgileridir; düzenli olarak yenilenmeli ve kaynak koduna kesinlikle eklenmemeli veya herkese açık depolara yüklenmemelidir.
# Check service account permissions (gcloud)
gcloud projects get-iam-policy my-project \
--flatten='bindings[].members' \
--format='table(bindings.role, bindings.members)' \
--filter='bindings.members:serviceAccount'
# Prefer Workload Identity over service account keys
# (no downloadable key files — uses workload federation tokens)Azure Yönetilen Kimlikleri
Azure Managed Identities (önceden MSI olarak adlandırılırdı), hizmetler için AWS IAM rollerinin Azure'daki karşılığıdır; Azure kaynaklarının (VM'ler, App Service'ler, Functions) kimlik bilgilerini depolamadan Azure API'lerinde kimlik doğrulaması yapmasına olanak tanır. İki türü vardır: sistem tarafından atanan yönetilen kimlikler belirli bir kaynağa bağlıdır ve kaynak silindiğinde silinir. Kullanıcı tarafından atanan yönetilen kimlikler ise birden çok kaynak arasında paylaşılabilen bağımsız nesnelerdir. Yönetilen kimlikler, depolanan anahtarlara veya gizli bilgilere duyulan ihtiyacı ortadan kaldırır.
# Azure CLI — assign managed identity to a VM
az vm identity assign \
--name myVM \
--resource-group myRG \
--identities /subscriptions/.../userAssignedIdentities/myIdentity
# The VM can now call Azure Key Vault without any stored credentials:
# Token is fetched automatically from the Instance Metadata ServiceUzun Ömürlü Kimlik Bilgileri: Risk
Uzun ömürlü kimlik bilgileri — süresi hiç dolmayan statik erişim anahtarları, API belirteçleri ve hizmet hesabı anahtar dosyaları — bulut ortamlarındaki en yüksek riskli unsurlardan biridir. Bu bilgiler (GitHub, S3 bucket'ı, günlükler veya güvenliği ele geçirilmiş bir geliştirici dizüstü bilgisayarı aracılığıyla) sızarsa, elle iptal edilene kadar anında erişim sağlar. Kuruluşlar şunları yapmalıdır: tüm uzun ömürlü kimlik bilgilerini denetlemek, bunları bir takvime göre yenilemek, kısa ömürlü belirteçler üreten rol tabanlı veya federasyonlu erişimi tercih etmek ve kimlik bilgileri herkese açık depolarda göründüğünde hemen uyarı vermek.
# Find IAM access keys older than 90 days (AWS)
aws iam generate-credential-report
aws iam get-credential-report --query 'Content' --output text | \
base64 -d | grep -v 'N/A' | \
awk -F',' '$10 > 90 {print $1, $10}'
# Keys older than 90 days should be rotated or deletedIAM Rol Zincirleme ve Ayrıcalık Yükseltme
IAM ayrıcalık yükseltmesi, bir kimliğin kendisine ek izinler vermek için bir izin bileşimini kullanmasıyla gerçekleşir. Klasik yükseltme yolları arasında kendi kullanıcınıza daha geniş izinlere sahip bir ilke eklemek, yükseltilmiş izinlere sahip yeni bir IAM kullanıcısı oluşturmak, bir role (iam:PassRole) hizmete geçirme yetkisi vermek ve bir Lambda işlevinin yürütme rolünü güncellemek bulunur. AWS'nin IAM Access Analyzer aracı bu örüntüleri algılayabilir; IAM izin sınırları ise herhangi bir kimliğe verilebilecek en yüksek izinleri kesin biçimde sınırlar.
# Dangerous permission combination (enables privilege escalation):
# iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion
# Attacker can create a new policy version with AdministratorAccess
# Or: iam:PassRole + lambda:CreateFunction + lambda:InvokeFunction
# Attacker creates Lambda with a privileged role, invokes it
# Defense: permission boundaries limit maximum grantable permissionsHesaplar Arası Rol Üstlenme
Bulut kuruluşları, etki alanını sınırlamak için genellikle birden çok hesabı (geliştirme, hazırlık, üretim, güvenlik) kullanır. Hesaplar arası rol üstlenme, bir hesaptaki kimliklerin başka bir hesaptaki rolleri üstlenmesine olanak tanır ve merkezi araçların hesaplar genelinde çalışmasını sağlar. Güvenlik denetimleri şunları içerir: karma vekil saldırılarını önlemek için güven ilişkisi ilkesinde bir External ID zorunlu kılmak, Principal ARN aracılığıyla hangi hesapların rolü üstlenebileceğini kısıtlamak ve denetim amacıyla hesaplar arası tüm rol üstlenme işlemlerini CloudTrail'de günlüğe kaydetmek.
# Trust policy with External ID (confused deputy protection)
{
'Effect': 'Allow',
'Principal': { 'AWS': 'arn:aws:iam::PARTNER-ACCOUNT-ID:root' },
'Action': 'sts:AssumeRole',
'Condition': {
'StringEquals': {
'sts:ExternalId': 'unique-shared-secret-12345'
}
}
}IMDS ve Metadata Service Güvenliği
AWS EC2 örnekleri, IAM rolü kimlik bilgilerini Instance Metadata Service (IMDS) üzerinden http://169.254.169.254 adresinden alabilir. SSRF güvenlik açığı sınıfı burada özellikle tehlikelidir: bir uygulama SSRF'ye karşı savunmasızsa saldırgan, sunucuya IMDS URL'sinden veri getirtecek istekler göndererek örneğin IAM rolü kimlik bilgilerini dışarı sızdırabilir. IMDSv2 (oturum belirteci gerektirir), SSRF tabanlı kimlik bilgisi hırsızlığını azaltır ve tüm EC2 örneklerinde zorunlu kılınmalıdır.
# Enforce IMDSv2 on a new EC2 instance (requires token for IMDS)
aws ec2 run-instances \
--metadata-options 'HttpTokens=required,HttpEndpoint=enabled' \
...
# IMDSv1 (insecure) just needs a GET request:
# curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# IMDSv2 requires a PUT to get a session token firstIAM Access Analyzer ve İlke İncelemesi
IAM Access Analyzer (AWS), dış sorumlularla paylaşılan kaynakları ve amaçlanandan daha fazla izin veren IAM ilkelerini otomatik olarak belirler. Bucket ilkelerini, rol güven ilkelerini ve KMS anahtar ilkelerini analiz ederek açıkça amaçlanmamış dış erişimi işaretler. Düzenli IAM ilkesi incelemeleri — ister elle ister Cloudsplaining, PMapper veya Permissions Boundary Analyzer gibi araçlarla — saldırganlar bunları bulmadan önce ayrıcalık yükseltme yollarını belirlemek için zorunludur.
Workload Identity Federation
Workload Identity Federation, dış iş yüklerinin (GitHub Actions, şirket içi sistemler, diğer bulut sağlayıcıları) uzun ömürlü hizmet hesabı anahtarları yerine kısa ömürlü OIDC belirteçlerini kullanarak bulut IAM'de kimlik doğrulaması yapmasına olanak tanır. Bir GitHub Actions iş akışı, işin süresi boyunca OIDC belirtecini kullanarak bir AWS IAM rolünü üstlenebilir; ardından belirtecin süresi dolar. Bu yaklaşım, CI/CD işlem hatlarında uzun ömürlü kimlik bilgilerinin sızmasına ilişkin risk sınıfını tamamen ortadan kaldırır.
Hızlı Kontrol
Bu derste ele alınan CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: IAM rolleri geçici kimlik bilgileri sağlar ve bulut iş yüklerinde uzun ömürlü erişim anahtarlarına kıyasla tercih edilir, en az ayrıcalık ilkeleri joker karakterlerden kaçınmalı ve yalnızca belirli kaynaklar üzerinde belirli eylemlere izin vermelidir ve IMDSv2, izin sınırları ve iş yükü kimliği federasyonu yaygın kimlik bilgisi açığa çıkma yollarını ortadan kaldırır. Sırada Cloud Security Posture Management (CSPM) konusunu inceleyeceğiz.
Yapay zeka eğitmeniyle Security+ Academy öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları” dersi ücretsiz mi?
Evet — “Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Security+ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Security+ Academy kursu toplamda 4 dersten oluşur.
“Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları” dersinde ne öğreneceğim?
Bulut platformlarında en az ayrıcalıklı IAM rollerini ve hizmet hesaplarını yapılandırın; joker karakter izinleri ve uzun ömürlü anahtarlar gibi yaygın hatalardan kaçının. Security+ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Security+ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Security+ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Security+ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Security+ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Paylaşılan Sorumluluk Modeli: IaaS, PaaS, SaaS
- Bulut Depolama Güvenliği ve Veri Açığa Çıkma Riskleri
- Bulut Kimliği: IAM Rolleri ve Hizmet Hesapları
- Bulut Güvenlik Duruşu Yönetimi (CSPM)