Udostępnij za pośrednictwem


Uzyskiwanie dostępu do repozytoriów, artefaktów i innych zasobów

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

W czasie wykonywania każde zadanie w potoku może uzyskiwać dostęp do innych zasobów w usłudze Azure DevOps. Na przykład zadanie może:

  • Zapoznaj się z kodem źródłowym z repozytorium Git
  • Dodawanie tagu do repozytorium
  • Uzyskiwanie dostępu do źródła danych w usłudze Azure Artifacts
  • Przekazywanie dzienników z agenta do usługi
  • Przekazywanie wyników testów i innych artefaktów z agenta do usługi
  • Aktualizuj element roboczy

Usługa Azure Pipelines używa tokenów dostępu do zadań do wykonywania tych zadań. Token dostępu zadania to token zabezpieczający generowany dynamicznie przez usługę Azure Pipelines dla każdego zadania w czasie wykonywania. Agent, na którym jest uruchomione zadanie, używa tokenu dostępu do zadania w celu uzyskania dostępu do tych zasobów w usłudze Azure DevOps. Możesz kontrolować zasoby, do których potok ma dostęp, kontrolując sposób udzielania uprawnień do tokenów dostępu do zadań.

Uprawnienia tokenu pochodzą z (a) zakresu autoryzacji zadania i (b) uprawnienia ustawionego na koncie usługi kompilacji projektu lub kolekcji.

Zakres autoryzacji zadania

Zakres autoryzacji zadania można ustawić tak, aby był kolekcji lub projektu. Ustawiając zakres kolekcji, możesz zezwolić potokom na dostęp do wszystkich repozytoriów w kolekcji lub organizacji. Ustawiając zakres projektu, należy ograniczyć dostęp tylko do tych repozytoriów, które znajdują się w tym samym projekcie co potok.

Zakres autoryzacji zadań można ustawić dla całej organizacji Azure DevOps lub dla określonego projektu.

Uwaga

W usłudze Azure DevOps Server 2020 Ograniczanie zakresu autoryzacji zadań do bieżącego projektu dotyczy tylko potoków YAML i klasycznych potoków kompilacji. Nie ma zastosowania do klasycznych potoków wydania. Klasyczne potoki wydania zawsze są uruchamiane z zakresem kolekcji projektów.

Aby ustawić zakres autoryzacji zadania dla organizacji:

  • Przejdź do strony ustawień organizacji w interfejsie użytkownika usługi Azure DevOps.
  • Wybierz pozycję Ustawienia w obszarze Potoki .
  • Włącz Ogranicz zakres autoryzacji zadania do bieżącego projektu, aby ograniczyć zakres do projektu. Jest to zalecane ustawienie, ponieważ zwiększa bezpieczeństwo potoków.

Aby ustawić zakres autoryzacji zadania dla określonego projektu:

  • Przejdź do strony ustawień projektu w interfejsie użytkownika usługi Azure DevOps.
  • Wybierz pozycję Ustawienia w obszarze Potoki .
  • Włącz Ogranicz zakres autoryzacji zadania do bieżącego projektu, aby ograniczyć zakres do projektu. Jest to zalecane ustawienie, ponieważ zwiększa bezpieczeństwo potoków.
  • Aby ustawić zakres autoryzacji zadań na poziomie organizacji dla wszystkich projektów, wybierz Ustawienia organizacji>Potoki>Ustawienia.
  • Aby ustawić zakres autoryzacji zadania dla określonego projektu, wybierz Ustawienia projektu>Potoki>Ustawienia.

Włącz co najmniej jedno z następujących ustawień. Włączenie tych ustawień jest zalecane, ponieważ zwiększa bezpieczeństwo potoków.

Uwaga

Jeśli zakres jest ustawiony na projekt na poziomie organizacji, nie można zmienić zakresu w każdym projekcie.

Ważne

Jeśli zakres nie jest ograniczony na poziomie organizacji lub na poziomie projektu, każde zadanie w potoku YAML pobiera token dostępu do zadania w zakresie kolekcji. Innymi słowy potok ma dostęp do dowolnego repozytorium w dowolnym projekcie organizacji. Jeśli przeciwnik może uzyskać dostęp do pojedynczego potoku w jednym projekcie, będzie mógł uzyskać dostęp do dowolnego repozytorium w organizacji. Dlatego zaleca się ograniczenie zakresu na najwyższym poziomie (ustawienia organizacji) w celu powstrzymania ataku do pojedynczego projektu.

Uwaga

Jeśli potok znajduje się w projekcie publicznym , zakres autoryzacji zadania jest automatycznie ograniczony do projektu bez względu na to, co zostało skonfigurowane w dowolnym ustawieniu. Zadania w projekcie publicznym mogą uzyskiwać dostęp do zasobów, takich jak artefakty kompilacji lub wyniki testów tylko w projekcie, a nie z innych projektów organizacji.

Ograniczanie zakresu autoryzacji zadań do odwołań do repozytoriów usługi Azure DevOps

Oprócz ustawień zakresu autoryzacji zadania opisanych w poprzedniej sekcji usługa Azure Pipelines udostępnia Limit zakresu autoryzacji zadań do odwołań do repozytoriów usługi Azure DevOps.

Potoki mogą uzyskiwać dostęp do dowolnych repozytoriów usługi Azure DevOps w autoryzowanych projektach, chyba że ograniczyć zakres autoryzacji zadań do odwołań do repozytoriów usługi Azure DevOps jest włączony. Po włączeniu tej opcji można zmniejszyć zakres dostępu dla wszystkich potoków tylko do repozytoriów usługi Azure DevOps, do których jawnie odwołuje się checkout krok lub uses instrukcja w zadaniu potoku, które używa tego repozytorium.

Aby uzyskać więcej informacji, zobacz repozytoria Git usługi Azure Repos — ograniczanie zakresu autoryzacji zadań do odwołań do repozytoriów usługi Azure DevOps.

Ochrona dostępu do repozytoriów w potokach YAML

Oprócz ustawień zakresu autoryzacji zadania opisanych w poprzedniej sekcji usługa Azure Pipelines zapewnia Ochrona dostępu do repozytoriów w potokach YAML ustawienie.

Potoki mogą uzyskiwać dostęp do dowolnych repozytoriów usługi Azure DevOps w autoryzowanych projektach, chyba że Ochrona dostępu do repozytoriów w potokach YAML jest włączona. Po włączeniu tej opcji można zmniejszyć zakres dostępu dla wszystkich potoków tylko do repozytoriów usługi Azure DevOps, do których jawnie odwołuje się checkout krok lub uses instrukcja w zadaniu potoku, które używa tego repozytorium.

Aby uzyskać więcej informacji, zobacz repozytoria Git usługi Azure Repos — Ochrona dostępu do repozytoriów w potokach YAML.

Ważne

Ochrona dostępu do repozytoriów w potokach YAML jest domyślnie włączona dla nowych organizacji i projektów utworzonych po maju 2020 r.

Tożsamości kompilacji o określonym zakresie

Usługa Azure DevOps używa dwóch wbudowanych tożsamości do wykonywania potoków.

  • Tożsamość o zakresie kolekcji, która ma dostęp do wszystkich projektów w kolekcji (lub organizacji dla usług Azure DevOps Services)
  • Tożsamość o zakresie projektu, która ma dostęp do pojedynczego projektu

Te tożsamości są przydzielane uprawnienia niezbędne do wykonywania działań czasu wykonywania kompilacji/wydania podczas wywoływania z powrotem do systemu Azure DevOps. Istnieją wbudowane uprawnienia domyślne i możesz również zarządzać własnymi uprawnieniami zgodnie z potrzebami.

Nazwa tożsamości o zakresie kolekcji ma następujący format:

  • Project Collection Build Service ({OrgName})
  • Jeśli na przykład nazwa organizacji to fabrikam-tailspin, to konto ma nazwę Project Collection Build Service (fabrikam-tailspin).

Nazwa tożsamości o zakresie projektu ma następujący format:

  • {Project Name} Build Service ({Org Name})
  • Jeśli na przykład nazwa organizacji jest fabrikam-tailspin, a nazwa projektu jest SpaceGameWeb, to konto ma nazwę SpaceGameWeb Build Service (fabrikam-tailspin).

Domyślnie jest używana tożsamość o zakresie kolekcji, chyba że skonfigurowano inaczej zgodnie z opisem w poprzedniej sekcji zakres autoryzacji zadania.

Zarządzanie uprawnieniami konta usługi kompilacji

Jednym z wyników ustawienia dostępu w zakresie projektu może być to, że tożsamość o zakresie projektu może nie mieć uprawnień do zasobu, który ma zakres kolekcji.

Możesz zmienić uprawnienia tokenu dostępu do zadania w scenariuszach, takich jak:

  • Chcesz, aby potok uzyskiwał dostęp do kanału informacyjnego, który znajduje się w innym projekcie.
  • Chcesz, aby potok był ograniczony do zmiany kodu w repozytorium.
  • Chcesz, aby potok był ograniczony do tworzenia elementów roboczych.

Aby zaktualizować uprawnienia tokenu dostępu do zadania:

  • Najpierw określ zakres autoryzacji zadania dla potoku. Zobacz sekcję powyżej, aby zrozumieć zakres autoryzacji zadania. Jeśli zakres autoryzacji zadania to kolekcji, odpowiednie konto usługi kompilacji do zarządzania uprawnieniami do zarządzania jest usługa kompilacji kolekcji projektów (nazwa kolekcji). Jeśli zakres autoryzacji zadania to projekt, konto usługi kompilacji do zarządzania uprawnieniami jest usługa kompilacji Nazwa projektu (nazwa kolekcji).

  • Aby ograniczyć lub udzielić dodatkowego dostępu do usługi kompilacji kolekcji projektów (nazwa kolekcji):

    • Wybierz pozycję Zarządzaj zabezpieczeń w menu przepełnienia na stronie Pipelines.
    • W obszarze Użytkownicywybierz pozycję usługa kompilacji kolekcji projektów (nazwa kolekcji projektów).
    • Wprowadź zmiany w uprawnieniach związanych z potokami dla tego konta.
    • Przejdź do ustawień organizacji dla organizacji usługi Azure DevOps (lub ustawień kolekcji dla kolekcji projektów).
    • Wybierz pozycję Uprawnienia w obszarze Zabezpieczenia.
    • Na karcie Użytkownicy wyszukaj usługę kompilacji kolekcji projektów (nazwa kolekcji projektów).
    • Wprowadź zmiany w uprawnieniach niezwiązanych z potokami dla tego konta.
    • Ponieważ usługa kompilacji kolekcji projektów (nazwa kolekcji) jest użytkownikiem w organizacji lub kolekcji, możesz jawnie dodać to konto do dowolnego zasobu — na przykład do źródła danych w usłudze Azure Artifacts.
  • Aby ograniczyć lub udzielić dodatkowego dostępu do usługi kompilacji Nazwa projektu (nazwa kolekcji):

    • Konto usługi kompilacji, na którym można zarządzać uprawnieniami, zostanie utworzone tylko po uruchomieniu potoku raz. Upewnij się, że potok został już uruchomiony raz.
    • Wybierz pozycję Zarządzaj zabezpieczeń w menu przepełnienia na stronie Pipelines.
    • W obszarze Użytkownicywybierz usługę kompilacji Nazwa projektu (twoja nazwa-kolekcja).
    • Wprowadź zmiany w uprawnieniach związanych z potokami dla tego konta.
    • Przejdź do ustawień organizacji dla organizacji usługi Azure DevOps (lub ustawień kolekcji dla kolekcji projektów).
    • Wybierz pozycję Uprawnienia w obszarze Zabezpieczenia.
    • Na karcie Użytkownicy poszukaj usługi kompilacji Nazwa projektu (nazwa kolekcji).
    • Wprowadź zmiany w uprawnieniach niezwiązanych z potokami dla tego konta.
    • Ponieważ usługa kompilacji Nazwa projektu (nazwa kolekcji) jest użytkownikiem w organizacji lub kolekcji, możesz jawnie dodać to konto do dowolnego zasobu — na przykład do kanału informacyjnego w usłudze Azure Artifacts.

Konfigurowanie uprawnień dla projektu w celu uzyskania dostępu do innego projektu w tej samej kolekcji projektów

W tym przykładzie tożsamość kompilacji w zakresie projektu fabrikam-tailspin/SpaceGameWeb ma przyznane uprawnienia dostępu do projektu fabrikam-tailspin/FabrikamFiber.

  1. W projekcie FabrikamFiber przejdź do Ustawienia projektu, Uprawnienia.

    Zrzut ekranu przedstawiający sposób konfigurowania ustawień projektu.

  2. Utwórz nową grupę o nazwie External Projects i dodaj konto usługi SpaceGameWeb Build Service. Zrzut ekranu przedstawiający tworzenie nowej grupy zabezpieczeń.

  3. Wybierz pozycję użytkownicy , zacznij wpisywać nazwę SpaceGameWeb, a następnie wybierz konto usługi SpaceGameWeb Build Service. Jeśli początkowo nie widzisz żadnych wyników wyszukiwania, wybierz pozycję Rozwiń wyszukiwanie.

    Zrzut ekranu przedstawiający wybieranie użytkownika tożsamości kompilacji w zakresie projektu SpaceGameWeb.

  4. Przyznaj Wyświetl informacje na poziomie projektu uprawnienia dla tego użytkownika.

    Zrzut ekranu przedstawiający sposób udzielania użytkownikowi uprawnień wyświetlanie informacji na poziomie projektu.

Przykład — konfigurowanie uprawnień dostępu do innego repozytorium w tej samej kolekcji projektów

W tym przykładzie tożsamość kompilacji w zakresie projektu fabrikam-tailspin/SpaceGameWeb ma uprawnienie dostępu do repozytorium FabrikamFiber w projekcie fabrikam-tailspin/FabrikamFiber.

  1. Wykonaj kroki, aby udzielić SpaceGameWeb uprawnienia tożsamości kompilacji w zakresie projektu w celu uzyskania dostępu doprojektu FabrikamFiber.

  2. W projekcie FabrikamFiber przejdź do Ustawienia projektu, repozytoria FabrikamFiber.

    Konfigurowanie dostępu do repozytorium.

  1. Wybierz ikonę +, zacznij wpisywać nazwę SpaceGameWeb, a następnie wybierz konto SpaceGameWeb Build Service.

    Dodaj użytkownika w celu uzyskania dostępu do repozytorium.

  1. Zacznij wpisywać nazwę SpaceGameWeb, a następnie wybierz konto usługi SpaceGameWeb Build Service.

    Zrzut ekranu przedstawiający sposób dodawania użytkownika na potrzeby dostępu do repozytorium.

  1. Udziel uprawnień odczytu dla tego użytkownika.

    Zrzut ekranu przedstawiający sposób konfigurowania uprawnień repozytorium.

Przykład — konfigurowanie uprawnień dostępu do innych zasobów w tej samej kolekcji projektów

W tym przykładzie tożsamość kompilacji w zakresie projektu fabrikam-tailspin/SpaceGameWeb ma przyznane uprawnienia dostępu do innych zasobów w projekcie fabrikam-tailspin/FabrikamFiber.

  1. Wykonaj kroki, aby udzielić SpaceGameWeb uprawnienia tożsamości kompilacji w zakresie projektu w celu uzyskania dostępu doprojektu FabrikamFiber.

  2. Skonfiguruj odpowiednie uprawnienia dla tego użytkownika.

    Konfigurowanie uprawnień użytkownika.

Często zadawane pytania

Jak określić zakres autoryzacji zadania potoku YAML?

  • Jeśli projekt jest projektem publicznym, zakres autoryzacji zadania jest zawsze projekt niezależnie od innych ustawień.
  • Sprawdź ustawienia potoku w obszarze Ustawienia organizacji usługi Azure DevOps :
    • Jeśli ograniczenie zakresu autoryzacji zadania do bieżącego projektu jest włączone, zakres jest projekt.
    • Jeśli Limit zakresu autoryzacji zadania do bieżącego projektu nie jest włączona, sprawdź ustawienia potoku w obszarze ustawienia Project w usłudze Azure DevOps:
      • Jeśli ograniczenie zakresu autoryzacji zadania do bieżącego projektu jest włączone, zakres jest projekt.
      • W przeciwnym razie zakres to kolekcja.
  • Jeśli potok znajduje się w projekcie prywatnym, sprawdź ustawienia potoku w obszarze Ustawienia usługi Azure DevOps Organizacji:
    • Jeśli limit zakresu autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania jest włączony, zakres jest projekt.
    • Jeśli Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania nie jest włączony, sprawdź ustawienia potoku w obszarze Ustawienia projektu w usłudze Azure DevOps:
      • Jeśli limit zakresu autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania jest włączony, zakres jest projekt.
      • W przeciwnym razie zakres to kolekcja.

Jak określić zakres autoryzacji zadania dla mojego klasycznego potoku kompilacji?

  • Jeśli potok znajduje się w projekcie publicznym, zakres autoryzacji zadania jest projekt niezależnie od innych ustawień.
  • Sprawdź ustawienia potoku w obszarze Ustawienia organizacji usługi Azure DevOps :
    • Jeśli ograniczenie zakresu autoryzacji zadania do bieżącego projektu jest włączone, zakres jest projekt.
    • Jeśli Limit zakresu autoryzacji zadania do bieżącego projektu nie jest włączona, sprawdź ustawienia potoku w obszarze ustawienia Project w usłudze Azure DevOps:
      • Jeśli ograniczenie zakresu autoryzacji zadania do bieżącego projektu jest włączone, zakres jest projekt.
      • Jeśli zakres autoryzacji zadania limitu do bieżącego projektu nie jest włączony, otwórz edytor potoku i przejdź do karty opcje .
        • Jeśli zakres autoryzacji zadania kompilacji Bieżący projekt, zakres to projekt.
        • W przeciwnym razie zakres to kolekcja.
  • Jeśli potok znajduje się w projekcie prywatnym, sprawdź ustawienia potoku w obszarze Ustawienia usługi Azure DevOps Organizacji:
    • Jeśli limit zakresu autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania jest włączony, zakres jest projekt.
    • Jeśli Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania nie jest włączony, sprawdź ustawienia potoku w obszarze Ustawienia projektu w usłudze Azure DevOps:
      • Jeśli limit zakresu autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania jest włączony, zakres jest projekt.
      • Jeśli Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków innych niż wydania nie jest włączony, otwórz edytor potoku i przejdź do karty opcje .
        • Jeśli zakres autoryzacji zadania kompilacji Bieżący projekt, zakres to projekt.
        • Innym rozwiązaniem jest kolekcja.

Podczas tworzenia nowego potoku klasycznego zakres autoryzacji zadania jest ustawiony na bieżących projektu, a zakres autoryzacji zadania kompilacji jest domyślnie ustawiony na projektu.

Jak określić zakres autoryzacji zadania dla mojego klasycznego potoku wydania?

Klasyczne potoki wydania w usłudze Azure DevOps Server 2020 i poniżej są uruchamiane z zakresem kolekcji.

  • Jeśli potok znajduje się w projekcie publicznym, zakres autoryzacji zadania jest projekt niezależnie od innych ustawień.
  • Jeśli potok znajduje się w projekcie prywatnym, sprawdź ustawienia potoku w obszarze Ustawienia usługi Azure DevOps Organizacji:
    • Jeśli Limit zakresu autoryzacji zadań do bieżącego projektu dla potoków wydania jest włączony, zakres jest projektu.
    • Jeśli Ogranicz zakres autoryzacji zadań do bieżącego projektu dla potoków wydania nie jest włączony, sprawdź ustawienia potoku w obszarze ustawienia projektu w usłudze Azure DevOps:
      • Jeśli Limit zakresu autoryzacji zadań do bieżącego projektu dla potoków wydania jest włączony, zakres jest projektu.
      • W przeciwnym razie zakres to kolekcja.