Dela via


Kostnadsfria ändringar i kostnadsfria Azure Pipelines-bidrag

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å kostnadsfri CI/CD.

Mer information finns i listan Funktioner nedan.

Azure-pipelines

Azure-lagringsplatser

Azure-pipelines

Kostnadsfria ändringar i kostnadsfria Azure Pipelines-bidrag

Azure Pipelines har erbjudit kostnadsfri CI/CD till offentliga och privata projekt i flera år. Eftersom det handlar om 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 kostnadsfria bidrag 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 kommer att granska din begäran och svara inom några dagar.

Anteckning

Den här ändringen påverkar bara nya organisationer. Det gäller inte för befintliga projekt eller organisationer. Detta ändrar inte hur mycket kostnadsfria bidrag du kan få. Det lägger bara till ett extra steg för att få det kostnadsfria bidraget.

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 också konfigurera kvarhållning för klassiska bygg-pipelines per pipeline. Vi tar bort alla kvarhållningsregler per pipeline för klassiska bygg-pipelines i en kommande version.

Vad detta innebär för dig: alla klassiska byggpipelines 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.

Förbättringar av byggkvarhållning

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 byggen, 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. KommandotsetVariable 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 pipelinen 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 uppgiftsfö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 nås av sådana jobb. Du hittar mer information om säkerheten för att skapa förgreningar 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 önskat 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 förgreningsversioner.

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.

Generera obegränsade token för förgreningsversioner

Ä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 mest populära, som arkiv och extraheras av Azure PowerShell uppgift på begäran. Den detaljerade listan över ändringar finns nedan:

  1. Windows-avbildningar

    • Alla Az-modulversioner utom 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

  2. 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 aktiviteten 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 dessa uppgifter växlar du dina pipelines till att använda Azure PowerShell uppgift för att undvika ändringar i förinstallerade moduler.

Anteckning

Dessa uppdateringar 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 på 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 användargränssnittet för Azure Repos

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.

Inaktivera en lagringsplats

Nästa steg

Anteckning

De här funktionerna kommer att lanseras under de kommande två till tre veckorna.

Gå till Azure DevOps och ta en titt.

Så här ger du feedback

Vi vill gärna höra vad du tycker om dessa funktioner. Använd hjälpmenyn för att rapportera ett problem eller ge ett förslag.

Ge ett förslag

Du kan också få råd och dina frågor som besvaras av communityn på Stack Overflow.

Tack,

Vijay Machiraju