Přístup k úložištím, artefaktům a dalším prostředkům

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

Za běhu může každá úloha v kanálu přistupovat k jiným prostředkům v Azure DevOps. Například úloha může:

  • Rezervace zdrojového kódu z úložiště Git
  • Přidání značky do úložiště
  • Přístup k informačnímu kanálu v Azure Artifacts
  • Nahrání protokolů z agenta do služby
  • Nahrání výsledků testu a dalších artefaktů z agenta do služby
  • Aktualizace pracovní položky

Azure Pipelines k provádění těchto úloh používá přístupové tokeny úloh . Přístupový token úlohy je token zabezpečení, který se dynamicky generuje službou Azure Pipelines pro každou úlohu za běhu. Agent, na kterém je úloha spuštěna, používá přístupový token úlohy pro přístup k těmto prostředkům v Azure DevOps. Řízením způsobu udělování oprávnění přístupovým tokenům úloh můžete řídit, ke kterým prostředkům má váš kanál přístup.

Oprávnění tokenu jsou odvozena z (a) rozsahu autorizace úlohy a (b) oprávnění nastavených na účtu služby sestavení projektu nebo kolekce.

Rozsah autorizace úlohy

Obor autorizace úlohy můžete nastavit jako kolekci nebo projekt. Nastavením oboru na kolekci se rozhodnete povolit kanálům přístup ke všem úložištím v kolekci nebo organizaci. Nastavením oboru na projekt se rozhodnete omezit přístup jenom na úložiště, která jsou ve stejném projektu jako kanál.

Obor autorizace úloh je možné nastavit pro celou organizaci Azure DevOps nebo pro konkrétní projekt.

Poznámka:

V Azure DevOps Serveru 2020 platí omezení rozsahu autorizace úloh na aktuální projekt pouze pro kanály YAML a klasické kanály buildu. Nevztahuje se na klasické kanály verze. Kanály klasické verze se vždy spouštějí s rozsahem kolekce projektů.

Nastavení rozsahu autorizace úlohy pro organizaci:

  • V uživatelském rozhraní Azure DevOps přejděte na stránku nastavení vaší organizace.
  • V části Kanály vyberte Nastavení.
  • Pokud chcete omezit rozsah na projekt, povolte omezení oboru autorizace úlohy na aktuální projekt . Toto je doporučené nastavení, protože vylepšuje zabezpečení vašich kanálů.

Nastavení oboru autorizace úlohy pro konkrétní projekt:

  • V uživatelském rozhraní Azure DevOps přejděte na stránku nastavení projektu.
  • V části Kanály vyberte Nastavení.
  • Pokud chcete omezit rozsah na projekt, povolte omezení oboru autorizace úlohy na aktuální projekt . Toto je doporučené nastavení, protože vylepšuje zabezpečení vašich kanálů.
  • Pokud chcete nastavit rozsah autorizace úloh na úrovni organizace pro všechny projekty, zvolte Kanály> nastavení>organizace Nastavení.
  • Pokud chcete nastavit rozsah autorizace úloh pro konkrétní projekt, zvolte Kanály> nastavení>projektu Nastavení.

Povolte jedno nebo více následujících nastavení. Povolení těchto nastavení se doporučuje, protože vylepšuje zabezpečení vašich kanálů.

  • Omezit rozsah autorizace úloh na aktuální projekt pro kanály bez verze – Toto nastavení platí pro kanály YAML a klasické kanály buildu a nevztahuje se na klasické kanály verze.
  • Omezit rozsah autorizace úloh na aktuální projekt pro kanály verze – Toto nastavení platí jenom pro klasické kanály verze.

Poznámka:

Pokud je obor nastavený na projekt na úrovni organizace, nemůžete změnit obor v každém projektu.

Důležité

Pokud obor není omezen na úrovni organizace nebo na úrovni projektu, získá každá úloha v kanálu YAML přístupový token úlohy s vymezeným oborem kolekce. Jinými slovy, váš kanál má přístup k libovolnému úložišti v libovolném projektu vaší organizace. Pokud nežádoucí osoba může získat přístup k jednomu kanálu v jednom projektu, bude moct získat přístup k libovolnému úložišti ve vaší organizaci. Proto doporučujeme omezit rozsah na nejvyšší úrovni (nastavení organizace), aby obsahoval útok na jeden projekt.

Pokud používáte Azure DevOps Server 2019, všechny úlohy YAML se spouštějí s oborem autorizace úlohy nastaveným na kolekci. Jinými slovy, tyto úlohy mají přístup ke všem úložištím v kolekci projektů. V Azure DevOps Serveru 2019 to nejde změnit.

Kanály YAML nejsou v TFS k dispozici.

Poznámka:

Pokud je váš kanál ve veřejném projektu, pak se obor autorizace úlohy automaticky omezí na projekt bez ohledu na to, co konfigurujete v libovolném nastavení. Úlohy ve veřejném projektu mají přístup k prostředkům, jako jsou artefakty sestavení nebo výsledky testů, pouze v rámci projektu a ne z jiných projektů organizace.

Omezení rozsahu autorizace úloh na odkazovaná úložiště Azure DevOps

Kromě nastavení oboru autorizace úlohy popsaného v předchozí části poskytuje Azure Pipelines obor autorizace úlohy limitu pro odkazované nastavení úložišť Azure DevOps.

Kanály mají přístup k libovolnému úložišti Azure DevOps v autorizovaných projektech, pokud není povolený limit rozsahu autorizace úloh odkazovaných na úložiště Azure DevOps. Pokud je tato možnost povolená, můžete omezit rozsah přístupu pro všechny kanály pouze na úložiště Azure DevOps, na která se výslovně odkazuje checkout krok nebo uses příkaz v úloze kanálu, která toto úložiště používá.

Další informace najdete v tématu Úložiště Git v Azure Repos – Omezení rozsahu autorizace úloh na odkazovaná úložiště Azure DevOps.

Ochrana přístupu k úložištím v kanálech YAML

Kromě nastavení oboru autorizace úlohy popsaného v předchozí části poskytuje Azure Pipelines přístup k úložištím v nastavení kanálů YAML.

Kanály mají přístup k libovolnému úložišti Azure DevOps v autorizovaných projektech, pokud není povolený přístup k úložištím v kanálech YAML. Pokud je tato možnost povolená, můžete omezit rozsah přístupu pro všechny kanály pouze na úložiště Azure DevOps, na která se výslovně odkazuje checkout krok nebo uses příkaz v úloze kanálu, která toto úložiště používá.

Další informace najdete v tématu Úložiště Git v Azure Repos – Ochrana přístupu k úložištím v kanálech YAML.

Důležité

Ochrana přístupu k úložištím v kanálech YAML je ve výchozím nastavení povolená pro nové organizace a projekty vytvořené po květnu 2020.

Identity sestavení s vymezeným oborem

Azure DevOps používá k provádění kanálů dvě předdefinované identity.

  • Identita v oboru kolekce, která má přístup ke všem projektům v kolekci (nebo organizaci pro Azure DevOps Services)
  • Identita v oboru projektu, která má přístup k jednomu projektu

Tyto identity mají přidělená oprávnění potřebná k provádění aktivit v době provádění sestavení nebo vydání při volání zpět do systému Azure DevOps. Existují předdefinovaná výchozí oprávnění a podle potřeby můžete také spravovat vlastní oprávnění.

Název identity v oboru kolekce má následující formát:

  • Project Collection Build Service ({OrgName})
  • Pokud je fabrikam-tailspinnapříklad název organizace , má tento účet název Project Collection Build Service (fabrikam-tailspin).

Název identity v oboru projektu má následující formát:

  • {Project Name} Build Service ({Org Name})
  • Pokud je fabrikam-tailspin například název organizace a název projektu je SpaceGameWeb, má tento účet název SpaceGameWeb Build Service (fabrikam-tailspin).

Ve výchozím nastavení se používá identita s oborem kolekce, pokud není nakonfigurovaná jinak, jak je popsáno v předchozí části oboru autorizace úlohy.

Správa oprávnění účtu služby sestavení

Jedním z výsledků nastavení přístupu s oborem projektu může být to, že identita s oborem projektu nemusí mít oprávnění k prostředku, který měl obor kolekce.

V následujících scénářích můžete chtít změnit oprávnění přístupového tokenu úlohy:

  • Chcete, aby váš kanál přistupoval k informačnímu kanálu, který je v jiném projektu.
  • Chcete, aby váš kanál byl omezen na změnu kódu v úložišti.
  • Chcete, aby byl kanál omezen na vytváření pracovních položek.

Aktualizace oprávnění přístupového tokenu úlohy:

  • Nejprve určete obor autorizace úlohy pro váš kanál. Informace o oboru autorizace úloh najdete v předchozí části. Pokud je obor autorizace úlohy kolekce, pak odpovídající účet služby sestavení pro správu oprávnění je Služba sestavení kolekce projektů (název_kolekce). Pokud je obor autorizace úlohy projekt, pak účet služby sestavení pro správu oprávnění je Vaše-název_projektu Sestavení (název_kolekce).

  • Omezení nebo udělení dalšího přístupu ke službě sestavení kolekce projektů (název kolekce):

    • V nabídce přetečení na stránce Pipelines (Kanály) vyberte Spravovat zabezpečení.
    • V části Uživatelé vyberte Službu sestavení kolekce projektů (název kolekce).
    • Proveďte všechny změny oprávnění souvisejících s kanály pro tento účet.
    • Přejděte do nastavení organizace pro organizaci Azure DevOps (nebo nastavení kolekce pro vaši kolekci projektů).
    • V části Zabezpečení vyberte oprávnění.
    • Na kartě Uživatelé vyhledejte službu Sestavení kolekce projektů (název vaší kolekce).
    • Proveďte všechny změny oprávnění nesouvisejících s kanály pro tento účet.
    • Vzhledem k tomu, že služba Sestavení kolekce projektů (název kolekce) je uživatel ve vaší organizaci nebo kolekci, můžete tento účet přidat explicitně do libovolného prostředku – například do informačního kanálu v Azure Artifacts.
  • Omezení nebo udělení dalšího přístupu ke službě Sestavení názvu projektu (název_kolekce):

    • Účet služby sestavení, na kterém můžete spravovat oprávnění, se vytvoří pouze po spuštění kanálu jednou. Ujistěte se, že jste kanál spustili jednou.
    • V nabídce přetečení na stránce Pipelines (Kanály) vyberte Spravovat zabezpečení.
    • V části Uživatelé vyberte Službu sestavení vašeho projektu (název_kolekce).</a0>
    • Proveďte všechny změny oprávnění souvisejících s kanály pro tento účet.
    • Přejděte do nastavení organizace pro organizaci Azure DevOps (nebo nastavení kolekce pro vaši kolekci projektů).
    • V části Zabezpečení vyberte oprávnění.
    • Na kartě Uživatelé vyhledejte službu sestavení název vašeho projektu (název_kolekce).
    • Proveďte všechny změny oprávnění nesouvisejících s kanály pro tento účet.
    • Vzhledem k tomu, že vaše služba sestavení vašeho projektu (název kolekce) je uživatel ve vaší organizaci nebo kolekci, můžete tento účet explicitně přidat do libovolného prostředku – například do informačního kanálu v Azure Artifacts.

Konfigurace oprávnění pro přístup k jinému projektu ve stejné kolekci projektů

V tomto příkladu má identita fabrikam-tailspin/SpaceGameWeb sestavení v oboru projektu udělená oprávnění pro přístup k fabrikam-tailspin/FabrikamFiber projektu.

  1. V projektu FabrikamFiber přejděte do nastavení projektu, Oprávnění.

    Snímek obrazovky znázorňuje, jak nakonfigurovat nastavení projektu

  2. Vytvořte novou skupinu s názvem Externí projekty a přidejte účet služby SpaceGameWeb Build Service . Snímek obrazovky s vytvořením nové skupiny zabezpečení

  3. Zvolte Uživatelé, začněte psát do názvu SpaceGameWeb a vyberte účet Služby sestavení SpaceGameWeb. Pokud se zpočátku nezobrazují žádné výsledky hledání, vyberte Rozbalit hledání.

    Snímek obrazovky s výběrem uživatele identity sestavení s oborem projektu SpaceGameWeb

  4. Udělte uživateli oprávnění Zobrazit informace na úrovni projektu.

    Snímek obrazovky znázorňuje, jak uživateli udělit oprávnění k zobrazení informací na úrovni projektu

Příklad – Konfigurace oprávnění pro přístup k jinému úložišti ve stejné kolekci projektů

V tomto příkladu má identita fabrikam-tailspin/SpaceGameWeb sestavení v oboru projektu udělená oprávnění pro přístup k FabrikamFiber úložišti v fabrikam-tailspin/FabrikamFiber projektu.

  1. Podle pokynů udělte identitě SpaceGameWeb sestavení v oboru projektu oprávnění pro přístup k FabrikamFiber projektu.

  2. V projektu FabrikamFiber přejděte do nastavení projektu, úložiště, FabrikamFiber.

    Nakonfigurujte přístup k úložišti.

  1. + Zvolte ikonu, začněte psát název SpaceGameWeb a vyberte účet SpaceGameWeb Build Service.

    Přidejte uživatele pro přístup k úložišti.

  1. Začněte psát do názvu SpaceGameWeb a vyberte účet Služby sestavení SpaceGameWeb.

    Snímek obrazovky znázorňuje, jak přidat uživatele pro přístup k úložišti.

  1. Udělte uživateli oprávnění ke čtení .

    Snímek obrazovky znázorňuje, jak nakonfigurovat oprávnění úložiště

Příklad – Konfigurace oprávnění pro přístup k jiným prostředkům ve stejné kolekci projektů

V tomto příkladu má identita fabrikam-tailspin/SpaceGameWeb sestavení v oboru projektu udělená oprávnění pro přístup k jiným prostředkům fabrikam-tailspin/FabrikamFiber v projektu.

  1. Podle pokynů udělte identitě SpaceGameWeb sestavení v oboru projektu oprávnění pro přístup k FabrikamFiber projektu.

  2. Nakonfigurujte požadovaná oprávnění pro daného uživatele.

    Nakonfigurujte uživatelská oprávnění.

Často kladené dotazy

Návody určit rozsah autorizace úlohy kanálu YAML?

  • Pokud je projekt veřejným projektem, rozsah autorizace úloh je vždy projekt bez ohledu na ostatní nastavení.

Všechny kanály YAML v Azure DevOps Serveru 2019 běží v rámci oboru autorizace úlohy kolekce .

  • Zkontrolujte nastavení kanálu v nastavení organizace Azure DevOps:
    • Pokud je povolený obor autorizace úlohy omezit na aktuální projekt , pak se jedná o projekt.
    • Pokud není povolený limit oboru autorizace úloh na aktuální projekt, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
      • Pokud je povolený obor autorizace úlohy omezit na aktuální projekt , pak se jedná o projekt.
      • V opačném případě je obor kolekce.
  • Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení organizace Azure DevOps:
    • Pokud je povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály bez verze, pak se jedná o projekt.
    • Pokud není povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
      • Pokud je povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály bez verze, pak se jedná o projekt.
      • V opačném případě je obor kolekce.

Návody určit rozsah autorizace úloh v klasickém kanálu buildu?

  • Pokud je kanál ve veřejném projektu, rozsah autorizace úlohy je projekt bez ohledu na ostatní nastavení.
  • Otevřete editor kanálu a přejděte na kartu Možnosti .
    • Pokud je obor autorizace úlohy sestavení aktuální projekt, pak se jedná o projekt.
    • V opačném případě je obor kolekce.
  • Zkontrolujte nastavení kanálu v nastavení organizace Azure DevOps:
    • Pokud je povolený obor autorizace úlohy omezit na aktuální projekt , pak se jedná o projekt.
    • Pokud není povolený limit oboru autorizace úloh na aktuální projekt, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
      • Pokud je povolený obor autorizace úlohy omezit na aktuální projekt , pak se jedná o projekt.
      • Pokud není povolený limit oboru autorizace úloh na aktuální projekt , otevřete editor kanálu a přejděte na kartu Možnosti .
        • Pokud je obor autorizace úlohy sestavení aktuální projekt, pak se jedná o projekt.
        • V opačném případě je obor kolekce.
  • Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení organizace Azure DevOps:
    • Pokud je povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály bez verze, pak se jedná o projekt.
    • Pokud není povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
      • Pokud je povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály bez verze, pak se jedná o projekt.
      • Pokud není povolený obor autorizace úloh na aktuální projekt pro kanály , které nejsou vydané verze, otevřete editor kanálu a přejděte na kartu Možnosti .
        • Pokud je obor autorizace úlohy sestavení aktuální projekt, pak se jedná o projekt.
        • Jinak je obor kolekce.

Při vytváření nového klasického kanálu je obor autorizace úlohy nastavený na aktuální projekt a obor autorizace úlohy sestavení je ve výchozím nastavení nastavený na projekt .

Návody určit rozsah autorizace úlohy v kanálu klasické verze?

Kanály klasické verze v Azure DevOps Serveru 2020 a níže běží s rozsahem kolekce .

  • Pokud je kanál ve veřejném projektu, rozsah autorizace úlohy je projekt bez ohledu na ostatní nastavení.
  • Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení organizace Azure DevOps:
    • Pokud je povolený limit oboru autorizace úlohy na aktuální projekt pro kanály verze, pak se jedná o projekt.
    • Pokud není povolený limit rozsahu autorizace úloh na aktuální projekt pro kanály verze, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
      • Pokud je povolený limit oboru autorizace úlohy na aktuální projekt pro kanály verze, pak se jedná o projekt.
      • V opačném případě je obor kolekce.