Share via


Azure Pipelines'da paylaşılan altyapının güvenliğini sağlamak için Öneriler

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Pipelines'daki korumalı kaynaklar, gerçek altyapının soyutlamasıdır. Temel alınan altyapıyı korumak için bu önerileri izleyin.

Microsoft tarafından barındırılan havuzları kullanma

Microsoft tarafından barındırılan havuzlar, bir işlem hattının her çalıştırması için yalıtım ve temiz bir sanal makine sunar. Mümkünse, şirket içinde barındırılan havuzlar yerine Microsoft tarafından barındırılan havuzları kullanın.

Her proje için ayrı aracılar

Bir aracı yalnızca bir havuza bağlanabilir. Havuzu birden çok projeyle paylaşarak aracıları projeler arasında paylaşmak isteyebilirsiniz. Başka bir deyişle, birden çok proje aynı aracıda birer birer iş çalıştırabilir. Bu uygulama altyapı maliyetlerinden tasarruf etmesine rağmen yanal hareketlere izin verebilir.

Bu yanal hareket biçimini ortadan kaldırmak ve bir projenin başka bir proje için bir aracıyı "zehirlemesini" önlemek için, her proje için ayrı aracılarla ayrı aracı havuzları tutun.

Aracıları çalıştırmak için düşük ayrıcalıklı hesaplar kullanma

Aracıyı Azure DevOps kaynaklarına doğrudan erişebilen bir kimlik altında çalıştırmak cazip ancak tehlikelidir. Bu sorunlu kurulum, Microsoft Entra Id kullanan kuruluşlarda yaygındır. Aracıyı Microsoft Entra Kimliği tarafından yedeklenen bir kimlik altında çalıştırırsanız, işin erişim belirtecini kullanmadan Azure DevOps API'lerine doğrudan erişebilir. Bunun yerine aracıyı Ağ Hizmeti gibi ayrıcalıklı olmayan bir yerel hesap olarak çalıştırmanız gerekir.

Azure DevOps' un yanıltıcı olarak Project Collection Service Hesapları adlı bir grubu vardır. Devralma yoluyla, Proje Koleksiyonu Hizmet Hesaplarının üyeleri de Proje Koleksiyonu Yönetici istrator'larının üyeleridir. Müşteriler bazen Microsoft Entra Id tarafından yedeklenen ve Project Collection Service Hesapları'nın bir üyesi olan bir kimlik kullanarak derleme aracılarını çalıştırır. Saldırganlar bu derleme aracılarından birinde bir işlem hattı çalıştırırsa Azure DevOps kuruluşunun tamamını devralabilir.

Şirket içinde barındırılan aracıların yüksek ayrıcalıklı hesaplar altında çalıştığını da gördük. Bu aracılar genellikle gizli dizilere veya üretim ortamlarına erişmek için ayrıcalıklı hesaplar kullanır. Ancak saldırganlar bu derleme aracılarından birinde güvenliği aşılmış bir işlem hattı çalıştırırsa bu gizli dizilere erişebilirler. Daha sonra saldırganlar, bu hesaplardan erişilebilen diğer sistemlerde yandaki gibi hareket edebilir.

Sistemlerinizin güvenliğini sağlamak için, şirket içinde barındırılan aracıları çalıştırmak için en düşük ayrıcalıklı hesabı kullanın. Örneğin, makine hesabınızı veya yönetilen hizmet kimliğini kullanın. Azure Pipelines'ın gizli dizilere ve ortamlara erişimi yönetmesine izin verin.

Hizmet bağlantılarının kapsamını en aza indirme

Hizmet bağlantılarının yalnızca ihtiyaç duydukları kaynaklara erişebilmesi gerekir. Mümkünse Azure hizmet bağlantınız için hizmet sorumlusu yerine iş yükü kimlik federasyonu kullanın. İş yükü kimlik federasyonu, Azure ile Azure DevOps arasında kimlik doğrulamasını kolaylaştırmak ve gizli dizileri kullanmamak için endüstri standardı bir teknoloji olan Open ID Bağlan (OIDC) kullanır.

Azure hizmet bağlantınızın kapsamı, hizmet bağlantısının erişmesi gereken kaynaklar olarak belirlenmiş olmalıdır. Kullanıcıların Azure aboneliğinin tamamı için geniş katkıda bulunan haklarına sahip olmaması gerekir.

Yeni bir Azure Resource Manager hizmet bağlantısı oluşturduğunuzda her zaman bir kaynak grubu seçin. Kaynak grubunuzun yalnızca derlemenin gerektirdiği VM'leri veya kaynakları içerdiğinden emin olun. Benzer şekilde, GitHub uygulamasını yapılandırırken yalnızca Azure Pipelines kullanarak oluşturmak istediğiniz depolara erişim izni verin.

Sonraki adımlar

Güvenlikle ilgili birkaç genel öneriyi göz önünde bulundurun.