Komma åt lagringsplatser, artefakter och andra resurser

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Vid körning kan varje jobb i en pipeline komma åt andra resurser i Azure DevOps. Ett jobb kan till exempel:

  • Kolla in källkod från en Git-lagringsplats
  • Lägga till en tagg på lagringsplatsen
  • Få åtkomst till en feed i Azure Artifacts
  • Ladda upp loggar från agenten till tjänsten
  • Ladda upp testresultat och andra artefakter från agenten till tjänsten
  • Uppdatera ett arbetsobjekt

Azure Pipelines använder jobbåtkomsttoken för att utföra dessa uppgifter. En jobbåtkomsttoken är en säkerhetstoken som genereras dynamiskt av Azure Pipelines för varje jobb vid körning. Agenten som jobbet körs på använder jobbåtkomsttoken för att få åtkomst till dessa resurser i Azure DevOps. Du kan styra vilka resurser din pipeline har åtkomst till genom att styra hur behörigheter beviljas för jobbåtkomsttoken.

Tokens behörigheter härleds från (a) jobbauktoriseringsomfång och (b) de behörigheter som du har angett för projekt- eller samlingsversionstjänstkontot.

Omfång för jobbauktorisering

Du kan ange att jobbauktoriseringsomfånget ska vara samling eller projekt. Genom att ange omfånget till samling väljer du att låta pipelines komma åt alla lagringsplatser i samlingen eller organisationen. Genom att ange omfånget till projekt väljer du att begränsa åtkomsten till endast de lagringsplatser som finns i samma projekt som pipelinen.

Jobbauktoriseringsomfång kan anges för hela Azure DevOps-organisationen eller för ett specifikt projekt.

Kommentar

I Azure DevOps Server 2020 begränsar du jobbauktoriseringsomfånget för det aktuella projektet endast för YAML-pipelines och klassiska byggpipelines. Den gäller inte för klassiska versionspipelines. Klassiska versionspipelines körs alltid med projektsamlingsomfång.

Så här anger du omfånget för jobbauktorisering för organisationen:

  • Gå till sidan organisationsinställningar i Användargränssnittet för Azure DevOps.
  • Välj Inställningar under Pipelines.
  • Aktivera Begränsa omfånget för jobbauktorisering till det aktuella projektet för att begränsa omfånget till projektet. Det här är den rekommenderade inställningen eftersom det förbättrar säkerheten för dina pipelines.

Så här anger du jobbauktoriseringsomfång för ett visst projekt:

  • Gå till sidan projektinställningar i Azure DevOps-användargränssnittet.
  • Välj Inställningar under Pipelines.
  • Aktivera Begränsa omfånget för jobbauktorisering till det aktuella projektet för att begränsa omfånget till projektet. Det här är den rekommenderade inställningen eftersom det förbättrar säkerheten för dina pipelines.
  • Om du vill ange omfång för jobbauktorisering på organisationsnivå för alla projekt väljer du Organisationsinställningar>Pipelines> Inställningar.
  • Om du vill ange omfång för jobbauktorisering för ett visst projekt väljer du Projektinställningar>Pipelines> Inställningar.

Aktivera en eller flera av följande inställningar. Du rekommenderas att aktivera de här inställningarna eftersom det förbättrar säkerheten för dina pipelines.

  • Begränsa omfånget för jobbauktorisering till aktuellt projekt för pipelines som inte släpps – Den här inställningen gäller för YAML-pipelines och klassiska byggpipelines och gäller inte för klassiska versionspipelines.
  • Begränsa omfånget för jobbauktorisering till aktuellt projekt för versionspipelines – Den här inställningen gäller endast för klassiska versionspipelines .

Kommentar

Om omfånget är inställt på projekt på organisationsnivå kan du inte ändra omfånget i varje projekt.

Viktigt!

Om omfånget inte är begränsat på organisations- eller projektnivå får varje jobb i YAML-pipelinen en åtkomsttoken för samlingsomfång. Med andra ord har din pipeline åtkomst till valfri lagringsplats i alla projekt i din organisation. Om en angripare kan få åtkomst till en enda pipeline i ett enda projekt kan de få åtkomst till valfri lagringsplats i organisationen. Därför rekommenderar vi att du begränsar omfånget på högsta nivå (organisationsinställningar) för att begränsa attacken till ett enda projekt.

Om du använder Azure DevOps Server 2019 körs alla YAML-jobb med jobbets auktoriseringsomfång inställt på samling. Med andra ord har de här jobben åtkomst till alla lagringsplatser i din projektsamling. Du kan inte ändra detta i Azure DevOps Server 2019.

YAML-pipelines är inte tillgängliga i TFS.

Kommentar

Om din pipeline finns i ett offentligt projekt begränsas omfånget för jobbauktorisering automatiskt till projekt oavsett vad du konfigurerar i någon inställning. Jobb i ett offentligt projekt kan komma åt resurser som att skapa artefakter eller testa resultat endast inom projektet och inte från andra projekt i organisationen.

Begränsa omfånget för jobbauktorisering till refererade Azure DevOps-lagringsplatser

Utöver inställningarna för jobbauktoriseringsomfånget som beskrivs i föregående avsnitt tillhandahåller Azure Pipelines en gräns för jobbauktoriseringsomfång för referensinställningen För Azure DevOps-lagringsplatser .

Pipelines kan komma åt alla Azure DevOps-lagringsplatser i auktoriserade projekt om inte Begränsa jobbauktoriseringsomfånget till refererade Azure DevOps-lagringsplatser är aktiverat. Med det här alternativet aktiverat kan du minska åtkomstomfånget för alla pipelines till endast Azure DevOps-lagringsplatser som uttryckligen refereras till med ett checkout steg eller en uses instruktion i pipelinejobbet som använder lagringsplatsen.

Mer information finns i Azure Repos Git-lagringsplatser – Begränsa omfånget för jobbauktorisering till refererade Azure DevOps-lagringsplatser.

Skydda åtkomsten till lagringsplatser i YAML-pipelines

Förutom de inställningar för jobbauktoriseringsomfång som beskrivs i föregående avsnitt ger Azure Pipelines inställningen Skydda åtkomst till lagringsplatser i YAML-pipelines .

Pipelines kan komma åt alla Azure DevOps-lagringsplatser i auktoriserade projekt om inte Skydda åtkomsten till lagringsplatser i YAML-pipelines är aktiverad. Med det här alternativet aktiverat kan du minska åtkomstomfånget för alla pipelines till endast Azure DevOps-lagringsplatser som uttryckligen refereras till med ett checkout steg eller en uses instruktion i pipelinejobbet som använder lagringsplatsen.

Mer information finns i Azure Repos Git-lagringsplatser – Skydda åtkomsten till lagringsplatser i YAML-pipelines.

Viktigt!

Skydda åtkomsten till lagringsplatser i YAML-pipelines är aktiverad som standard för nya organisationer och projekt som skapats efter maj 2020.

Begränsade byggidentiteter

Azure DevOps använder två inbyggda identiteter för att köra pipelines.

  • En samlingsomfattningsidentitet som har åtkomst till alla projekt i samlingen (eller organisationen för Azure DevOps Services)
  • En projektomfattande identitet som har åtkomst till ett enda projekt

Dessa identiteter är allokerade behörigheter som krävs för att utföra körningstidsaktiviteter för build/release när du anropar tillbaka till Azure DevOps-systemet. Det finns inbyggda standardbehörigheter och du kan också hantera dina egna behörigheter efter behov.

Namnet på den samlingsomfångade identiteten har följande format:

  • Project Collection Build Service ({OrgName})
  • Om organisationsnamnet till exempel är fabrikam-tailspinhar det här kontot namnet Project Collection Build Service (fabrikam-tailspin).

Namnet på den projektomfattande identiteten har följande format:

  • {Project Name} Build Service ({Org Name})
  • Om organisationsnamnet till exempel är fabrikam-tailspin och projektnamnet är SpaceGameWebhar det här kontot namnet SpaceGameWeb Build Service (fabrikam-tailspin).

Som standard används den samlingsomfattningsbegränsade identiteten, om inte annat konfigureras enligt beskrivningen i föregående avsnitt om jobbauktoriseringsomfång .

Hantera behörigheter för byggtjänstkonto

Ett resultat av att ställa in projektomfattande åtkomst kan vara att den projektomfattande identiteten kanske inte har behörighet till en resurs som den samlingsomfångade identiteten hade.

Du kanske vill ändra behörigheterna för jobbåtkomsttoken i scenarier som följande:

  • Du vill att pipelinen ska komma åt en feed som finns i ett annat projekt.
  • Du vill att din pipeline ska begränsas från att ändra kod på lagringsplatsen.
  • Du vill att din pipeline ska begränsas från att skapa arbetsobjekt.

Så här uppdaterar du behörigheterna för jobbåtkomsttoken:

  • Bestäm först omfånget för jobbauktorisering för din pipeline. Se avsnittet ovan för att förstå omfånget för jobbauktorisering. Om jobbauktoriseringsomfånget är samling är motsvarande build service-konto för att hantera behörigheter för Project Collection Build Service (ditt samlingsnamn). Om omfånget för jobbauktorisering är projekt, är byggtjänstkontot som du vill hantera behörigheter på Din projektnamnsversionstjänst (ditt samlingsnamn).

  • Begränsa eller bevilja ytterligare åtkomst till Project Collection Build Service (ditt samlingsnamn):

    • Välj Hantera säkerhet i spillmenyn på sidan Pipelines .
    • Under Användare väljer du Byggtjänst för projektsamling (ditt samlingsnamn).
    • Gör ändringar i de pipelines-relaterade behörigheterna för det här kontot.
    • Gå till organisationsinställningar för din Azure DevOps-organisation (eller samlingsinställningar för din projektsamling).
    • Välj Behörigheter under Säkerhet.
    • Under fliken Användare letar du efter Project Collection Build Service (ditt samlingsnamn).
    • Gör ändringar i de icke-pipelines-relaterade behörigheterna för det här kontot.
    • Eftersom Project Collection Build Service (ditt samlingsnamn) är en användare i din organisation eller samling kan du uttryckligen lägga till det här kontot i valfri resurs , t.ex. i en feed i Azure Artifacts.
  • Begränsa eller bevilja ytterligare åtkomst till Byggtjänst för ditt projektnamn (ditt samlingsnamn):

    • Det byggtjänstkonto som du kan hantera behörigheter på skapas bara när du har kört pipelinen en gång. Kontrollera att du redan har kört pipelinen en gång.
    • Välj Hantera säkerhet i spillmenyn på sidan Pipelines .
    • Under Användare väljer du Byggtjänst för projektnamn (ditt samlingsnamn).
    • Gör ändringar i de pipelines-relaterade behörigheterna för det här kontot.
    • Gå till organisationsinställningar för din Azure DevOps-organisation (eller samlingsinställningar för din projektsamling).
    • Välj Behörigheter under Säkerhet.
    • Under fliken Användare letar du efter byggtjänsten Ditt projektnamn (ditt samlingsnamn).
    • Gör ändringar i de icke-pipelines-relaterade behörigheterna för det här kontot.
    • Eftersom Build Service för ditt projektnamn (ditt samlingsnamn) är en användare i din organisation eller samling kan du lägga till det här kontot uttryckligen i valfri resurs , t.ex. i ett flöde i Azure Artifacts.

Konfigurera behörigheter för ett projekt för åtkomst till ett annat projekt i samma projektsamling

I det här exemplet beviljas den fabrikam-tailspin/SpaceGameWeb projektomfattande byggidentiteten behörighet att komma åt fabrikam-tailspin/FabrikamFiber projektet.

  1. I FabrikamFiber-projektet går du till Projektinställningar, Behörigheter.

    Skärmbild av hur du konfigurerar projektinställningar.

  2. Skapa en ny grupp med namnet Externa projekt och lägg till kontot SpaceGameWeb Build Service . Skärmbild av hur du skapar en ny säkerhetsgrupp.

  3. Välj Användare, börja skriva namnet SpaceGameWeb och välj kontot SpaceGameWeb Build Service . Om du inte ser några sökresultat från början väljer du Expandera sökning.

    Skärmbild av val av SpaceGameWeb-projektomfattningsanvändare för byggidentitet.

  4. Ge användaren behörighet att visa information på projektnivå.

    Skärmbild av hur du beviljar behörigheten Visa information på projektnivå för en användare.

Exempel – Konfigurera behörigheter för att komma åt en annan lagringsplats i samma projektsamling

I det här exemplet beviljas den fabrikam-tailspin/SpaceGameWeb projektomfattande byggidentiteten behörighet att komma åt lagringsplatsen FabrikamFiber i fabrikam-tailspin/FabrikamFiber projektet.

  1. Följ stegen för att ge den projektomfattande byggidentiteten SpaceGameWeb behörighet att komma åt FabrikamFiber projektet.

  2. I FabrikamFiber-projektet går du till Projektinställningar, Lagringsplatser, FabrikamFiber.

    Konfigurera åtkomst till lagringsplats.

  1. Välj ikonen + , börja skriva namnet SpaceGameWeb och välj kontot SpaceGameWeb Build Service .

    Lägg till användare för lagringsplatsåtkomst.

  1. Börja skriva in namnet SpaceGameWeb och välj kontot SpaceGameWeb Build Service .

    Skärmbild av hur du lägger till en användare för lagringsplatsåtkomst.

  1. Bevilja läsbehörighet för den användaren.

    Skärmbild av hur du konfigurerar lagringsplatsens behörigheter.

Exempel – Konfigurera behörigheter för åtkomst till andra resurser i samma projektsamling

I det här exemplet beviljas den fabrikam-tailspin/SpaceGameWeb projektomfattande byggidentiteten behörighet att komma åt andra resurser i fabrikam-tailspin/FabrikamFiber projektet.

  1. Följ stegen för att ge den projektomfattande byggidentiteten SpaceGameWeb behörighet att komma åt FabrikamFiber projektet.

  2. Konfigurera önskade behörigheter för den användaren.

    Konfigurera användarbehörigheter.

Vanliga frågor

Hur gör jag för att bestämma omfånget för jobbauktorisering för min YAML-pipeline?

  • Om projektet är ett offentligt projekt är omfånget för jobbauktorisering alltid projekt oavsett andra inställningar.

Alla YAML-pipelines i Azure DevOps Server 2019 körs under samlingsjobbets auktoriseringsomfång.

  • Kontrollera inställningarna för Pipeline under inställningarna för Din Azure DevOps-organisation:
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet är omfånget projekt.
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet inte är aktiverat kontrollerar du pipelineinställningarna under dina Project-inställningar i Azure DevOps:
      • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet är omfånget projekt.
      • Annars är omfånget samling.
  • Om pipelinen finns i ett privat projekt kontrollerar du pipelineinställningarna under inställningarna för Din Azure DevOps-organisation:
    • Om Begränsa omfånget för jobbauktorisering till aktuellt projekt för pipelines som inte släpps är omfånget projekt.
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet för pipelines som inte är släppt är inte aktiverat kontrollerar du pipelineinställningarna under dina Project-inställningar i Azure DevOps:
      • Om Begränsa omfånget för jobbauktorisering till aktuellt projekt för pipelines som inte släpps är omfånget projekt.
      • Annars är omfånget samling.

Hur gör jag för att bestämma omfånget för jobbauktorisering för min klassiska bygg-pipeline?

  • Om pipelinen finns i ett offentligt projekt är omfånget för jobbauktorisering projekt oavsett andra inställningar.
  • Öppna redigeraren för pipelinen och gå till fliken Alternativ .
    • Om omfånget För att skapa jobbauktorisering är Aktuellt projekt är omfånget projekt.
    • Annars är omfånget samling.
  • Kontrollera inställningarna för Pipeline under inställningarna för Din Azure DevOps-organisation:
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet är omfånget projekt.
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet inte är aktiverat kontrollerar du pipelineinställningarna under dina Project-inställningar i Azure DevOps:
      • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet är omfånget projekt.
      • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet inte är aktiverat öppnar du redigeraren för pipelinen och navigerar till fliken Alternativ .
        • Om omfånget För att skapa jobbauktorisering är Aktuellt projekt är omfånget projekt.
        • Annars är omfånget samling.
  • Om pipelinen finns i ett privat projekt kontrollerar du pipelineinställningarna under inställningarna för Din Azure DevOps-organisation:
    • Om Begränsa omfånget för jobbauktorisering till aktuellt projekt för pipelines som inte släpps är omfånget projekt.
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet för pipelines som inte är släppt är inte aktiverat kontrollerar du pipelineinställningarna under dina Project-inställningar i Azure DevOps:
      • Om Begränsa omfånget för jobbauktorisering till aktuellt projekt för pipelines som inte släpps är omfånget projekt.
      • Om Begränsa jobbauktoriseringsomfånget till det aktuella projektet för pipelines som inte är släppt är inte aktiverat öppnar du redigeraren för pipelinen och går till fliken Alternativ .
        • Om omfånget För att skapa jobbauktorisering är Aktuellt projekt är omfånget projekt.
        • Annars är omfånget samling.

När du skapar en ny klassisk pipeline anges omfånget för jobbauktorisering till aktuellt projekt och omfångetför skapandejobbauktorisering är inställt på projekt som standard.

Hur gör jag för att bestämma omfånget för jobbauktorisering för min klassiska versionspipeline?

Klassiska versionspipelines i Azure DevOps Server 2020 och nedan körs med samlingsomfång .

  • Om pipelinen finns i ett offentligt projekt är omfånget för jobbauktorisering projekt oavsett andra inställningar.
  • Om pipelinen finns i ett privat projekt kontrollerar du pipelineinställningarna under inställningarna för Din Azure DevOps-organisation:
    • Om Begränsa jobbauktoriseringsomfånget till det aktuella projektet för versionspipelines är omfånget projekt.
    • Om Begränsa omfånget för jobbauktorisering till det aktuella projektet för versionspipelines inte är aktiverat kontrollerar du pipelineinställningarna under dina Project-inställningar i Azure DevOps:
      • Om Begränsa jobbauktoriseringsomfånget till det aktuella projektet för versionspipelines är omfånget projekt.
      • Annars är omfånget samling.