Udostępnij za pośrednictwem


Zabezpieczanie usługi Azure DevOps

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

W przypadku obsługi informacji i danych, zwłaszcza w rozwiązaniu opartym na chmurze, takiego jak Azure DevOps Services, bezpieczeństwo powinno być twoim priorytetem. Chociaż firma Microsoft zapewnia bezpieczeństwo podstawowej infrastruktury chmury, twoim zadaniem jest skonfigurowanie zabezpieczeń w usłudze Azure DevOps. Ten artykuł zawiera omówienie niezbędnych konfiguracji związanych z zabezpieczeniami w celu ochrony środowiska usługi Azure DevOps przed zagrożeniami i lukami w zabezpieczeniach.

Ochrona sieci i danych

Zabezpieczanie sieci ma kluczowe znaczenie podczas pracy z usługą Azure DevOps w celu ochrony danych i zasobów przed nieautoryzowanym dostępem i potencjalnymi zagrożeniami. Zaimplementuj środki zabezpieczeń sieci i ochrony danych, aby zapewnić, że tylko zaufane źródła będą mogły uzyskiwać dostęp do środowiska usługi Azure DevOps. Aby zabezpieczyć sieć podczas pracy z usługą Azure DevOps, wykonaj następujące czynności:

Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące zarządzania aplikacjami.

Implementowanie zera zaufania

Zastosuj zasady zero trust w procesach DevOps, aby upewnić się, że każde żądanie dostępu jest dokładnie weryfikowane, niezależnie od jego pochodzenia. Zero Trust działa na zasadzie "nigdy nie ufaj, zawsze sprawdzaj", co oznacza, że żadna jednostka, zarówno wewnątrz, jak i poza siecią, nie jest domyślnie zaufana. Implementując zero trust, można znacznie zmniejszyć ryzyko naruszeń zabezpieczeń i upewnić się, że tylko autoryzowani użytkownicy i urządzenia mogą uzyskiwać dostęp do zasobów.

Zero Trust pomaga chronić przed ruchem lateralnym w sieci, zapewniając, że nawet jeśli istnieje naruszona część sieci, zagrożenie jest powstrzymane i nie może się rozprzestrzeniać. Aby uzyskać więcej informacji, zapoznaj się z przewodnikiem oceny Zero Trust .

Zgodność ze standardami branżowymi

Upewnij się, że środowisko usługi Azure DevOps jest zgodne ze standardami branżowymi i przepisami, które chronią środowisko i zapewniają zaufanie użytkownikom.

  • Zapewnianie zgodności ze standardami branżowymi: Usługa Azure DevOps jest zgodna z różnymi branżowymi standardami i przepisami, takimi jak ISO/IEC 27001, SOC 1/2/3 i RODO. Upewnij się, że środowisko jest zgodne z tymi standardami.
  • Wymuszanie zasad zgodności: Zaimplementuj zasady gałęzi i zasady zgodności dla potoków.
  • Rozpocznij korzystanie z zarządzania składnikami w CI/CD, co zapewnia następujące korzyści:
    • Wykrywanie luk w zabezpieczeniach: ostrzega o znanych lukach w zabezpieczeniach w składnikach typu open source.
    • Zgodność licencji: zapewnia zgodność składników z zasadami licencjonowania organizacji.
    • Wymuszanie zasad: zapewnia, że są używane tylko zatwierdzone wersje.
    • Zapewnienie widoczności dzięki śledzeniu: umożliwia wgląd w składniki w różnych repozytoriach, co ułatwia zarządzanie.

Kontrolowanie i ograniczanie dostępu

Przejrzyj wszystkie zasady zabezpieczeń dostępne dla administratorów, aby ograniczyć i kontrolować, kto ma dostęp do organizacji. Zachowaj kontrolę nad organizacją, uniemożliwiając niepotrzebne tworzenie projektu.

Zarządzanie gośćmi zewnętrznymi

Dostęp gościa zewnętrznego może powodować potencjalne zagrożenia bezpieczeństwa, jeśli nie są prawidłowo zarządzane. Zminimalizuj te zagrożenia i upewnij się, że goście zewnętrzni mają odpowiedni poziom dostępu bez naruszania bezpieczeństwa środowiska.

  • Blokuj dostęp gościa zewnętrznego: Wyłącz zasady "Zezwalaj na wysyłanie zaproszeń do dowolnej domeny" , aby uniemożliwić dostęp gościa zewnętrznego, jeśli nie ma potrzeby jej obsługi biznesowej.
  • Użyj odrębnych wiadomości e-mail lub nazw UPN: Użyj różnych adresów e-mail lub głównych nazw użytkowników (UPN) dla kont osobistych i biznesowych, aby wyeliminować niejednoznaczność między kontami osobistymi i służbowymi.
  • Grupuj zewnętrznych użytkowników-gości: Umieść wszystkich zewnętrznych użytkowników-gości w jednej grupie firmy Microsoft Entra i odpowiednio zarządzaj uprawnieniami dla tej grupy. Usuń przypisania bezpośrednie, aby upewnić się, że reguły grupy mają zastosowanie do tych użytkowników.
  • Regularnie ponownie oceniać reguły: Regularnie przeglądaj reguły na karcie Reguły grupy na stronie Użytkownicy. Rozważ wszelkie zmiany członkostwa w grupie w identyfikatorze Entra firmy Microsoft, które mogą mieć wpływ na Twoją organizację. Microsoft Entra ID może zająć do 24 godzin na zaktualizowanie członkostwa w grupie dynamicznej, a reguły są automatycznie ponownie oceniane co 24 godziny oraz za każdym razem, gdy zmienia się reguła grupy.

Aby uzyskać więcej informacji, zobacz B2B gości Microsoft Entra ID.

Usuwanie niepotrzebnych użytkowników

Usunięcie nieaktywnych lub nieautoryzowanych użytkowników z organizacji pomaga zachować bezpieczne środowisko i zmniejszyć ryzyko potencjalnych naruszeń zabezpieczeń.

  • Bezpośrednie usuwanie nieaktywnych użytkowników kont Microsoft (MSA): Bezpośrednie usuwanie nieaktywnych użytkowników z organizacji, jeśli korzystają z kont MSA. Nie można tworzyć zapytań dotyczących elementów roboczych przypisanych do usuniętych kont MSA.
  • Wyłącz lub usuń konta użytkowników usługi Microsoft Entra: Jeśli połączono się z identyfikatorem Entra firmy Microsoft, wyłącz lub usuń konto użytkownika Microsoft Entra przy zachowaniu aktywnego konta użytkownika usługi Azure DevOps. Możesz kontynuować wykonywanie zapytań dotyczących historii elementów roboczych przy użyciu identyfikatora użytkownika usługi Azure DevOps.
  • Cofnij PAT-y użytkowników dla administratorów: Zapewnij bezpieczne zarządzanie tymi krytycznymi tokenami uwierzytelniania, regularnie przeglądając i cofając istniejące PAT-y użytkowników.
  • Odwoływanie specjalnych uprawnień przyznanych poszczególnym użytkownikom: Przeprowadź inspekcję i odwoływanie wszelkich specjalnych uprawnień przyznanych poszczególnym użytkownikom w celu zapewnienia zgodności z zasadą najniższych uprawnień.
  • Ponowne przypisywanie pracy od usuniętych użytkowników: Przed usunięciem użytkowników przypisz ponownie elementy robocze do bieżących członków zespołu w celu efektywnego rozłożenia obciążenia.

Uprawnienia zakresu

Podaj minimalne niezbędne uprawnienia i poziomy dostępu , aby zapewnić, że tylko autoryzowane osoby i usługi mogą uzyskiwać dostęp do poufnych informacji i wykonywać akcje krytyczne. Ta praktyka pomaga zminimalizować ryzyko nieautoryzowanego dostępu i potencjalnych naruszeń danych.

Regularnie sprawdzaj i aktualizuj te ustawienia, aby dostosować je do zmian w organizacji, takich jak zmiany ról, nowi pracownicy lub wyjazdy. Zaimplementowanie okresowej inspekcji uprawnień i poziomów dostępu może pomóc zidentyfikować i naprawić wszelkie rozbieżności, zapewniając, że stan zabezpieczeń pozostaje niezawodny i zgodny z najlepszymi rozwiązaniami.

Dowiedz się więcej o uprawnieniach:

Aby zapewnić bezpieczne i wydajne zarządzanie uprawnieniami, należy prawidłowo ograniczyć zakres uprawnień w środowisku usługi Azure DevOps. Uprawnienia określające zakres obejmują definiowanie i przypisywanie odpowiedniego poziomu dostępu do użytkowników i grup na podstawie ich ról i obowiązków. Ta praktyka pomaga zminimalizować ryzyko nieautoryzowanego dostępu i potencjalnych naruszeń danych, zapewniając, że tylko autoryzowane osoby mają dostęp do poufnych informacji i akcji krytycznych.

Aby skutecznie ograniczyć zakres uprawnień, wykonaj następujące czynności:

  • Wyłącz dziedziczenie: Unikaj dziedziczenia uprawnień i zapobiegaj niezamierzonym dostępom. Dziedziczenie może przypadkowo udzielić uprawnień użytkownikom, którzy nie powinni ich mieć, ze względu na domyślnie zezwalający charakter. Starannie zarządzaj uprawnieniami i jawnie ustawiaj je, aby mieć pewność, że tylko docelowi użytkownicy mają dostęp.
  • Środowiska segmentów: Użyj oddzielnych kont platformy Azure dla różnych środowisk, takich jak programowanie, testowanie i produkcja, aby zwiększyć bezpieczeństwo i zapobiec konfliktom. Takie podejście minimalizuje ryzyko konfliktów zasobów i skażenia danych między środowiskami i umożliwia lepsze zarządzanie i izolowanie zasobów. Aby uzyskać więcej informacji, zobacz Azure Landing Zone (Strefa docelowa platformy Azure).
  • Kontrola dostępu i zapewnianie zgodności: Użyj usługi Azure Policy , aby ograniczyć dostęp do nieużywanych regionów i usług platformy Azure, zapewniając zgodność ze standardami organizacyjnymi. Ta akcja pomaga wymusić najlepsze rozwiązania i zachować bezpieczne środowisko, zapobiegając nieautoryzowanemu dostępowi i użyciu.
  • Zaimplementuj kontrolę opartą na rolach (ABAC) platformy Azure: Użyj funkcji ABAC z odpowiednio oznakowanymi zasobami, aby ograniczyć nieautoryzowany dostęp. Ta akcja gwarantuje, że uprawnienia dostępu są przyznawane na podstawie określonych atrybutów, zwiększając bezpieczeństwo, zapobiegając nieautoryzowanemu tworzeniu zasobów i dostępowi.
  • Użyj grup zabezpieczeń: Użyj grup zabezpieczeń , aby efektywnie zarządzać uprawnieniami dla wielu użytkowników. Ta metoda upraszcza udzielanie i odwołowanie dostępu w porównaniu do przypisywania uprawnień indywidualnie i zapewnia spójność i łatwiejsze zarządzanie w całej organizacji.

Zrezygnuj z kont usługowych

W przeszłości konta usług były używane z osobistymi tokenami dostępu (PAT) do tworzenia narzędzi, które uruchamiają zautomatyzowane procesy i usługi. W związku z tym często mają podwyższone uprawnienia. Przed podjęciem decyzji o kontynuowaniu tworzenia przy użyciu konta usługi sprawdź, czy nadal jest to właściwe podejście do uwierzytelniania.

  • Zastąp swoje tokeny PAT tokenami firmy Microsoft Entra: Tokeny Microsoft Entra to krótkotrwałe (jednogodzinne) tokeny, które mogą być używane zamiast większości tokenów PAT. PaTs są popularne ze względu na łatwość użytkowania, ale są one również popularnym wektorem ataku ze względu na łatwość ich wycieku.
  • Przed wybraniem wszystkich dostępnych mechanizmów uwierzytelniania należy zapoznać się ze wszystkimi dostępnymi mechanizmami uwierzytelniania .
  • Użyj zamiast tego jednostek serwisowych:Jednostki serwisowe reprezentują tożsamość aplikacji Microsoft Entra i mają własne uprawnienia definiujące, co aplikacja może zrobić w danej dzierżawie. Jednostki usługi są zalecanym wyborem do zarządzania uprawnieniami wymaganymi przez aplikację. Zastąp wszelkie PATy kont usług tokenami Microsoft Entra pozyskanymi dla głównej jednostki usługi.
    • Wykonaj krok dalej, uwierzytelniając się przy użyciu tożsamości zarządzanej, jeśli pracujesz na zasobach platformy Azure. Tożsamości zarządzane zajmują się wszystkimi funkcjami zarządzania poświadczeniami.
  • Użyj połączeń usług: Połączenia usług umożliwiają korzystanie z jednostek usługi wewnątrz potoku. Używaj połączeń z usługami zawsze, gdy jest to możliwe, aby bezpiecznie łączyć się z usługami bez bezpośredniego przekazywania zmiennych tajnych do kompilacji. Ogranicz połączenia z określonymi przypadkami użycia. Aby uzyskać więcej informacji, zobacz sekcję Zakres połączeń usług w tym artykule.
    • Uwierzytelnianie z zasobami platformy Azure przy użyciu federacji tożsamości obciążenia za pomocą rejestracji aplikacji lub tożsamości zarządzanej, zamiast używania rejestracji aplikacji z wpisem tajnym.

Konto usługi jest nadal używane.

  • Tworzenie kont usług jednofunkcyjnych: Każda usługa powinna mieć dedykowane konto, aby zminimalizować ryzyko. Unikaj używania zwykłych kont użytkowników jako kont usług.
  • Identyfikowanie i wyłączanie nieużywanych kont usług: Regularne przeglądanie i identyfikowanie kont, które nie są już używane. Wyłącz nieużywane konta przed rozważeniem usunięcia.
  • Ogranicz uprawnienia: Ogranicz uprawnienia konta usługi do minimum niezbędnego. Unikaj interaktywnych praw logowania dla kont usług.
  • Użyj oddzielnych tożsamości dla czytelników raportów: Jeśli używasz kont domeny dla kont usług, użyj innej tożsamości dla czytelników raportów, aby odizolować uprawnienia i zapobiec niepotrzebnemu dostępowi.
  • Użyj kont lokalnych dla instalacji grup roboczych: Podczas instalowania składników w grupie roboczej użyj kont lokalnych dla kont użytkowników. Unikaj kont użytkowników domeny w tym scenariuszu.
  • Monitorowanie aktywności konta usługi: Wdroż audyt i utwórz strumienie audytu , aby monitorować aktywność konta usługi.

Zakres połączeń usługowych

Aby zapewnić bezpieczny i wydajny dostęp do zasobów platformy Azure, należy prawidłowo określać zakres połączeń usług. Połączenia usług umożliwiają usłudze Azure DevOps łączenie się z usługami i zasobami zewnętrznymi, a określenie zakresu tych połączeń pozwala ograniczyć dostęp tylko do niezbędnych zasobów i zmniejszyć ryzyko nieautoryzowanego dostępu.

  • Ogranicz dostęp: Ogranicz dostęp, określając zakres połączeń usługi Azure Resource Manager z określonymi zasobami i grupami. Nie udzielaj szerokich praw współautora w całej subskrypcji platformy Azure.
  • Użyj usługi Azure Resource Manager: Uwierzytelnianie z zasobami platformy Azure przy użyciu federacji tożsamości obciążeń roboczych za pośrednictwem rejestracji aplikacji lub tożsamości zarządzanej zamiast rejestracji aplikacji z sekretem. Aby uzyskać więcej informacji, zobacz Tworzenie połączenia usługi Azure Resource Manager, które wykorzystuje federację tożsamości dla obciążeń.
  • Zakres grup zasobów: Upewnij się, że grupy zasobów zawierają tylko maszyny wirtualne lub zasoby potrzebne do procesu kompilacji.
  • Unikaj połączeń usługi klasycznej: Wybierz nowoczesne połączenia usługi Azure Resource Manager zamiast klasycznych, które nie mają opcji określania zakresu.
  • Użyj kont usług zespołowych specyficznych dla określonego celu: Uwierzytelnianie połączeń usług przy użyciu kont usług zespołowych specyficznych dla celu w celu zachowania zabezpieczeń i kontroli.

Aby uzyskać więcej informacji, zobacz Typowe typy połączeń usługi.

Przeglądanie zdarzeń inspekcji

Inspekcja może służyć do śledzenia akcji użytkownika, zmian uprawnień i wzorców użycia w organizacji. Użyj tych narzędzi, aby szybko zidentyfikować i rozwiązać potencjalne zdarzenia zabezpieczeń.

  • Włącz inspekcję: Śledzenie i wyświetlanie zdarzeń związanych z akcjami użytkownika, uprawnieniami, zmianami i zdarzeniami zabezpieczeń.
  • Regularnie przeglądaj dzienniki audytu i strumienie: Systematycznie monitoruj te dzienniki, aby śledzić działania użytkowników i wykrywać wszelkie podejrzane zachowania. Poszukaj nieoczekiwanych wzorców użycia, zwłaszcza przez administratorów i innych użytkowników. Ta akcja pomaga zidentyfikować potencjalne naruszenia zabezpieczeń i podejmuje działania naprawcze. Dowiedz się więcej o zdarzeniach audytowych, które śledzimy.
  • Konfigurowanie alertów zabezpieczeń: Skonfiguruj alerty w celu powiadamiania o wszelkich zdarzeniach zabezpieczeń lub naruszeniach zasad. Ta akcja zapewnia terminowe reagowanie na potencjalne zagrożenia.

Zabezpieczanie usług

Aby zapewnić bezpieczeństwo i integralność usług w usłudze Azure DevOps, zaimplementuj środki zabezpieczeń dla każdej usługi. Te miary obejmują ustawianie uprawnień, zarządzanie dostępem i używanie funkcji zabezpieczeń specyficznych dla każdej usługi.

Automatyzowanie skanowania zabezpieczeń

Monitoruj luki w zabezpieczeniach kodu i sekretów za pomocą następujących zautomatyzowanych narzędzi zabezpieczeń opracowanych przez nasze zespoły partnerskie.

  • Użyj skanowania i analizy kodu: Skorzystaj z narzędzi, takich jak Microsoft Defender , aby skanować kod pod kątem luk w zabezpieczeniach, wpisów tajnych i błędów konfiguracji. Ta akcja ułatwia identyfikowanie i korygowanie problemów z zabezpieczeniami na wczesnym etapie procesu programowania.
  • Użyj skanera poświadczeń usługi Azure DevOps (CredScan) dla usługi GitHub: W przypadku korzystania z tożsamości zarządzanej nie jest opcją, upewnij się, że poświadczenia są przechowywane w bezpiecznych lokalizacjach, takich jak usługa Azure Key Vault, zamiast osadzać je w kodzie i plikach konfiguracji. Zaimplementuj skaner poświadczeń usługi Azure DevOps, aby zidentyfikować poświadczenia w kodzie. Aby uzyskać więcej informacji, zobacz Wprowadzenie do narzędzia CredScan.
  • Użyj natywnego skanowania wpisów tajnych dla usługi GitHub: W przypadku korzystania z tożsamości zarządzanej nie jest opcją, upewnij się, że wpisy tajne są przechowywane w bezpiecznych lokalizacjach, takich jak usługa Azure Key Vault, zamiast osadzać je w kodzie i plikach konfiguracji. Użyj natywnej funkcji skanowania wpisów tajnych, aby zidentyfikować wpisy tajne w kodzie. Aby uzyskać więcej informacji, zobacz Informacje o skanowaniu wpisów tajnych.

Aby uzyskać więcej informacji, zobacz Omówienie zaawansowanych zabezpieczeń usługi GitHub.