Změny bezplatných grantů ve službě Azure Pipelines
Dočasně měníme proces získání bezplatných grantů Azure Pipelines, abychom vyřešili rostoucí zneužití hostovaných agentů. Ve výchozím nastavení nemusí nové organizace vytvořené v Azure DevOps získat bezplatné udělení souběžných kanálů. Noví uživatelé budou muset odeslat e-mail a poskytnout další informace, aby získali bezplatnou CI/CD.
Podrobnosti najdete v seznamu funkcí níže.
Azure Pipelines
- Změny bezplatných grantů ve službě Azure Pipelines
- Odebrání zásad uchovávání informací pro jednotlivé kanály v klasických buildech
- Nové ovládací prvky pro proměnné prostředí v kanálech
- Generování neomezeného tokenu pro sestavení forku
- Změna předinstalovaných modulů Az, Azure a Azure RM
Azure Repos
Azure Pipelines
Změny bezplatných grantů ve službě Azure Pipelines
Azure Pipelines už několik let nabízí bezplatné CI/CD pro veřejné a soukromé projekty. Vzhledem k tomu, že se jedná o poskytnutí bezplatného výpočetního výkonu, byl vždy cílem zneužití – zejména kryptografické těžby. Minimalizace tohoto zneužití vždy převzala energii od týmu. Během několika posledních měsíců se situace podstatně zhoršila, přičemž vysoké procento nových projektů v Azure DevOps se používá pro kryptografické dolování a další aktivity, které klasifikujeme jako zneužívající. Toto zneužití způsobilo několik servisních incidentů za poslední měsíc, což vede k dlouhé době čekání pro stávající zákazníky.
Abychom tuto situaci vyřešili, přidali jsme pro nové organizace v Azure DevOps další krok, abychom získali bezplatné granty. Následující změny jsou účinné okamžitě:
- Ve výchozím nastavení už nové organizace vytvořené v Azure DevOps nebudou mít bezplatné udělení souběžných kanálů. To platí pro veřejné i soukromé projekty v nových organizacích.
- Pokud chcete požádat o bezplatnou grant, odešlete žádost a jasně uveďte následující podrobnosti:
- Vaše jméno
- Organizace Azure DevOps, pro kterou žádáte o bezplatné udělení
- Bez ohledu na to, jestli potřebujete bezplatné granty pro veřejné projekty nebo soukromé projekty
- Odkazy na úložiště, která plánujete sestavit (pouze veřejné projekty)
- Stručný popis projektu (pouze veřejné projekty)
Vaši žádost zkontrolujeme a odpovíme během několika dnů.
Poznámka:
Tato změna má vliv jenom na nové organizace. Nevztahuje se na existující projekty ani organizace. Tím se nezmění množství bezplatného grantu, které můžete získat. Přidá jenom další krok k získání bezplatného grantu.
Omlouváme se za případné nepříjemnosti, což může způsobit, že noví zákazníci chtějí používat Azure Pipelines pro CI/CD. Věříme, že je to nezbytné k tomu, aby se všem našim zákazníkům nadále poskytovala vysoká úroveň služeb. Budeme dále zkoumat automatizované způsoby prevence zneužití a obnovíme předchozí model, jakmile budeme mít spolehlivý mechanismus, abychom zabránili zneužití.
Odebrání zásad uchovávání informací pro jednotlivé kanály v klasických buildech
V nastavení projektu Azure DevOps teď můžete nakonfigurovat zásady uchovávání informací pro klasické buildy a kanály YAML. I když je to jediný způsob, jak nakonfigurovat uchovávání pro kanály YAML, můžete také nakonfigurovat uchovávání pro klasické kanály sestavení na základě jednotlivých kanálů. V nadcházející verzi odebereme všechna pravidla uchovávání jednotlivých kanálů pro kanály buildu Classic.
To znamená pro vás: jakýkoli klasický kanál buildu, který má stále pravidla uchovávání podle kanálu, se brzy řídí pravidly uchovávání informací na úrovni projektu.
Abychom vám pomohli tyto kanály identifikovat, zavádíme změnu v této verzi, abychom v horní části stránky seznamu spuštění zobrazili banner.
Doporučujeme aktualizovat kanály odebráním pravidel uchovávání jednotlivých kanálů. Pokud váš kanál konkrétně vyžaduje vlastní pravidla, můžete v kanálu použít vlastní úlohu. Informace o přidávání zapůjčení uchovávání informací prostřednictvím úlohy najdete v dokumentaci k nastavení zásad uchovávání informací pro sestavení, vydané verze a testy.
Nové ovládací prvky pro proměnné prostředí v kanálech
Agent Azure Pipelines prohledá standardní výstup pro speciální příkazy protokolování a spustí je. Příkaz setVariable
lze použít k nastavení proměnné nebo úpravě dříve definované proměnné. To může potenciálně zneužít aktér mimo systém. Pokud má například váš kanál krok, který vypíše seznam souborů na serveru FTP, může osoba s přístupem k serveru FTP přidat nový soubor, jehož název obsahuje setVariable
příkaz a způsobit, že kanál změní jeho chování.
Máme mnoho uživatelů, kteří spoléhají na nastavení proměnných pomocí příkazu protokolování ve svém kanálu. V této verzi provádíme následující změny, abychom snížili riziko nežádoucího setVariable
použití příkazu.
- Přidali jsme nový konstruktor pro autory úkolů. Zahrnutím fragmentu kódu, jako je například následující,
task.json
může autor úkolu řídit, jestli jsou podle jejich úkolu nastaveny nějaké proměnné.
{
"restrictions": {
"commands": {
"mode": "restricted"
},
"settableVariables": {
"allowed": [
"myVar",
"otherVar"
]
}
},
}
Kromě toho aktualizujeme řadu předdefinovaných úloh, jako je ssh, aby je nebylo možné zneužít.
Nakonec můžete pomocí konstruktorů YAML řídit, jestli může krok nastavit proměnné.
steps:
- script: echo hello
target:
settableVariables: none
steps:
- script: echo hello
target:
settableVariables:
- things
- stuff
Generování neomezeného tokenu pro sestavení forku
Uživatelé GitHubu běžně používají forky k přispívání do upstreamového úložiště. Když Azure Pipelines vytváří příspěvky z forku úložiště GitHubu, omezí oprávnění udělená tokenu přístupu k úloze a neumožňuje přístup k tajným kódům kanálu těmito úlohami. Další informace o zabezpečení forků budov najdete v naší dokumentaci.
Stejná omezení platí ve výchozím nastavení při vytváření forků úložiště GitHub Enterprise Server. To může být v takových uzavřených prostředích více omezující, než je žádoucí, protože uživatelé můžou stále těžit z modelu pro spolupráci vnitřního zdroje. Nastavení v kanálu sice můžete nakonfigurovat tak, aby zpřístupnily tajné kódy forkům, ale neexistuje žádné nastavení pro řízení oboru přístupového tokenu úlohy. V této verzi vám dáváme kontrolu nad generováním běžného přístupového tokenu úlohy i pro sestavení forků.
Toto nastavení můžete změnit z triggerů v editoru kanálů. Před změnou tohoto nastavení se ujistěte, že plně rozumíte dopadům na zabezpečení při povolování této konfigurace.
Změna předinstalovaných modulů Az, Azure a Azure RM
Aktualizujeme proces předběžné instalace modulů Az, Azure a AzureRM na image hostované s Ubuntu a Windows pro efektivnější podporu a využití prostoru imagí.
Během týdne 29. března budou všechny verze s výjimkou nejnovější a nejoblíbenější verze uloženy jako archivy a budou extrahovány úlohou Azure PowerShellu na vyžádání. Podrobný seznam změn je uvedený níže:
Image Windows
Všechny verze modulu Az s výjimkou nejnovější verze (aktuálně 5.5.0) se budou archivovat.
Všechny moduly Azure s výjimkou nejnovějšího (aktuálně 5.3.0) a 2.1.0 se budou archivovat.
Všechny moduly AzureRM s výjimkou nejnovějšího modulu (aktuálně 6.13.1) a 2.1.0 se budou archivovat.
Image Ubuntu
- Všechny moduly Az s výjimkou nejnovějšího modulu (aktuálně 5.5.0) se budou archivovat nebo zcela odebírat z image a budou nainstalovány úlohou na vyžádání.
Všechny kanály, které používají místní úlohy Azure na hostovaných agentech, budou fungovat podle očekávání a nebudou vyžadovat aktualizace. Pokud tyto úlohy nepoužíváte, přepněte kanály na používání úlohy Azure PowerShellu, abyste se vyhnuli změnám předinstalovaných modulů.
Poznámka:
Tyto aktualizace neovlivní kanály spuštěné na agentech v místním prostředí.
Azure Repos
Zakázání úložiště
Zákazníci často požadovali způsob, jak zakázat úložiště a zabránit uživatelům v přístupu k jeho obsahu. Můžete to například udělat v těchto případech:
- V úložišti jste našli tajný kód.
- Nástroj pro kontrolu třetí strany zjistil, že úložiště nedodržuje předpisy.
V takových případech můžete chtít dočasně zakázat úložiště, zatímco pracujete na vyřešení problému. Při této aktualizaci můžete úložiště zakázat, pokud máte oprávnění k odstranění úložiště . Zakázáním úložiště:
- Může vypsat úložiště v seznamu úložišť.
- Obsah úložiště nelze přečíst.
- Obsah úložiště nelze aktualizovat.
- Podívejte se na zprávu, že úložiště bylo zakázané, když se pokusí o přístup k úložišti v uživatelském rozhraní Azure Repos.
Po provedení nezbytných kroků pro zmírnění rizik můžou uživatelé s oprávněním Odstranit úložiště úložiště znovu povolit. Pokud chcete úložiště zakázat nebo povolit, přejděte do Nastavení projektu, vyberte Úložiště a pak konkrétní úložiště.
Další kroky
Poznámka:
Tyto funkce se budou zavádět během následujících dvou až tří týdnů.
Přejděte na Azure DevOps a podívejte se na ně.
Jak poskytnout zpětnou vazbu
Rádi bychom slyšeli, co si o těchto funkcích myslíte. Pomocí nabídky nápovědy můžete nahlásit problém nebo poskytnout návrh.
Můžete také získat rady a své otázky zodpovězené komunitou ve službě Stack Overflow.
Díky,
Vijay Machiraju