Kontrola dostępu oparta na rolach dla narzędzi DevOps
Podczas wdrażania rozwiązań opartych na chmurze na potrzeby wdrożeń infrastruktury bezpieczeństwo zawsze powinno być najważniejszym problemem. Firma Microsoft zapewnia bezpieczeństwo podstawowej infrastruktury chmury. Zabezpieczenia można skonfigurować w usłudze Azure DevOps lub GitHub.
Wymagania wstępne
Po podjęciu decyzji, które szablony strefy docelowej platformy Azure mają zostać wdrożone, sklonuj je do własnego repozytorium. Skonfiguruj potoki ciągłej integracji/ciągłego wdrażania. W przypadku usług GitHub i Azure DevOps dostępnych jest kilka metod uwierzytelniania, takich jak osobiste tokeny dostępu (PAT) i integracja z dostawcą tożsamości, na przykład Microsoft Entra ID. Aby uzyskać więcej informacji, zobacz Używanie osobistych tokenów dostępu.
Zalecamy integrację z usługą Microsoft Entra ID, aby korzystać ze wszystkich jego możliwości. Integracja pomaga usprawnić proces przypisywania ról i zarządzanie cyklem życia tożsamości. Aby uzyskać więcej informacji, zobacz Połączenie organizacji do identyfikatora Entra firmy Microsoft. Jeśli używasz usługi GitHub, rozważ zintegrowanie usługi GitHub Enterprise z identyfikatorem Entra firmy Microsoft.
Ogólne zagadnienia dotyczące projektowania
Zalecamy ścisłą kontrolę nad administratorami i grupami kont usług w ramach identyfikatora Entra firmy Microsoft i narzędzia DevOps. Rozważ zaimplementowanie zasady najniższych uprawnień we wszystkich przypisaniach ról.
Na przykład Organizacja może mieć zespół ds. platformy lub doskonałości w chmurze, który obsługuje szablony usługi Azure Resource Manager dla stref docelowych platformy Azure. Przypisz użytkowników w tym zespole do grupy zabezpieczeń w usłudze Microsoft Entra ID, zakładając, że używasz jej jako dostawcy tożsamości. Przypisz role do tej grupy zabezpieczeń w narzędziu DevOps, aby ci użytkownicy mogli wykonywać swoje zadania.
W przypadku wszystkich kont administratorów lub kont z wysokimi uprawnieniami w usłudze Active Directory zalecamy, aby poświadczenia nie zostały zsynchronizowane z identyfikatorem Entra firmy Microsoft i na odwrót. Takie podejście zmniejsza zagrożenie ruchu bocznego. Jeśli administrator w usłudze Microsoft Entra ID zostanie naruszony, osoba atakująca nie będzie mogła łatwo uzyskać dostępu do żadnych zasobów w chmurze, takich jak Azure DevOps. To konto nie może potencjalnie wstrzyknąć złośliwych zadań w potokach ciągłej integracji/ciągłego wdrażania. Ten krok jest szczególnie ważny dla wszystkich użytkowników przypisanych podwyższonych uprawnień w środowisku DevOps, takich jak kompilacja lub projekt/kolekcja Administracja istratory. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania w zakresie zabezpieczeń w usłudze Microsoft Entra ID.
Zagadnienia dotyczące dostępu opartego na rolach usługi Azure DevOps
Zarządzanie zabezpieczeniami w usłudze Azure DevOps przy użyciu grup zabezpieczeń, zasad i ustawień na poziomie organizacji/kolekcji, projektu lub obiektu. Aby zintegrować z dostawcą tożsamości, takim jak Microsoft Entra ID, rozważ utworzenie zasad dostępu warunkowego w celu wymuszania uwierzytelniania wieloskładnikowego dla wszystkich użytkowników. Zasady umożliwiają dostęp do organizacji usługi Azure DevOps i bardziej szczegółowe ograniczenia dotyczące adresu IP, typu urządzenia używanego do uzyskiwania dostępu i zgodności urządzeń.
W przypadku większości członków zespołu w zespole platformy, którzy zarządzają strefami docelowymi platformy Azure, domyślny poziom dostępu idomyślna grupa zabezpieczeń Współautor powinna zapewnić wystarczający dostęp. Grupa zabezpieczeń Współautor umożliwia edytowanie szablonów strefy docelowej platformy Azure w repozytorium oraz potoków ciągłej integracji/ciągłego wdrażania, które je weryfikują i wdrażają.
Zalecamy przypisanie zespołu platformy do grupy zabezpieczeń Współautor na poziomie projektu usługi Azure DevOps. Takie podejście jest zgodne z zasadą najniższych uprawnień. Te przypisania można wykonać za pośrednictwem strony Ustawienia project pokazanej poniżej.
Innym najlepszym rozwiązaniem dla usługi Azure DevOps Projects i organizacji jest wyłączenie dziedziczenia tam, gdzie to możliwe. Użytkownicy dziedziczą uprawnienia dozwolone przez przypisania grup zabezpieczeń. Ze względu na domyślny charakter dziedziczenia dozwolonych nieoczekiwani użytkownicy mogą uzyskać dostęp lub uprawnienia.
Jeśli na przykład przypiszesz członkostwem w grupie zabezpieczeń Współautor platformy, sprawdź ich uprawnienia w repozytorium Strefy docelowe platformy Azure. Należy mieć zasady gałęzi, aby sprawdzić, czy grupa zabezpieczeń nie może pominąć tych zasad podczas żądań ściągnięcia. Sprawdź to ustawienie w obszarze Project Ustawienia> Repositories.
Po przypisaniu uprawnień do użytkowników okresowo przejrzyj zdarzenia inspekcji, aby monitorować i reagować na nieoczekiwane wzorce użycia przez administratorów i innych użytkowników. Zacznij od utworzenia strumienia inspekcji w obszarze roboczym usługi Log Analytics. Jeśli obszar roboczy korzysta z usługi Microsoft Sentinel, utwórz reguły analizy, aby otrzymywać alerty dotyczące istotnych zdarzeń, takich jak niewłaściwe użycie uprawnień.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
- Najlepsze rozwiązania dotyczące zabezpieczeń usługi Azure DevOps
- Grupy i uprawnienia usługi Azure DevOps
- Poziomy dostępu usługi Azure DevOps
Zagadnienia dotyczące dostępu opartego na rolach w usłudze GitHub
Jeśli podstawowym narzędziem DevOps jest usługa GitHub, możesz przypisać użytkownikom dostęp do zasobów, udzielając im ról na poziomie repozytorium, na poziomie zespołu lub organizacji. Po utworzeniu rozwidlenia repozytorium stref docelowych platformy Azure i zintegrowaniu z dostawcą tożsamości, takim jak Microsoft Entra ID, rozważ utworzenie zespołu w usłudze GitHub. Przypisz zespołowi dostęp do zapisu do nowego repozytorium strefy docelowej platformy Azure. W przypadku większości członków zespołu platformy, którzy modyfikują i wdrażają strefy docelowe, dostęp do zapisu powinien być wystarczający. W przypadku menedżerów projektów lub menedżerów scrum w zespole może być konieczne przypisanie im roli konserwacji do tego repozytorium.
Zalecamy zarządzanie wszystkimi tymi przypisaniami ról za pośrednictwem zintegrowanego dostawcy tożsamości. Możesz na przykład zsynchronizować zespół platformy dla repozytorium strefy docelowej platformy Azure utworzonego w usłudze GitHub z odpowiednią grupą zabezpieczeń zespołu platformy w usłudze Microsoft Entra ID. Następnie po dodaniu lub usunięciu członków do grupy zabezpieczeń firmy Microsoft te zmiany zostaną odzwierciedlone w przypisaniach ról usługi GitHub Enterprise Cloud.
Uwaga
Po połączeniu określonego zespołu usługi GitHub ze zintegrowanym dostawcą tożsamości możesz ograniczyć zarządzanie członkostwem zespołu za jego pośrednictwem.
Następne kroki
Aby uzyskać więcej informacji na temat zarządzania rolami i zespołami w usłudze GitHub, zobacz następujące zasoby: