Zasoby potoku

Azure DevOps Services | Azure DevOps Server 2022 r. | Azure DevOps Server 2020 r.

Usługa Azure Pipelines oferuje zabezpieczenia poza ochroną pliku YAML i kodu źródłowego. Po uruchomieniu potoków YAML dostęp do zasobów przechodzi przez system nazywany sprawdzaniem. Sprawdzanie może wstrzymać lub nawet zakończyć się niepowodzeniem uruchomienia potoku, aby zapewnić bezpieczeństwo zasobów. Potok może uzyskiwać dostęp do dwóch typów zasobów, chronionych i otwartych.

Chronione zasoby

Potoki często mają dostęp do wpisów tajnych. Na przykład do podpisania kompilacji potrzebny jest certyfikat podpisywania. Do wdrożenia w środowisku produkcyjnym potrzebne jest poświadczenie do tego środowiska. Usługa Azure Pipelines wymaga roli administratora podczas otwierania dostępu do zasobu do wszystkich potoków dla wszystkich chronionych zasobów z wyjątkiem środowisk. W przypadku środowisk potrzebna jest rola Twórca . Dowiedz się więcej o ochronie zasobów.
W usłudze Azure Pipelines wszystkie następujące zasoby są uznawane za chronione w potokach YAML:

"Chronione" oznacza:

  • Można je udostępnić określonym użytkownikom i określonym potokom w projekcie. Nie można uzyskać dostępu do nich przez użytkowników i potoki poza projektem.
  • Możesz uruchamiać inne ręczne lub zautomatyzowane kontrole za każdym razem, gdy potok YAML używa jednego z tych zasobów. Aby dowiedzieć się więcej na temat chronionych zasobów, zobacz About pipeline resources (Informacje o zasobach potoku).

Ochrona zasobów repozytorium

Repozytoria mogą być opcjonalnie chronione. Na poziomie organizacji lub projektu możesz ograniczyć zakres tokenu dostępu usługi Azure Pipelines do wymienionych repozytoriów. W tym celu usługa Azure Pipelines doda jeszcze dwie zabezpieczenia:

  • Token dostępu przekazany agentowi do uruchamiania zadań będzie miał dostęp tylko do repozytoriów wymienionych jawnie w resources sekcji potoku.
  • Repozytoria dodane do potoku będą musiały być autoryzowane przez osobę z dostępem współtworzenia do repozytorium przy pierwszym użyciu tego potoku.

To ustawienie jest domyślnie włączone dla wszystkich organizacji utworzonych po maju 2020 r. Organizacje utworzone wcześniej powinny je włączyć w ustawieniach organizacji.

Otwieranie zasobów

Wszystkie inne zasoby w projekcie są uznawane za otwarte zasoby. Otwarte zasoby obejmują:

  • Artifacts
  • Pipelines
  • Plany testów
  • Elementy robocze

Dowiesz się więcej o tym, które potoki mogą uzyskiwać dostęp do zasobów w sekcji dotyczącej projektów.

Uprawnienia użytkowników

Pierwsza linia obrony dla chronionych zasobów to uprawnienia użytkownika. Ogólnie rzecz biorąc, upewnij się, że udzielasz uprawnień tylko użytkownikom, którzy ich wymagają. Wszystkie chronione zasoby mają podobny model zabezpieczeń. Członek roli użytkownika dla zasobu może:

  • Usuwanie osób zatwierdzających i sprawdzanie skonfigurowane dla tego zasobu
  • Udzielanie dostępu innym użytkownikom lub potokom do korzystania z tego zasobu

Zrzut ekranu przedstawiający uprawnienia użytkownika w potokach

Uprawnienia potoku

W przypadku korzystania z potoków YAML uprawnienia użytkownika nie są wystarczające do zabezpieczenia chronionych zasobów. Możesz łatwo skopiować nazwę chronionego zasobu (na przykład połączenie usługi dla środowiska produkcyjnego) i dołączyć je do innego potoku. Uprawnienia potoku chronią przed takim kopiowaniem. Dla każdego z chronionych zasobów upewnij się, że wyłączono opcję udzielenia dostępu do "wszystkich potoków". Zamiast tego jawnie udzielono dostępu do określonych zaufanych potoków.

Zrzut ekranu przedstawiający uprawnienia potoku

Sprawdza

W języku YAML kombinacja uprawnień użytkownika i potoku nie wystarczy, aby w pełni zabezpieczyć chronione zasoby. Uprawnienia potoku do zasobów są przyznawane całemu potokowi. Nic nie uniemożliwia przeciwnikowi tworzenia innej gałęzi w repozytorium, wstrzykiwania złośliwego kodu i używania tego samego potoku w celu uzyskania dostępu do tego zasobu. Nawet bez złośliwych intencji większość potoków wymaga drugiego zestawu oczu przeglądania zmian (szczególnie do samego potoku) przed wdrożeniem w środowisku produkcyjnym. Kontrole umożliwiają wstrzymanie przebiegu potoku do momentu spełnienia określonych warunków:

  • Ręczne sprawdzanie zatwierdzenia. Każde uruchomienie korzystające z zasobu chronionego przez projekt jest blokowane do ręcznego zatwierdzania przed kontynuowaniem. Ochrona ręczna umożliwia przejrzenie kodu i upewnienie się, że pochodzi z odpowiedniej gałęzi.
  • Sprawdzanie gałęzi chronionej. Jeśli masz procesy ręcznego przeglądu kodu w niektórych gałęziach, możesz rozszerzyć tę ochronę na potoki. Skonfiguruj kontrolę chronionej gałęzi dla każdego z zasobów. Spowoduje to automatyczne zatrzymanie działania potoku na wszystkich gałęziach użytkownika.
  • Sprawdzanie chronionego zasobu Możesz dodawać kontrole do środowisk, połączeń usług, repozytoriów, grup zmiennych, pul agentów, grup zmiennych i bezpiecznych plików, aby określić warunki, które muszą być spełnione przed etapem w dowolnym potoku może korzystać z zasobu. Dowiedz się więcej o kontrolach i zatwierdzeniach.

Zrzut ekranu przedstawiający konfigurowanie kontroli

Następne kroki

Następnie rozważ grupowanie zasobów w strukturę projektu.