Ändringar i kostnadsfria bidrag för Azure Pipelines
Vi ändrar tillfälligt processen för att skaffa kostnadsfria Azure Pipelines-bidrag för att hantera det ökande missbruket av värdbaserade agenter. Som standard kan nya organisationer som skapats i Azure DevOps inte längre få ett kostnadsfritt beviljande av samtidiga pipelines. Nya användare måste skicka ett e-postmeddelande och ange ytterligare information för att få gratis CI/CD.
Mer information finns i listan Funktioner nedan.
Azure-pipelines
- Ändringar i kostnadsfria bidrag för Azure Pipelines
- Borttagning av kvarhållningsprinciper per pipeline i klassiska versioner
- Nya kontroller för miljövariabler i pipelines
- Generera obegränsade token för förgreningsversioner
- Ändra i förinstallerade moduler i Az, Azure och Azure RM
Azure-lagringsplatser
Azure-pipelines
Ändringar i kostnadsfria bidrag för Azure Pipelines
Azure Pipelines har under flera år erbjudit kostnadsfri CI/CD till offentliga och privata projekt. Eftersom detta innebär att ge bort kostnadsfri beräkning har det alltid varit ett mål för missbruk – särskilt kryptoutvinning. Att minimera detta missbruk har alltid tagit energi från laget. Under de senaste månaderna har situationen förvärrats avsevärt, med en hög andel nya projekt i Azure DevOps som används för kryptoutvinning och andra aktiviteter som vi klassificerar som missbruk. Flera tjänstincidenter under den senaste månaden har orsakats av detta missbruk som resulterat i långa väntetider för befintliga kunder.
För att hantera den här situationen har vi lagt till ett extra steg för nya organisationer i Azure DevOps för att få sitt kostnadsfria bidrag. Följande ändringar börjar gälla omedelbart:
- Som standard får nya organisationer som skapats i Azure DevOps inte längre ett kostnadsfritt beviljande av samtidiga pipelines. Detta gäller både offentliga och privata projekt i nya organisationer.
- Om du vill begära ditt kostnadsfria bidrag skickar du en begäran och anger följande information tydligt:
- Ditt namn
- Azure DevOps-organisation som du begär det kostnadsfria beviljandet för
- Oavsett om du behöver det kostnadsfria bidraget för offentliga projekt eller privata projekt
- Länkar till de lagringsplatser som du planerar att skapa (endast offentliga projekt)
- Kort beskrivning av projektet (endast offentliga projekt)
Vi granskar din begäran och svarar inom några dagar.
Kommentar
Den här ändringen påverkar bara nya organisationer. Det gäller inte för befintliga projekt eller organisationer. Detta ändrar inte hur mycket kostnadsfritt bidrag du kan få. Det lägger bara till ett extra steg för att få det kostnadsfria beviljandet.
Vi ber om ursäkt för eventuella olägenheter detta kan orsaka nya kunder som vill använda Azure Pipelines för CI/CD. Vi anser att detta är nödvändigt för att fortsätta tillhandahålla en hög servicenivå till alla våra kunder. Vi kommer att fortsätta att utforska automatiserade sätt att förhindra missbruk och kommer att återställa den tidigare modellen när vi har en tillförlitlig mekanism för att förhindra missbruk.
Borttagning av kvarhållningsprinciper per pipeline i klassiska versioner
Nu kan du konfigurera kvarhållningsprinciper för klassiska versioner och YAML-pipelines i Azure DevOps-projektinställningar. Det här är det enda sättet att konfigurera kvarhållning för YAML-pipelines, men du kan även konfigurera kvarhållning för klassiska byggpipelines per pipeline. Vi tar bort alla kvarhållningsregler per pipeline för klassiska byggpipelines i en kommande version.
Vad detta innebär för dig: alla klassiska bygg-pipelines som fortfarande har kvarhållningsregler per pipeline styrs snart av kvarhållningsreglerna på projektnivå.
För att hjälpa dig att identifiera dessa pipelines distribuerar vi en ändring i den här versionen för att visa en banderoll överst på sidan med körningslistan.
Vi rekommenderar att du uppdaterar dina pipelines genom att ta bort kvarhållningsreglerna per pipeline. Om din pipeline specifikt kräver anpassade regler kan du använda en anpassad uppgift i pipelinen. Information om hur du lägger till kvarhållningslån via en uppgift finns i dokumentationen om att ange kvarhållningsprinciper för versioner, versioner och tester.
Nya kontroller för miljövariabler i pipelines
Azure Pipelines-agenten söker igenom standardutdata efter särskilda loggningskommandon och kör dem. Kommandot setVariable
kan användas för att ange en variabel eller ändra en tidigare definierad variabel. Detta kan potentiellt utnyttjas av en aktör utanför systemet. Om din pipeline till exempel har ett steg som skriver ut listan över filer på en ftp-server kan en person med åtkomst till ftp-servern lägga till en ny fil, vars namn innehåller setVariable
kommandot och få pipelinen att ändra sitt beteende.
Vi har många användare som förlitar sig på att ange variabler med hjälp av loggningskommandot i pipelinen. Med den här versionen gör vi följande ändringar för att minska risken för oönskad användning av setVariable
kommandot.
- Vi har lagt till en ny konstruktion för aktivitetsförfattare. Genom att inkludera ett kodfragment, till exempel följande i
task.json
, kan en aktivitetsförfattare styra om några variabler anges av deras uppgift.
{
"restrictions": {
"commands": {
"mode": "restricted"
},
"settableVariables": {
"allowed": [
"myVar",
"otherVar"
]
}
},
}
Dessutom uppdaterar vi ett antal inbyggda uppgifter, till exempel ssh, så att de inte kan utnyttjas.
Slutligen kan du nu använda YAML-konstruktioner för att styra om ett steg kan ange variabler.
steps:
- script: echo hello
target:
settableVariables: none
steps:
- script: echo hello
target:
settableVariables:
- things
- stuff
Generera obegränsade token för förgreningsversioner
GitHub-användare använder ofta förgreningar för att bidra till en överordnad lagringsplats. När Azure Pipelines skapar bidrag från en förgrening av en GitHub-lagringsplats begränsar den de behörigheter som beviljas till jobbåtkomsttoken och tillåter inte att pipelinehemligheter kan nås av sådana jobb. Mer information om säkerheten för att skapa förgreningar finns i vår dokumentation.
Samma begränsningar gäller som standard när du skapar förgreningar för en GitHub Enterprise Server-lagringsplats. Detta kan vara mer restriktivt än vad som önskas i sådana stängda miljöer, där användarna fortfarande kan dra nytta av en samarbetsmodell för inre källa. Du kan konfigurera en inställning i en pipeline för att göra hemligheter tillgängliga för förgreningar, men det finns ingen inställning för att styra omfånget för jobbåtkomsttoken. Med den här versionen ger vi dig kontroll över att generera en vanlig jobbåtkomsttoken även för versioner av gafflar.
Du kan ändra den här inställningen från Utlösare i pipelineredigeraren . Innan du ändrar den här inställningen bör du se till att du förstår säkerhetskonsekvenserna av att aktivera den här konfigurationen.
Ändra i förinstallerade moduler i Az, Azure och Azure RM
Vi uppdaterar processen för förinstallation av Az-, Azure- och AzureRM-moduler till Ubuntu- och Windows-värdbaserade avbildningar för effektivare support- och bildutrymmesanvändning.
Under veckan den 29 mars lagras alla versioner, förutom den senaste och den mest populära, som arkiv och extraheras av Azure PowerShell-uppgift på begäran. Den detaljerade listan över ändringar finns nedan:
Windows-avbildningar
Alla Az-modulversioner förutom den senaste (för närvarande 5.5.0) arkiveras
Alla Azure-moduler förutom den senaste (för närvarande 5.3.0) och 2.1.0 arkiveras
Alla AzureRM-moduler förutom den senaste (för närvarande 6.13.1) och 2.1.0 arkiveras
Ubuntu-avbildningar
- Alla Az-moduler förutom den senaste (för närvarande 5.5.0) arkiveras eller tas bort helt från avbildningen och installeras av uppgiften på begäran.
Alla pipelines som använder in-the-box Azure-uppgifter på värdbaserade agenter fungerar som avsett och kräver inte uppdateringar. Om du inte använder de här uppgifterna växlar du dina pipelines till att använda Azure PowerShell-uppgiften för att undvika ändringar i förinstallerade moduler.
Kommentar
De här uppdateringarna påverkar inte pipelines som körs på lokalt installerade agenter.
Azure-lagringsplatser
Inaktivera en lagringsplats
Kunder har ofta begärt ett sätt att inaktivera en lagringsplats och hindra användare från att komma åt dess innehåll. Du kanske till exempel vill göra detta när:
- Du hittade en hemlighet på lagringsplatsen.
- Ett genomsökningsverktyg från tredje part fann att en lagringsplats inte var kompatibel.
I sådana fall kanske du tillfälligt vill inaktivera lagringsplatsen medan du arbetar för att lösa problemet. Med den här uppdateringen kan du inaktivera en lagringsplats om du har behörighet att ta bort lagringsplats . Genom att inaktivera en lagringsplats:
- Kan visa lagringsplatsen i listan över lagringsplatser
- Det går inte att läsa innehållet i lagringsplatsen
- Det går inte att uppdatera innehållet på lagringsplatsen
- Se ett meddelande om att lagringsplatsen har inaktiverats när de försöker komma åt lagringsplatsen i Azure Repos-användargränssnittet
När nödvändiga åtgärder har vidtagits kan användare med behörigheten Ta bort lagringsplats återaktivera lagringsplatsen. Om du vill inaktivera eller aktivera en lagringsplats går du till Projektinställningar, väljer Lagringsplatser och sedan den specifika lagringsplatsen.
Nästa steg
Kommentar
Dessa funktioner kommer att distribueras under de kommande två till tre veckorna.
Gå över till Azure DevOps och ta en titt.
Så här ger du feedback
Vi vill gärna höra vad du tycker om de här funktionerna. Använd hjälpmenyn för att rapportera ett problem eller ge ett förslag.
Du kan också få råd och dina frågor som besvaras av communityn på Stack Overflow.
Tack,
Vijay Machiraju