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
Rozsah autorizace úlohy můžete nastavit tak, aby byl kolekce nebo projektu. Nastavením rozsahu na kolekcise rozhodnete povolit kanálům přístup ke všem úložištím v kolekci nebo organizaci. Nastavením oboru na projektse rozhodnete omezit přístup jenom na úložiště, která jsou ve stejném projektu jako kanál.
Rozsah oprávnění úlohy lze nastavit pro celou organizaci Azure DevOps nebo pro konkrétní projekt.
Poznámka:
V Azure DevOps Serveru 2020 Omezit rozsah autorizace úloh na aktuální projekt platí jenom pro kanály YAML a klasické kanály sestavení. 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 Pipelines vyberte nastavení .
- Povolte Omezit rozsah autorizace úlohy na aktuální projekt a omezte rozsah na 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 Pipelines vyberte nastavení .
- Povolte Omezit rozsah autorizace úlohy na aktuální projekt a omezte rozsah na 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 Nastavení organizace>Pipelines>Nastavení.
- Pokud chcete nastavit rozsah autorizace úlohy pro konkrétní projekt, zvolte Nastavení projektu>Pipelines>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 úlohy na aktuální projekt pro kanály bez verze – toto nastavení platí pro kanály YAML a klasické kanály sestavení a nevztahuje se na klasických kanálů 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.
Poznámka:
Pokud je váš kanál ve veřejného projektu, rozsah autorizace úloh se 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í rozsahu autorizace úlohy popsaného v předchozí části poskytuje Azure Pipelines obor autorizace úlohy Omezit na odkazovaná úložiště Azure DevOps nastavení.
Kanály mají přístup k libovolnému úložišti Azure DevOps v autorizovaných projektech, pokud Omezit rozsah autorizace úloh na odkazovaná úložiště Azure DevOps není povolená. 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ích Git 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 Chránit přístup k úložištím v kanálech YAML nastavení.
Kanály mají přístup k libovolnému úložišti Azure DevOps v autorizovaných projektech, pokud Chránit přístup k úložištím v kanálech YAML není povolená. 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 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 vymezená kolekcí, 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 s oborem kolekce má následující formát:
Project Collection Build Service ({OrgName})
- Pokud je například název organizace
fabrikam-tailspin
, má tento účet názevProject Collection Build Service (fabrikam-tailspin)
.
Název identity s oborem projektu má následující formát:
{Project Name} Build Service ({Org Name})
- Pokud je například název organizace
fabrikam-tailspin
a název projektu jeSpaceGameWeb
, má tento účet názevSpaceGameWeb 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ím oboru autorizace úlohy oddílu.
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, odpovídající účet služby sestavení ke správě oprávnění je služba sestavení kolekce projektů (název vaší kolekce). Pokud je obor autorizace úlohy projekt, pak je účet služby sestavení pro správu oprávnění služba sestavení název_projektu (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 vyberte Spravovat zabezpečení.
- V části Uživatelévyberte 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 sestavení kolekce projektů (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 služba sestavení kolekce projektů (název vaší 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 k sestavení vaší služby pro název 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 vyberte Spravovat zabezpečení.
- V části Uživatelévyberte Služba sestavení názvu vašeho projektu (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žby sestavení název_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, služba sestavení vašeho projektu (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.
Konfigurace oprávnění pro přístup k jinému projektu ve stejné kolekci projektů
V tomto příkladu má fabrikam-tailspin/SpaceGameWeb
identita sestavení v oboru projektu udělená oprávnění pro přístup k fabrikam-tailspin/FabrikamFiber
projektu.
V projektu FabrikamFiber přejděte na nastavení projektu, Oprávnění.
Vytvořte novou skupinu s názvem externí projekty a přidejte účet služby SpaceGameWeb Build Service.
Zvolte Users, začněte psát název SpaceGameWeba vyberte účet SpaceGameWeb Build Service. Pokud se zpočátku nezobrazí žádné výsledky hledání, vyberte Rozbalit hledání.
Udělte Zobrazit informace na úrovni projektu oprávnění pro daného uživatele.
Příklad – Konfigurace oprávnění pro přístup k jinému úložišti ve stejné kolekci projektů
V tomto příkladu má fabrikam-tailspin/SpaceGameWeb
identita sestavení v oboru projektu udělená oprávnění pro přístup k úložišti FabrikamFiber
v projektu fabrikam-tailspin/FabrikamFiber
.
Podle pokynů udělte
SpaceGameWeb
identitě sestavení v oboru projektu oprávnění pro přístup kprojektuFabrikamFiber
.V projektu FabrikamFiber přejděte na nastavení projektu , úložiště, FabrikamFiber.
Zvolte ikonu +, začněte psát název SpaceGameWeba vyberte účet SpaceGameWeb Build Service.
Začněte psát název SpaceGameWeba vyberte účet SpaceGameWeb Build Service.
Udělte oprávnění ke čtení pro daného uživatele.
Příklad – Konfigurace oprávnění pro přístup k jiným prostředkům ve stejné kolekci projektů
V tomto příkladu má fabrikam-tailspin/SpaceGameWeb
identita sestavení v oboru projektu udělená oprávnění pro přístup k jiným prostředkům v projektu fabrikam-tailspin/FabrikamFiber
.
Podle pokynů udělte
SpaceGameWeb
identitě sestavení v oboru projektu oprávnění pro přístup kprojektuFabrikamFiber
.Nakonfigurujte požadovaná oprávnění pro daného uživatele.
Často kladené dotazy
Jak zjistím 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í.
- Zkontrolujte nastavení kanálu v nastavení azure DevOps organizace:
- Pokud je povolen Omezit rozsah autorizace úloh na aktuální projekt, pak je rozsah projekt.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt není povolený, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
- Pokud je povolen Omezit rozsah autorizace úloh na aktuální projekt, pak je rozsah projekt.
- V opačném případě je rozsah kolekce.
- Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení azure DevOps organizace:
- Pokud je povolený Omezit rozsah autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze,, pak je rozsah projektu.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt pro kanály bez verze není povolený, zkontrolujte nastavení kanálu v nastavení Projectu v Azure DevOps:
- Pokud je povolený Omezit rozsah autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze,, pak je rozsah projektu.
- V opačném případě je rozsah kolekce.
Jak určím rozsah autorizace úlohy klasického kanálu buildu?
- Pokud je kanál ve veřejném projektu, rozsah autorizace úloh se projektu bez ohledu na ostatní nastavení.
- Zkontrolujte nastavení kanálu v nastavení azure DevOps organizace:
- Pokud je povolen Omezit rozsah autorizace úloh na aktuální projekt, pak je rozsah projekt.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt není povolený, zkontrolujte nastavení kanálu v nastavení projektu v Azure DevOps:
- Pokud je povolen Omezit rozsah autorizace úloh na aktuální projekt, pak je rozsah projekt.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt není povolený, otevřete editor kanálu a přejděte na kartu Možnosti.
- Pokud oboru autorizace úlohy sestaveníaktuálníprojektu , pak je rozsah projekt.
- V opačném případě je rozsah kolekce.
- Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení azure DevOps organizace:
- Pokud je povolený Omezit rozsah autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze,, pak je rozsah projektu.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt pro kanály bez verze není povolený, zkontrolujte nastavení kanálu v nastavení Projectu v Azure DevOps:
- Pokud je povolený Omezit rozsah autorizace úloh na aktuální projekt pro kanály, které nejsou vydané verze,, pak je rozsah projektu.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt pro kanály bez verze, není povolený, otevřete editor kanálu a přejděte na kartu Možnosti.
- Pokud oboru autorizace úlohy sestaveníaktuálníprojektu , pak je rozsah projekt.
- Nebo jinak je rozsah kolekce.
Při vytváření nového klasického kanálu je obor autorizace úloh nastavený na aktuální projektu a obor autorizace úlohy sestavení je ve výchozím nastavení nastavený na projektu.
Jak určím rozsah autorizace úloh v klasickém kanálu verze?
Kanály klasických verzí v Azure DevOps Serveru 2020 a níže běží s rozsahem kolekce .
- Pokud je kanál ve veřejném projektu, rozsah autorizace úloh se projektu bez ohledu na ostatní nastavení.
- Pokud je kanál v privátním projektu, zkontrolujte nastavení kanálu v nastavení azure DevOps organizace:
- Pokud je povolený Omezit rozsah autorizace úlohy na aktuální projekt pro kanály verze, je rozsah projektu.
- Pokud Omezit rozsah autorizace úloh na aktuální projekt pro kanály verze není povolený, zkontrolujte nastavení kanálu v nastavení Projectu v Azure DevOps:
- Pokud je povolený Omezit rozsah autorizace úlohy na aktuální projekt pro kanály verze, je rozsah projektu.
- V opačném případě je rozsah kolekce.