Share via


Aanbevelingen voor het beveiligen van een gedeelde infrastructuur in Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Beveiligde resources in Azure Pipelines zijn een abstractie van echte infrastructuur. Volg deze aanbevelingen om de onderliggende infrastructuur te beveiligen.

Door Microsoft gehoste pools gebruiken

Door Microsoft gehoste pools bieden isolatie en een schone virtuele machine voor elke uitvoering van een pijplijn. Gebruik indien mogelijk door Microsoft gehoste pools in plaats van zelf-hostende pools.

Afzonderlijke agents voor elk project

Een agent kan worden gebonden aan slechts één pool. Mogelijk wilt u agents delen in projecten door de pool te delen met meerdere projecten. Met andere woorden, meerdere projecten kunnen taken uitvoeren op dezelfde agent, een na een. Hoewel deze praktijk kosten voor infrastructuur bespaart, kan dit laterale verplaatsing toestaan.

Als u deze vorm van zijdelingse verplaatsing wilt elimineren en wilt voorkomen dat één project een agent voor een ander project 'vergiftigt', moet u afzonderlijke agentgroepen met afzonderlijke agents voor elk project bewaren.

Accounts met beperkte bevoegdheden gebruiken om agents uit te voeren

Het is verleidelijk maar gevaarlijk om de agent uit te voeren onder een identiteit die rechtstreeks toegang heeft tot Azure DevOps-resources. Deze problematische installatie is gebruikelijk in organisaties die microsoft Entra-id gebruiken. Als u de agent uitvoert onder een identiteit die wordt ondersteund door Microsoft Entra ID, heeft deze rechtstreeks toegang tot Azure DevOps-API's zonder het toegangstoken van de taak te gebruiken. In plaats daarvan moet u de agent uitvoeren als een lokaal account met niet-bevoegdheden, zoals Netwerkservice.

Azure DevOps heeft een groep met de misleidende naam Project Collection Service Accounts. Door overname zijn leden van serviceaccounts voor projectverzamelingen ook lid van projectverzamelingen Beheer istrators. Klanten voeren soms hun buildagents uit met behulp van een identiteit die wordt ondersteund door Microsoft Entra-id en dat lid is van projectverzamelingsserviceaccounts. Als kwaadwillende personen een pijplijn uitvoeren op een van deze buildagents, kunnen ze de hele Azure DevOps-organisatie overnemen.

We hebben ook gezien dat zelf-hostende agents worden uitgevoerd onder accounts met hoge bevoegdheden. Deze agents gebruiken vaak bevoegde accounts voor toegang tot geheimen of productieomgevingen. Maar als kwaadwillende personen een gecompromitteerde pijplijn uitvoeren op een van deze buildagents, hebben ze toegang tot deze geheimen. Vervolgens kunnen de aanvallers zich lateraal verplaatsen via andere systemen die toegankelijk zijn via die accounts.

Als u uw systemen veilig wilt houden, gebruikt u het account met laagste bevoegdheden om zelf-hostende agents uit te voeren. Gebruik bijvoorbeeld uw computeraccount of een beheerde service-identiteit. Laat Azure Pipelines de toegang tot geheimen en omgevingen beheren.

Het bereik van serviceverbindingen minimaliseren

Serviceverbindingen moeten alleen toegang hebben tot de resources die ze nodig hebben. Gebruik indien mogelijk workloadidentiteitsfederatie in plaats van een service-principal voor uw Azure-serviceverbinding. Federatie van workloadidentiteiten maakt gebruik van een industriestandaard technologie, Open ID Verbinding maken (OIDC), om verificatie tussen Azure en Azure DevOps te vergemakkelijken en maakt geen gebruik van geheimen.

Uw Azure-serviceverbinding moet zijn afgestemd op de resources waartoe u de serviceverbinding moet hebben. Gebruikers mogen geen brede inzenderrechten hebben voor het hele Azure-abonnement.

Wanneer u een nieuwe Azure Resource Manager-serviceverbinding maakt, selecteert u altijd een resourcegroep. Zorg ervoor dat uw resourcegroep alleen de VM's of resources bevat die voor de build zijn vereist. Wanneer u de GitHub-app configureert, verleent u ook alleen toegang tot de opslagplaatsen die u wilt bouwen met behulp van Azure Pipelines.

Volgende stappen

Houd rekening met enkele algemene aanbevelingen voor beveiliging.