Rehberler Uzun Okuma Aws

EC2 kimlik yönetimi

IAM roller ve IMDSv2.

8 Nisan 2026 18 dk okuma
Paylaş
X in

Giriş

EC2 instance'larına AWS API erişimi için IAM Role atanır; access key dosyada saklanmaz. Instance Profile role'ün EC2'ye bağlantısıdır.

Instance Metadata Service (IMDS) 169.254.169.254 üzerinden instance bilgisi ve geçici credential sağlar.

IMDSv2 session-oriented ve SSRF saldırılarına karşı daha güvenlidir.

IAM Role ve Instance Profile

Role oluşturun, gerekli policy ekleyin (ör. S3 read), instance profile oluşturup role bağlayın, launch'ta profile seçin.

Principle of least privilege: yalnızca gerekli action ve resource.

aws iam create-role --role-name ec2-s3-read \
  --assume-role-policy-document file://trust-ec2.json

aws iam attach-role-policy --role-name ec2-s3-read \
  --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

IMDSv2 Yapılandırması

Launch template'de MetadataOptions: HttpTokens=required IMDSv2 zorunlu kılar. HttpPutResponseHopLimit=1 container dışına metadata sızıntısını önler.

IMDSv1 devre dışı bırakılmalıdır; güvenlik best practice.

aws ec2 modify-instance-metadata-options \
  --instance-id i-xxx \
  --http-tokens required \
  --http-put-response-hop-limit 1

Metadata Kullanımı

curl ile token alın, sonra metadata endpoint'ine istek yapın. Instance ID, AZ, role credential okunabilir.

SDK (boto3) otomatik credential chain kullanır; role varsa metadata'dan alır.

TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
  -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
  http://169.254.169.254/latest/meta-data/iam/security-credentials/

Güvenlik Riskleri

SSRF açığı IMDS credential sızıntısına yol açabilir. IMDSv2 token gerektirir. Hop limit container ortamında kritiktir.

Role policy'de s3:* gibi geniş izinlerden kaçının.

Tüm yeni instance'larda HttpTokens=required varsayılan yapın.

Audit ve Compliance

IAM Access Analyzer kullanılmayan role tespit eder. CloudTrail API çağrılarını loglar.

Per-instance role yerine işlev bazlı role (app role, backup role) tercih edin.

  1. IMDSv2 zorunlu
  2. Least privilege policy
  3. Instance profile kullanın
  4. Access key EC2'de saklamayın
  5. CloudTrail izleme

Sonuç

IAM Role + Instance Profile EC2 güvenliğinin temelidir. IMDSv2 etkinleştirin, least privilege uygulayın, access key kullanmayın.

Metadata erişimini container hop limit ile sınırlayın.