Depo koruması

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

Kaynak kodu, işlem hattının YAML dosyası ve gerekli betikler ve araçlar bir sürüm denetimi deposunda depolanır. Kodda ve işlem hattında yapılan değişikliklerin güvenli olduğundan emin olmak için izinler ve dal ilkeleri kullanılmalıdır. Depolara işlem hattı izinleri ve denetimleri de ekleyebilirsiniz.

Ayrıca, depolar için varsayılan erişim denetimini gözden geçirmeniz gerekir.

Git'in tasarımı nedeniyle, dal düzeyinde koruma sizi yalnızca şu ana kadar taşıyacaktır. Depoya anında iletme erişimi olan kullanıcılar genellikle yeni dallar oluşturabilir. GitHub açık kaynak projelerini kullanıyorsanız GitHub hesabı olan herkes deponuzun çatalını oluşturabilir ve katkıları geri önerebilir. İşlem hatları belirli dallarla değil bir depoyla ilişkilendirildiğinden, kod ve YAML dosyalarının güvenilmediğini varsaymalısınız.

Çatallar

GitHub'dan genel depolar oluşturuyorsanız çatal derlemelerine ilişkin tutumunuzu göz önünde bulundurmanız gerekir. Çatallar özellikle kuruluşunuzun dışından geldikleri için tehlikelidir. Ürünlerinizi katkıda bulunan koddan korumak için aşağıdaki önerileri göz önünde bulundurun.

Dekont

Aşağıdaki öneriler öncelikle GitHub'dan genel depolar oluşturmak için geçerlidir.

Çatal derlemelerine gizli dizi sağlama

Varsayılan olarak, işlem hatlarınız çatal oluşturacak şekilde yapılandırılır, ancak gizli diziler ve korumalı kaynaklar bu işlem hatlarındaki işler için varsayılan olarak kullanılamaz. Bu ikinci korumayı kapatmayın.

Screenshot of fork build protection UI.

Dekont

Gizli dizilere erişmek için çatal derlemelerini etkinleştirdiğinizde, Azure Pipelines varsayılan olarak çatal derlemeleri için kullanılan erişim belirtecini kısıtlar. Açık kaynaklara normal erişim belirtecinden daha sınırlı erişimi vardır. Çatal derlemelerine normal derlemelerle aynı izinleri vermek için, Çatal derlemelerinin normal derlemelerle aynı izinlere sahip olmasını sağlayın ayarını etkinleştirin.

Screenshot of fork build protection UI in Azure DevOps Server 2020 and lower.

Dekont

Gizli dizilere erişmek için çatal derlemelerini etkinleştirseniz bile Azure Pipelines, çatal derlemeleri için kullanılan erişim belirtecini kısıtlar. Açık kaynaklara normal erişim belirtecinden daha sınırlı erişimi vardır. Bu korumayı devre dışı bırakamazsınız.

Çatal derlemelerini el ile tetikleme göz önünde bulundurun

Otomatik çatal derlemelerini kapatabilir ve bunun yerine bu katkıları el ile oluşturmanın bir yolu olarak çekme isteği açıklamalarını kullanabilirsiniz. Bu ayar, derlemeyi tetiklemeden önce kodu gözden geçirme fırsatı verir.

Çatal derlemeleri için Microsoft tarafından barındırılan aracıları kullanma

Şirket içinde barındırılan aracılarda çatallardan derlemeler çalıştırmayın. Bunu yaparak, şirket ağınızdaki makinelerde dış kuruluşların dışarıdan kod çalıştırması için etkili bir yol sağlamış olursunuz. Mümkün olduğunda Microsoft tarafından barındırılan aracıları kullanın. Şirket içinde barındırılan aracınız için bir tür ağ yalıtımı kullanın ve aracıların durumları arasında kalıcı olmadığından emin olun.

Kod değişikliklerini gözden geçirme

çatallı bir çekme isteğinde işlem hattınızı çalıştırmadan önce önerilen değişiklikleri dikkatle gözden geçirin ve rahatça çalıştırdığınızdan emin olun.

Çalıştırabileceğiniz YAML işlem hattının sürümü, çekme isteğinden alınan sürümdür. Bu nedenle, komut satırı betikleri veya birim testleri gibi işlem hattı çalıştırıldığında YAML kodunda ve kodda yapılan değişikliklere özellikle dikkat edin.

GitHub belirteç kapsamı sınırlaması

GitHub çatallı çekme isteği oluşturduğunuzda Azure Pipelines, işlem hattının GitHub depo içeriğini değiştiremesini sağlar. Bu kısıtlama yalnızca Azure Pipelines GitHub uygulamasını GitHub ile tümleştirmek için kullandığınızda geçerlidir. OAuth uygulaması gibi diğer GitHub tümleştirme biçimlerini kullanıyorsanız kısıtlama uygulanmaz.

Kullanıcı dalları

Kuruluşunuzdaki doğru izinlere sahip kullanıcılar yeni veya güncelleştirilmiş kod içeren yeni dallar oluşturabilir. Bu kod korumalı dallarınızla aynı işlem hattı üzerinden çalıştırılabilir. Ayrıca, yeni daldaki YAML dosyası değiştirilirse, işlem hattını çalıştırmak için güncelleştirilmiş YAML kullanılır. Bu tasarım büyük esneklik ve self servis sağlarken, tüm değişiklikler güvenli değildir (kötü amaçlı olarak yapılıp yapılmadığı).

İşlem hattınız kaynak kodu kullanıyorsa veya Azure Repos'ta tanımlanmışsa Azure Repos izinleri modelini tam olarak anlamanız gerekir. Özellikle, depo düzeyinde Dal Oluşturma iznine sahip bir kullanıcı, katkıda bulunma izni olmasa bile depoya kod ekleyebilir.

Sonraki adımlar

Ardından, korumalı kaynaklar üzerinde denetimler tarafından sunulan daha fazla koruma hakkında bilgi edinin.