Aracılığıyla paylaş


En iyi güvenlik uygulamaları

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Özellikle Azure DevOps Services gibi bulut tabanlı bir çözümde bilgi ve verilerle çalışırken, güvenliği önceliklendirmek her zaman birincil endişeniz olmalıdır. Microsoft, temel bulut altyapısının güvenliğini korurken, Azure DevOps'ta güvenliği yapılandırmak sizin sorumluluğunuzdadır.

Zorunlu olmasa da, Azure DevOps kullanırken en iyi yöntemlerin bir arada kullanılması deneyiminizi geliştirebilir ve daha güvenli hale getirebilirsiniz. Aşağıdaki en iyi yöntemler, Azure DevOps ortamınızı güvenli tutmayı amaçlar:

Azure DevOps ortamının güvenliğini sağlama

Kullanıcıları kaldırma

  • Kuruluşunuz MSA hesaplarını kullanıyorsa, erişimi engellemenin başka bir yolunuz olmadığından etkin olmayan kullanıcıları doğrudan kuruluştan kaldırın. Bunu yaptığınızda, kaldırılan kullanıcı hesabına atanan iş öğeleri için sorgu oluşturamazsınız. Daha fazla bilgi için bkz . Azure DevOps'tan kullanıcıları silme.
  • Kuruluşunuz Microsoft Entra Id'ye bağlıysa Microsoft Entra kullanıcı hesabını devre dışı bırakabilir veya silebilir ve Azure DevOps kullanıcı hesabınızı etkin bırakabilirsiniz. Bu şekilde, Azure DevOps kullanıcı kimliğinizi kullanarak iş öğesi geçmişini sorgulamaya devam edebilirsiniz.
  • Kullanıcı PAT'lerini iptal etme.
  • Tek tek kullanıcı hesaplarına verilen özel izinleri iptal edin.
  • Kaldırdığınız kullanıcıların çalışmalarını geçerli ekip üyelerine yeniden atayın.

Microsoft Entra Id kullanma

Kimlik için tek bir düzleme sahip olmak için Azure DevOps'u Microsoft Entra ID ile tümleştirin. Tutarlılık ve tek bir yetkili kaynak, netliği artırır ve insan hatalarından ve yapılandırma karmaşıklığından kaynaklanan güvenlik risklerini azaltır. İdareyi sonlandırmanın anahtarı, birden çok rol ataması (aynı Microsoft Entra gruplarına farklı rol tanımları ve farklı kaynak kapsamları ile) sahip olmaktır. Microsoft Entra Kimliği olmadan, kuruluş erişimini denetlemek yalnızca sizin sorumluluğunuzdadır.

Microsoft Entra Id'yi kullanmak, çok faktörlü kimlik doğrulaması veya diğer koşullu erişim ilkeleri gibi diğer güvenlik özelliklerine de erişmenizi sağlar.

Daha fazla bilgi için aşağıdaki makaleleri inceleyin:

Denetim olaylarını gözden geçirme

Microsoft Entra destekli bir kuruluşunuz olduğunda, Güvenlik ilkelerinizde Denetimi açabilirsiniz. Yöneticiler ve diğer kullanıcıların beklenmeyen kullanım düzenlerini izlemek ve bunlara tepki vermek için denetim olaylarını düzenli aralıklarla gözden geçirin.

Ağınızın güvenliğini sağlama

Bunu yapmanın birkaç yolu şunlar olabilir:

  • Belirli IP'leri kısıtlamak için bir izin listesi ayarlayın.
  • Her zaman şifreleme kullanın.
  • Sertifikaları doğrulayın.
  • Azure DevOps'a gelen ve azuredan gelen kötü amaçlı web tabanlı trafiği filtrelemek, izlemek ve engellemek için Web uygulaması güvenlik duvarlarını (WAF) uygulayın.
  • Daha fazla bilgi için uygulama yönetimi en iyi yöntemleriyle ilgili bu kılavuza bakın

Kapsamlı izinler

Sistem, bireysel, koleksiyon, proje ve nesne gibi farklı düzeylerdeki izinleri yönetir ve bunları varsayılan olarak bir veya daha fazla yerleşik gruba atar.

Proje düzeyinde izinler

  • Hassas bilgilerin sızdırılması ve güvenli olmayan kodun üretime dağıtılması riskini azaltmak için projelere ve depolara erişimi sınırlayın.
  • İzinleri yönetmek için yerleşik güvenlik gruplarını veya özel güvenlik gruplarını kullanın. Daha fazla bilgi için bkz . Görevleri seçmek için izin verme veya kısıtlama.
  • Her kuruluş kullanıcılarının genel proje oluşturmasını önlemek için kuruluşunuzun ilke ayarlarında "Genel projelere izin ver" seçeneğini devre dışı bırakın. Azure DevOps Services, projelerinizin görünürlüğünü genelden özele (veya tam tersi) değiştirmenize olanak tanır. Kullanıcılar kuruluşunuzda oturum açmadıysa, genel projelerinize salt okunur erişime sahip olur. Kullanıcılar oturum açtıysa, onlara özel projelere erişim izni verilebilir ve bu projelerde izin verilen değişiklikler yapılabilir.
  • Kullanıcıların yeni projeler oluşturmasına izin verme.

Dış konuk erişimi

  • "Davetlerin herhangi bir etki alanına gönderilmesine izin ver" ilkesini devre dışı bırakarak dış konuk erişimini tamamen engelleyin. İş gereği yoksa bunu yapmak iyi bir fikirdir.
  • İzin verilse bile kişisel ve iş hesaplarınız için farklı bir e-posta veya kullanıcı asıl adı (UPN) kullanın. Bu eylem, e-posta/UPN aynı olduğunda iş ve kişisel hesaplarınız arasında ayrım yapmak zorluğu ortadan kaldırır.
  • Tüm dış konuk kullanıcıları tek bir Microsoft Entra grubuna yerleştirin ve bu grubun izinlerini uygun şekilde yönetin. Bu şekilde kolayca yönetebilir ve denetleyebilirsiniz.
    • Grup kurallarının bu kullanıcılara uygulanması için doğrudan atamaları kaldırın. Daha fazla bilgi için bkz . Erişim düzeyleri atamak için grup kuralı ekleme.
    • Kullanıcılar sayfasının Grup kuralları sekmesinde kuralları düzenli olarak yeniden değerlendirin. Microsoft Entra Id'deki grup üyeliği değişikliklerinin kuruluşunuzu etkileyip etkilemeyebileceğini netleştirin. Microsoft Entra Id'nin dinamik grup üyeliğini güncelleştirmesi 24 saat kadar sürebilir. Her 24 saatte bir ve bir grup kuralı değiştiğinde, kurallar sistemde otomatik olarak yeniden değerlendirilir.
  • Daha fazla bilgi için bkz . Microsoft Entra Id'de B2B konukları.

Güvenlik gruplarını yönetme

Güvenlik ve kullanıcı grupları

Güvenlik gruplarına ve kullanıcı gruplarına izin atamak için aşağıdaki önerilere bakın.

Yap Yapma
Çok sayıda kullanıcıyı yönetirken Microsoft Entra Id, Active Directory veya Windows güvenlik gruplarını kullanın. Proje Geçerli Kullanıcıları grubunun varsayılan izinlerini değiştirmeyin. Bu grup proje bilgilerine erişebilir ve bunları görüntüleyebilir.
Ekip eklerken alan yolları, yineleme yolları ve sorgular oluşturması ve değiştirmesi gereken ekip üyelerine atamak istediğiniz izinleri göz önünde bulundurun. Farklı izin düzeyleri içeren birden çok güvenlik grubuna kullanıcı eklemeyin. Bazı durumlarda, reddetme izin düzeyi İzin ver düzeyini geçersiz kılabilir.
Birçok ekip eklerken, Project Yönetici istrator'ların kullanabileceği izinlerin bir alt kümesini ayırdığınız bir Team Yönetici istrators özel grubu oluşturmayı göz önünde bulundurun. Proje Geçerli Kullanıcıları gruplarına yapılan varsayılan atamaları değiştirmeyin. Proje Geçerli Kullanıcılar gruplarından biri için Örnek düzeyi bilgilerinigörüntüle seçeneğini Reddet olarak ayarlarsanız veya kaldırırsanız, gruptaki hiçbir kullanıcı izni ayarladığınız proje, koleksiyon veya dağıtıma erişemez.
İş öğesi sorgu klasörlerine katkıda bulunma izni vermeyi göz önünde bulundurun Proje için iş öğesi sorguları oluşturma ve paylaşma yeteneğine ihtiyaç duyan kullanıcılara veya gruplara izin verin. Kullanıcı hesaplarına yalnızca hizmet hesaplarına ata olarak not edilen izinleri atayın.
Grupları olabildiğince küçük tutun. Erişim kısıtlanmalı ve gruplar sık sık denetlenmelidir.
Yerleşik rollerden yararlanın ve geliştiriciler için varsayılan olarak Katkıda Bulunan'ı seçin. Yönetici yükseltilmiş izinler için Project Yönetici istrator güvenlik grubuna atanarak güvenlik izinlerini yapılandırmalarına olanak sağlar.

Daha fazla bilgi için bkz . Geçerli kullanıcı grupları.

Yönetici grupları için tam zamanında erişim

Project Collection Yönetici istrator ve Project Yönetici istrator erişiminiz varsa kuruluşunuzun veya projenizin yapılandırmasını değiştirebilirsiniz. Bu yerleşik yönetici gruplarına erişimi korumak için Bir Microsoft Entra Privileged Identity Management (PIM) grubu kullanarak tam zamanında erişim gerektirin.

Erişimi yapılandırma

  1. Microsoft Entra Id'de rol atanabilir bir grup oluşturun.
  2. Microsoft Entra grubunuzu Azure DevOps grubuna ekleyin.

Not

BIR PIM grubu kullanan yükseltilmiş erişime sahip tüm kullanıcıların, izinlerini yenilemek için sayfayı görüntüleyebilmeleri için kuruluşa da standart erişime sahip olduğundan emin olun.

Erişimi kullanma

  1. Erişiminizi etkinleştirin.
  2. Azure DevOps'ta izinlerinizi yenileyin.
  3. Yönetici erişimi gerektiren eylemi gerçekleştirin.

Not

Kullanıcılar, PIM grubu erişimi devre dışı bırakıldıktan sonra Azure DevOps'ta 1 saate kadar yükseltilmiş erişime sahiptir.

Kapsam hizmeti hesapları

  • Hizmet hesaplarının etkileşimli oturum açma haklarının sıfır olduğundan emin olun.
  • Hizmet hesabı ayrıcalıklarını gereken en düşük değerle kısıtlayın.
  • Hizmet hesaplarınız için etki alanı hesapları kullanıyorsanız rapor okuyucu hesabı için farklı bir kimlik kullanın. Daha fazla bilgi için bkz . Hizmet hesapları ve bağımlılıkları.
  • Bir çalışma grubuna bileşen yüklüyorsanız, kullanıcı hesapları için yerel hesapları kullanın. Daha fazla bilgi için bkz . Hizmet hesabı gereksinimleri.
  • Mümkün olduğunda hizmet bağlantılarını kullanın. Hizmet bağlantıları, gizli dizi değişkenlerini doğrudan derlemeye geçirmeye gerek kalmadan çeşitli hizmetlere bağlanmak için güvenli bir mekanizma sağlar. - Bu bağlantıları, kullanılmaları gereken belirli bir yerle kısıtlayın ve başka bir şey yapmasın.
  • Hizmet hesabı etkinliğini izleyin ve denetim akışı oluşturun. Denetim, şüpheli oturum açmaları ve etkinlikleri algılamanıza ve bunlara tepki vermenizi sağlar.
  • Daha fazla bilgi için bkz . Ortak hizmet bağlantı türleri.

Kapsam hizmeti bağlantıları

  • Azure Resource Manager'ın ve diğer hizmet bağlantılarının kapsamını yalnızca erişmeleri gereken kaynaklar ve gruplar için belirleyin. Hizmet bağlantıları, Azure aboneliğinin tamamında geniş kapsamlı katkıda bulunan haklarına sahip olmamalıdır.
  • Azure Resource Manager (ARM) hizmet bağlantılarınız için iş yükü kimlik federasyonu kullanın. İş yükü kimlik federasyonu, Azure Pipelines'ta Azure'a gizli dizi içermeyen hizmet bağlantıları oluşturmanıza olanak tanır.
  • Kullanıcılara Azure aboneliğinde genel veya geniş katkıda bulunan hakları vermeyin.
  • İzinlerin kapsamını kapsamanın hiçbir yolu olmadığından Azure Klasik hizmet bağlantılarını kullanmayın.
  • Kaynak grubunun yalnızca derlemenin erişmesi gereken Sanal Makineler (VM) veya kaynaklar içerdiğinden emin olun.
  • Hizmet bağlantısının kimliğini doğrulamak için amaca özgü bir ekip hizmeti hesabı kullanın.
  • Daha fazla bilgi için bkz . Ortak hizmet bağlantı türleri.

Doğru kimlik doğrulaması yöntemini seçme

Aşağıdaki kaynaklardan kimlik doğrulama yöntemlerinizi seçin:

Hizmet sorumlularını göz önünde bulundurun

Azure DevOps kaynaklarına erişmek için Microsoft Entra belirteçlerini kullanmanızı sağlayan hizmet sorumluları ve yönetilen kimlikler gibi alternatifleri keşfedin. Bu belirteçler, SıZDıRıldığında PAT'lere kıyasla daha az risk taşır ve kolay kimlik bilgisi yönetimi gibi avantajlar içerir.

PAT'leri tedbirli kullanma

Mümkünse, anahtarları uygulama koduyla güvenli bir şekilde yönetmek zor olduğundan ve gitHub gibi ortak kod depolarında yanlışlıkla hassas erişim anahtarları yayımlama gibi hatalara yol açabileceğinden, şifreleme anahtarları yerine kimlik doğrulaması için kimlik hizmetlerini her zaman kullanmanız önerilir. Ancak, kişisel erişim belirteçlerini (PAT) kullanmanız gerekiyorsa aşağıdaki yönergeleri göz önünde bulundurun:

  • PAT'ların kapsamı her zaman belirli rollere göre belirlenmiş olmalıdır.

  • PAT'ler birden çok kuruluşa genel erişim sağlamamalıdır.

  • PAT'ler derlemeler veya sürümler üzerinde yazma veya yönetme izinleri vermemelidir.

  • PAT'ler bir son kullanma tarihine sahip olmalı ve parolalar kadar kritik olduklarından gizli tutulmalıdır.

  • Kodu basitleştirmek için cazip olsa bile, PAT'ler hiçbir zaman uygulama kodunda sabit kodlanmamalıdır.

  • Yönetici istrator'lar,REST API'leri ve yukarıdaki ölçütlere uymayenleri iptal edin.

  • PAT'lerinizi gizli tutun. Belirteçleriniz parolalar kadar kritiktir.

  • Belirteçlerinizi güvenli bir yerde depolayın.

  • Uygulamalarda belirteçleri sabit kodlamayın. Uzun bir süre belirteç almak ve bunu uygulamanızda depolamak için kodu basitleştirmek cazip olabilir, ancak bunu yapmayın.

  • Belirteçlere son kullanma tarihi verin.

  • Daha fazla bilgi için aşağıdaki makalelere göz atın:


Azure Artifacts'in güvenliğini sağlama

Azure Boards'un güvenliğini sağlama

Azure Pipelines'ın güvenliğini sağlama

İlkeler

  • Özgün istek sahibinin dışında en az bir gözden geçiren gerektir. Onaylayan, değişikliklerin ortaklığını paylaşır ve olası etkilerden eşit olarak sorumlu tutulmalıdır.
  • Ci derlemesinin geçirilmesini gerektir. Bu gereksinim kod lint, birim testleri ve virüs ve kimlik bilgisi taramaları gibi güvenlik denetimleri aracılığıyla temel kod kalitesini oluşturmak için kullanışlıdır.
  • Özgün çekme isteği sahibinin değişikliği onaylayamadığından emin olun.
  • Bazı gözden geçirenler beklemek veya reddetmek için oy kullansalar bile çekme isteğinin (Çekme İsteği) tamamlanmasına izin verme.
  • Son değişiklikler gönderildiğinde kod gözden geçiren oylarını sıfırlayın.
  • Yayın işlem hatlarını yalnızca belirli üretim dallarında çalıştırarak kilitleyin.
  • Kuruluşunuzun işlem hattı ayarlarında "Değişkenler için kuyruk zamanında ayarlanabiliri zorla" seçeneğini etkinleştirin.
  • Düzenleyicide ayarlanan değişkenler için "Kullanıcıların bu işlem hattını çalıştırırken bu değeri geçersiz kılmasına izin verme" seçeneğine izin vermeyin.

Aracılar

  • Mümkün olan en az sayıda hesap için izinler verin.
  • Aracılarınızı kullanılabilir durumda bırakan en kısıtlayıcı güvenlik duvarına sahip olun.
  • Derleme filosunun kötü amaçlı bir aktörün yararlanabileceği savunmasız kodu çalıştırmadığından emin olmak için havuzları düzenli olarak güncelleştirin.
  • Üretime gönderilen veya dağıtılan derleme yapıtları için ayrı bir aracı havuzu kullanın.
  • "Hassas" havuzu duyarsız havuzlardan segmentlere ayırır ve yalnızca bu havuza kilitlenmiş derleme tanımlarında kimlik bilgilerinin kullanılmasına izin verir.

Tanımlar

  • YAML (Ancak Başka bir İşaretlem Dili) ile işlem hattı tanımlarını yönetin. YAML, değişiklikler için izlenebilirlik sağladığından ve onay yönergelerini izleyebildiğinden işlem hattı tanımlarını yönetmek için tercih edilen yöntemdir.
  • İşlem hattı tanımının güvenliğini sağlama Erişimi en az sayıda hesap için düzenleyin .

Giriş

  • Derleme betiklerine değişkenler için gizlilik denetimleri ekleyin. Bir gizlilik denetimi, ayarlanabilir değişkenler aracılığıyla bir komut ekleme saldırısını hafifletebilir.
  • "Yayın zamanında ayarlanabilir" olarak mümkün olduğunca az derleme değişkeni ayarlayın.

Görevler

  • Uzaktan getirilen kaynaklardan kaçının, ancak gerekirse sürüm oluşturma ve karma denetimi kullanın.
  • Gizli dizileri kaydetme.
  • Gizli dizileri işlem hattı değişkenlerinde depolamayın. Azure Key Vault'a bakın. Gizli dizilerin derleme işlem hattı değişkenlerinde depolanmadığından emin olmak için derleme işlem hatlarınızı düzenli olarak tarayın.
  • Kullanıcıların güvenlik açısından kritik işlem hatlarında rastgele dallarda veya etiketlerde derleme çalıştırmasına izin vermeyin.
  • Devralınan izinler geniş olduğundan ve izin gereksinimlerinizi doğru yansıtmadığı için işlem hattında devralmayı devre dışı bırakın.
  • her durumda iş yetkilendirme kapsamlarını sınırlayın.

Depolar ve dallar

  • Her çekme isteğinin en az iki onaylayan tarafından gözden geçirilmesi için "En az sayıda gözden geçiren gerektir" ilkesini açık olarak ayarlayın.
  • Proje genelinde değil, her depoya veya dala özgü güvenlik ilkelerini yapılandırın. Güvenlik ilkeleri riski azaltır, değişiklik yönetimi standartlarını uygular ve ekibinizin kod kalitesini geliştirir.
  • Üretim gizli dizilerini ayrı bir Key Vault'ta depolayın ve üretim dışı derlemeleri ayrı tutmak için erişimin yalnızca bilinmesi gereken bir temelde verildiğini doğrulayın.
  • Kimlik bilgilerinin kullanımı dahil olmak üzere test ortamlarını üretimle karıştırmayın.
  • Çatal oluşturma özelliğini devre dışı bırakın. Ne kadar çok çatal varsa, her çatalın güvenliğini takip etmek o kadar zor olur. Ayrıca, kullanıcı deponun bir kopyasını kendi özel hesabına kolayca çatallayabilir.
  • Çatal derlemelerine gizli dizi sağlama.
  • Çatal derlemelerini el ile tetikleyin.
  • Çatal derlemeleri için Microsoft tarafından barındırılan aracıları kullanın.
  • Git için, projenin git deposundaki üretim derleme tanımlarınızı denetleyin; böylece kimlik bilgileri için taranabilir.
  • Dal denetimi denetimini, yalnızca dal bağlamında çalışan işlem hatlarının production kullanabilecek prod-connectionşekilde yapılandırın.
  • Daha fazla bilgi için bkz . Diğer güvenlik konuları.

Azure Depolarının Güvenliğini Sağlama

Azure Test Planlarının Güvenliğini Sağlama

Güvenli GitHub Tümleştirmeleri

  • OAuth akışının GitHub hizmet bağlantısıyla kullanılması için Kişisel Erişim Belirteci (PAT) tabanlı kimlik doğrulamasını devre dışı bırakın.
  • Hiçbir deponun yöneticisi veya sahibi olan bir kimlik olarak GitHub hizmet bağlantılarının kimliğini doğrulamayın.
  • GitHub hizmet bağlantılarının kimliğini doğrulamak için hiçbir zaman tam kapsamlı bir GitHub PAT (Kişisel Erişim Belirteci) kullanmayın.
  • Azure DevOps ile hizmet bağlantısı olarak kişisel bir GitHub hesabı kullanmayın.