GitHub'da beyaz listeler (allowlist) nasıl çalışır ve neden gereklidir

Kerem Aydın·9 Temmuz 2026·⏱3 dk

GitHub'daki allowlist (beyaz liste), bir depoya, iş akışına veya organizasyona erişim izni verilen kullanıcıların, ekiplerin, uygulamaların veya eylemlerin açık listesidir; allowlist'in yapılandırılması yetkisiz push işlemleri, kötü amaçlı Actions'ların çalıştırılması ve üçüncü taraf uygulamaların kullanılması riskini azaltır. Aşağıda uygulama adımları ve öneriler yer almaktadır.

Allowlist nedir ve nerede kullanılır

Allowlist, "yalnızca açıkça belirtilenlere izin verilir" politikasıdır. GitHub'da bu politika üç ana alanda uygulanır:

  • Kod erişimi: iş birliği ve ekipler (Manage access, teams).
  • CI/CD: izin verilen GitHub Actions'ları ve yeniden kullanılabilir iş akışları (Settings → Actions → General).
  • Entegrasyonlar ve runner'lar: onaylanmış GitHub Apps'leri, OAuth uygulamaları ve self-hosted runner grupları.

Bu yaklaşım özellikle yüksek güvenlik seviyesine sahip organizasyonlar için faydalıdır: finans, devlet projeleri, büyük ölçekli open-source depolar.

Depoda ve organizasyonda beyaz liste nasıl yapılandırılır — adım adım

  1. Kontrol alanını belirleyin: depo, depo grubu veya tüm organizasyon.
  2. Kod erişimi:
    • Depoda: Settings → Manage access → Invite teams/collaborators; ayrı kullanıcılar yerine ekipleri kullanın.
    • Organizasyonda: gerekli izinlere sahip ekipler oluşturun ve erişimi yönetmek için bunları kullanın.
    • Korunan dalları (Branch protection) etkinleştirin ve Pull Request, kontroller ile zorunlu incelemeler talep edin.
  3. İzin verilen Actions'lar:
    • Settings → Actions → General bölümüne gidin.
    • "Allow specified actions and reusable workflows" seçeneğini seçin.
    • Belirli actions'ları (owner/name formatında) ekleyin veya "Only actions in this repository" seçeneğini işaretleyin.
    • Organizasyonlar için org düzeyinde politika belirleyerek depolara miras alınmasını sağlayın.
  4. Runner yönetimi:
    • Self-hosted runner'lar gruplanır ve bunları kullanabilecek depoların listesi tanımlanır.
    • Organization settings → Actions → Runner groups bölümünde hangi depoların kabul edileceğini belirtin.
  5. İzin verilen uygulamalar:
    • Organization → Third-party access / OAuth application allowlist bölümünde belirli uygulamaların kullanımını onaylayın.
  6. Otomasyon:
    • Yeni depoların ayarları hemen miras alması için depo şablonlarını ve organizasyon politikalarını kullanın.
    • Düzenli erişim incelemeleri: katılımcı listesini dışa aktarın ve etkinliği kontrol edin.

Yeni başlıyorsanız: önce Actions'ları kısıtlayın, ancak CI'yı tamamen devre dışı bırakmayın — dahili/yerel iş akışlarına izin verebilir ve harici olanları aşamalı olarak ekleyebilirsiniz.

Yönetim ve otomasyon için ipuçları

  • Ekip adlarını ve rollerini standartlaştırın (örneğin: infra-read, infra-write, ci-admin).
  • Denetimi etkinleştirin: erişim değişiklikleri, uygulama onayları ve Actions yürütmeleri için Audit Log'u kontrol edin.
  • Etkin olmayan katılımcıların otomatik olarak kaldırılmasını sağlayın (betik veya GitHub Apps ile).
  • Yeni Actions/Apps onay sürecini belgeleyin ve latest sürümüne bağımlı kalmamak için onaylanmış sürümlerin (tag/sha) listesini tutun.

Sık yapılan bir hata — Actions'lar için "organizasyon içindeki her şeyi" izin vermek ve aynı zamanda kontrol etmeden başkalarının yeniden kullanılabilir iş akışlarını kabul etmek; bu korumayı ortadan kaldırır.

Sık yapılan hatalar

  • Gerekli actions'lar dahil edilmediği için CI'yı bozan aşırı katı allowlist.
  • Scope kontrolü yapılmadan uygulamalara izin verilmesi (gereksiz haklar elde ederler).
  • Branch protection'ın tüm sorunları çözeceği beklentisi — uygulamalar ve Actions'lar kontrol edilmezse CI'nız kötü amaçlı kod çalıştırabilir.
  • Düzenli incelemelerin eksikliği ve eski izinlerin kaldırılmaması.

SSS

  • Allowlist yalnızca tek bir depo için ayarlanabilir mi?
    • Evet. Actions, collaborators ve branch protection ayarları depo düzeyinde yapılandırılabilir.
  • İş akışı izin verilmeyen bir action kullanırsa ne yapılmalı?
    • owner/name formatında allowlist'e ekleyin veya incelemeden sonra SHA bazlı sürüm kullanın.
    • Organizasyonda hangi uygulamaların izinli olduğunu hızlıca nasıl kontrol edebilirim?
    • Organizasyon ayarlarında Third-party access / OAuth application allowlist bölümünü ve Audit Log'u inceleyin.

Sonuç: allowlist'i aşamalı olarak uygulayın — Actions'lar ve kod erişimi ile başlayın, incelemeleri otomatikleştirin ve kuralları belgeleyin. Bu, iş süreçlerinde minimum aksama ile güçlü bir koruma sağlayacaktır.