Azure Pipelines beveiligen
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines vormt een unieke beveiligingsuitdaging. U kunt een pijplijn gebruiken om scripts uit te voeren of code te implementeren in productieomgevingen. Maar u wilt ervoor zorgen dat uw CI/CD-pijplijnen geen mogelijkheden worden om schadelijke code uit te voeren. U wilt er ook voor zorgen dat alleen de code die u wilt implementeren, wordt geïmplementeerd. Beveiliging moet in balans zijn met teams de flexibiliteit en kracht die ze nodig hebben om hun eigen pijplijnen uit te voeren.
Notitie
Azure Pipelines is een van een verzameling Azure DevOps Services, die allemaal zijn gebouwd op dezelfde beveiligde infrastructuur in Azure. Zie Overzicht van Azure DevOps Data Protection en Azure DevOps Security and Identity voor meer informatie over de belangrijkste concepten voor beveiliging voor alle Azure DevOps-services.
Normaal gesproken hebben organisaties beveiliging geïmplementeerd via draconische vergrendelingen. Code, pijplijnen en productieomgevingen hadden ernstige beperkingen voor toegang en gebruik. In kleine organisaties met een paar gebruikers en projecten was deze houding relatief eenvoudig te beheren. Dat is echter niet het geval in grotere organisaties. Wanneer veel gebruikers toegang hebben tot code inzenders, moet men ervan uitgaan dat er inbreuk wordt uitgevoerd. Ervan uitgaande dat een inbreuk zich gedraagt alsof een kwaadwillende persoon inzender toegang heeft tot sommige (indien niet alle) opslagplaatsen.
Het doel in dit geval is om te voorkomen dat kwaadwillende kwaadwillende code in de pijplijn wordt uitgevoerd. Schadelijke code kan geheimen stelen of beschadigde productieomgevingen. Een ander doel is om laterale blootstelling aan andere projecten, pijplijnen en opslagplaatsen van de geïnfecteerde pijplijn te voorkomen.
YAML-pijplijnen bieden de beste beveiliging voor uw Azure Pipelines. In tegenstelling tot klassieke build- en release-pijplijnen, YAML-pijplijnen:
- Kan code worden gecontroleerd. YAML-pijplijnen verschillen niet van andere code. U kunt voorkomen dat kwaadwillende actoren schadelijke stappen in uw pijplijnen introduceren door het gebruik van pull-aanvragen af te dwingen om wijzigingen samen te voegen. Met vertakkingsbeleid kunt u dit eenvoudig instellen.
- Geef toegangsbeheer voor resources op. Resource-eigenaren bepalen of een YAML-pijplijn toegang heeft tot een resource of niet. Deze beveiligingsfunctie beheert aanvallen zoals het stelen van een andere opslagplaats. Goedkeuringen en controles bieden toegangsbeheer voor elke pijplijnuitvoering.
- Ondersteuning voor runtimeparameters. Met runtimeparameters voorkomt u een groot aantal beveiligingsproblemen met betrekking tot variabelen, zoals argumentinjectie.
Deze reeks artikelen bevat aanbevelingen om u te helpen bij het samenstellen van een beveiligde CI/CD-pijplijn op basis van YAML. Het behandelt ook de plaatsen waar u compromissen kunt maken tussen beveiliging en flexibiliteit. In de reeks wordt ook ervan uitgegaan dat u bekend bent met Azure Pipelines, de kernbeveiligingsconstructies van Azure DevOps en Git.
Onderwerpen die aan bod komen: