Dela via


Skydda Azure Pipelines

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

Azure Pipelines innebär unika säkerhetsutmaningar. Du kan använda en pipeline för att köra skript eller distribuera kod till produktionsmiljöer. Men du vill se till att dina CI/CD-pipelines inte blir vägar för att köra skadlig kod. Du vill också se till att endast kod som du tänker distribuera distribueras. Säkerheten måste balanseras med att ge teamen den flexibilitet och kraft de behöver för att köra sina egna pipelines.

Kommentar

Azure Pipelines är en av en samling Azure DevOps Services som bygger på samma säkra infrastruktur i Azure. Information om de viktigaste begreppen kring säkerhet för alla Azure DevOps Services finns i Översikt över Azure DevOps-dataskydd och Azure DevOps-säkerhet och -identitet.

Traditionellt implementerade organisationer säkerhet genom drakoniska nedlåsningar. Kod, pipelines och produktionsmiljöer hade allvarliga begränsningar för åtkomst och användning. I små organisationer med några få användare och projekt var den här inställningen relativt lätt att hantera. Det är dock inte fallet i större organisationer. Om många användare har deltagaråtkomst till kod måste man "anta intrång". Att anta intrång innebär att bete sig som om en angripare har deltagaråtkomst till vissa (om inte alla) lagringsplatser.

Målet i det här fallet är att förhindra att den angripare kör skadlig kod i pipelinen. Skadlig kod kan stjäla hemligheter eller skadade produktionsmiljöer. Ett annat mål är att förhindra lateral exponering för andra projekt, pipelines och lagringsplatser från den komprometterade pipelinen.

YAML-pipelines erbjuder den bästa säkerheten för dina Azure Pipelines. Till skillnad från klassiska bygg- och versionspipelines, YAML-pipelines:

  • Kan kod granskas. YAML-pipelines skiljer sig inte från någon annan kod. Du kan förhindra skadliga aktörer från att införa skadliga steg i dina pipelines genom att framtvinga användningen av pull-begäranden för att sammanfoga ändringar. Förgreningsprinciper gör det enkelt för dig att konfigurera detta.
  • Ange resursåtkomsthantering. Resursägare bestämmer om en YAML-pipeline kan komma åt en resurs eller inte. Den här säkerhetsfunktionen styr attacker som att stjäla en annan lagringsplats. Godkännanden och kontroller ger åtkomstkontroll för varje pipelinekörning.
  • Stöd för körningsparametrar. Körningsparametrar hjälper dig att undvika en mängd säkerhetsproblem som rör variabler, till exempel argumentinmatning.

Den här serien med artiklar beskriver rekommendationer som hjälper dig att sätta ihop en säker YAML-baserad CI/CD-pipeline. Det omfattar också de platser där du kan göra kompromisser mellan säkerhet och flexibilitet. Serien förutsätter också kunskaper om Azure Pipelines, kärnsäkerhetskonstruktionerna i Azure DevOps och Git.

Ämnen som ingår: