İçeriğe geç
Yeni yazı çıkınca e-posta · 4.812 abone 87 rehber · 52 ipucu · 8 komut RSS GitHub LinkedIn İletişim
Ara Bültene katıl
Bültene katıl 4.812 abone · yeni yazı çıkınca e-posta
Google Cloud

GCP IAM: temel roller neden tehlikeli

Editor rolü bir kişiye verilen en kolay ve en pahalı karardır. Önceden tanımlı rollerle daraltmanın pratik yolu.

Mustafa Çelik 17 Şubat 2026 · 9 dk okuma

roles/owner, roles/editor, roles/viewer — bunlara temel roller denir ve Google bile üretimde kullanılmamasını önerir. Sorun şu: editor neredeyse her şeyi değiştirebilir, ama denetimde “kim neyi değiştirebilir” sorusuna cevap veremezsiniz.

Mevcut durumu görün

gcloud projects get-iam-policy sirket-uretim-web \
  --flatten="bindings[].members" \
  --filter="bindings.role:roles/editor OR bindings.role:roles/owner" \
  --format="table(bindings.role, bindings.members)"

Bu listede insan olmayan hesaplar (servis hesapları) varsa öncelik onlardır — bir servis hesabının editor olması, ele geçirildiğinde projenin tamamı demektir.

Gerçekten hangi izinler kullanılıyor?

Policy Analyzer ve öneri motoru, son 90 günün kullanımına bakarak daha dar rol önerir:

gcloud recommender recommendations list \
  --project=sirket-uretim-web \
  --location=global \
  --recommender=google.iam.policy.Recommender \
  --format="table(content.overview.member, content.overview.removedRole, content.overview.addedRoles)"

Bu çıktı, tartışmayı fikirden veriye taşır: “sana editor lazım” yerine “son 90 günde şu 6 izni kullandın”.

Daraltma sırası

  1. Servis hesapları (en yüksek risk, en düşük itiraz)
  2. CI/CD kimlikleri
  3. İnsan kullanıcıları — burada grup kullanın, kişi değil
  4. owner yalnızca break-glass için kalsın

Grup kullanın

Rolü kişiye vermek, ekip değiştiğinde unutulur. Google Workspace grubuna verirseniz üyelik değişimi erişimi otomatik günceller:

gcloud projects add-iam-policy-binding sirket-uretim-web \
  --member="group:platform-ekibi@sirket.com" \
  --role="roles/compute.viewer"

Doğrulama adımı

Daraltmadan bir hafta sonra Cloud Logging’de reddedilen çağrıları arayın:

protoPayload.status.code=7

Kod 7 PERMISSION_DENIED demektir. Çıkan kayıtlar ya gerçekten gereken bir izni kestiğinizi ya da bilmediğiniz bir otomasyonu bulduğunuzu gösterir. İkisi de değerli — ama fark etmeden bırakılırsa ikisi de olaydır.

Mustafa Çelik

Kıdemli Sistem Yöneticisi, Ankara. 12 yıldır Windows Server, Active Directory ve ağ altyapısıyla uğraşıyor; öğrendiklerini bu blogda üretim ortamında denenmiş rehberlere çeviriyor.

Hakkımda

Bu rehber işinize yaradıysa, sonrakini kaçırmayın.

Yeni yazı yayınlandığında tek e-posta. Takvim yok, dilediğiniz an çıkabilirsiniz.

Bülten sağlayıcısı henüz bağlanmadı. Bağlanana kadar e-posta ile yazabilirsiniz ya da RSS akışını takip edebilirsiniz.