Azure Pipelines beveiligen
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines biedt verschillende beveiligingsuitdagingen. Hoewel u met pijplijnen scripts kunt uitvoeren of code kunt implementeren in productieomgevingen, is het van cruciaal belang om te voorkomen dat ze conduits worden voor schadelijke code. Het is essentieel om de beveiliging te verdelen met de flexibiliteit en kracht die nodig is voor ontwikkelteams.
Notitie
Azure Pipelines maakt deel uit van een suite met Azure DevOps Services, die allemaal zijn gebouwd op een beveiligde infrastructuur binnen Azure. Voor een uitgebreid begrip van beveiligingsconcepten in alle Azure DevOps-services raden we u aan de volgende resources weer te geven:
Normaal gesproken dwingen organisaties beveiliging af via strikte vergrendelingen. Code, pijplijnen en productieomgevingen hebben te maken met ernstige toegangsbeperkingen. Hoewel deze aanpak goed werkt in kleine organisaties met beperkte gebruikers en projecten, hebben grotere organisaties een andere realiteit. Met talloze inzenders die toegang hebben tot code, wordt het principe van 'inbreuk aannemen' cruciaal. Het omvat het werken alsof een kwaadwillende persoon toegang heeft tot opslagplaatsen, waardoor verhoogde bewaking noodzakelijk is.
Houd rekening met de volgende punten om beveiligingsdoelen te bereiken:
Uitvoering van schadelijke code voorkomen:
- Zorg ervoor dat uw pijplijnen zijn geconfigureerd om onbevoegde uitvoering van schadelijke code te voorkomen, waaronder de volgende taken:
- Beperk de toegang tot gevoelige geheimen en referenties.
- Valideer invoerparameters en -argumenten om onbedoeld gedrag te voorkomen.
- Controleer en controleer regelmatig pijplijnscripts op mogelijke beveiligingsrisico's.
- Beveiligingsprocedures implementeren, zoals:
- Gebruik geparameteriseerde query's in scripts om SQL-injectie te voorkomen.
- Escape speciale tekens in argumenten om shell-opdrachtinjectie te voorkomen.
- Beperk machtigingen voor pijplijnserviceverbindingen.
- Overweeg YAML-pijplijnen te gebruiken, die nauwkeurige controle over de uitvoering bieden en minder gevoelig zijn voor beveiligingsrisico's.
- Zorg ervoor dat uw pijplijnen zijn geconfigureerd om onbevoegde uitvoering van schadelijke code te voorkomen, waaronder de volgende taken:
Laterale blootstelling beperken:
- Isoleer pijplijnen om laterale verplaatsing binnen de projecten en opslagplaatsen van uw organisatie te voorkomen.
- Beperk de toegang tot alleen de benodigde opslagplaatsen en resources voor elke pijplijn.
- Bewaak de pijplijnactiviteit en stel waarschuwingen in voor verdacht gedrag.
- Controleer en werk machtigingen bij om de blootstelling regelmatig te minimaliseren.
YAML-pijplijnen gebruiken:
- YAML-pijplijnen bieden de volgende voordelen op het gebied van beveiliging:
- Definieer pijplijnstappen en afhankelijkheden expliciet.
- Versiebeheer voor pijplijndefinities.
- Inzicht in de pijplijnconfiguratie wissen.
- Verminderd risico op onbedoelde onjuiste configuraties.
- Codebeoordeling en pull-aanvragen:
- YAML-pijplijnen behandelen zoals elke andere code.
- Pull-aanvragen afdwingen voor het samenvoegen van wijzigingen om schadelijke stappen te voorkomen.
- Gebruik vertakkingsbeleid om dit beoordelingsproces in te stellen.
- Toegangsbeheer voor resources:
- Resource-eigenaren bepalen of een YAML-pijplijn toegang heeft tot specifieke resources.
- Deze beveiligingsfunctie voorkomt aanvallen zoals het stelen van een andere opslagplaats.
- Goedkeuringen en controles bieden toegangsbeheer voor elke pijplijnuitvoering.
- Runtimeparameters:
- Runtimeparameters helpen beveiligingsproblemen met betrekking tot variabelen, zoals argumentinjectie, te voorkomen.
- Overweeg om bestaande pijplijnen te migreren naar YAML-indeling voor verbeterde beveiliging en onderhoudbaarheid.
- YAML-pijplijnen bieden de volgende voordelen op het gebied van beveiliging:
Beveiliging is een doorlopend proces en regelmatige evaluaties en updates zijn essentieel. YAML-pijplijnen bieden de beste beveiliging voor uw Azure Pipelines.
In de volgende artikelen worden aanbevelingen beschreven om u te helpen bij het ontwikkelen van een beveiligde YAML-pijplijn: