Skydda Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines medför tydliga säkerhetsutmaningar . Pipelines gör att du kan köra skript eller distribuera kod till produktionsmiljöer, men det är viktigt att förhindra att de blir kanaler för skadlig kod. Det är viktigt att du balanserar säkerheten med den flexibilitet och kraft som utvecklingsteamen behöver.
Kommentar
Azure Pipelines är en del av en uppsättning Azure DevOps Services som bygger på en säker infrastruktur i Azure. För att få en omfattande förståelse av säkerhetsbegrepp i alla Azure DevOps Services rekommenderar vi att du visar följande resurser:
Traditionellt framtvingar organisationer säkerhet genom strikta nedlåsningar. Kod, pipelines och produktionsmiljöer har allvarliga åtkomstbegränsningar. Även om den här metoden fungerar bra i små organisationer med begränsade användare och projekt, står större organisationer inför en annan verklighet. Med många deltagare som har tillgång till kod blir principen "anta överträdelse" avgörande. Det innebär att fungera som om en angripare har deltagaråtkomst till lagringsplatser, vilket kräver ökad vaksamhet.
Tänk på följande för att uppnå säkerhetsmålen:
Förhindra körning av skadlig kod:
- Se till att dina pipelines är konfigurerade för att förhindra obehörig körning av skadlig kod, vilket omfattar följande uppgifter:
- Begränsa åtkomsten till känsliga hemligheter och autentiseringsuppgifter.
- Verifiera indataparametrar och argument för att förhindra oavsiktligt beteende.
- Granska och granska pipelineskript för potentiella säkerhetsrisker regelbundet.
- Implementera säkerhetsmetoder som:
- Använd parametriserade frågor i skript för att förhindra SQL-inmatning.
- Undvik specialtecken i argument för att undvika shell-kommandoinmatning.
- Begränsa behörigheter för pipelinetjänstanslutningar.
- Överväg att använda YAML-pipelines, som ger detaljerad kontroll över körningen och som är mindre utsatta för säkerhetsrisker.
- Se till att dina pipelines är konfigurerade för att förhindra obehörig körning av skadlig kod, vilket omfattar följande uppgifter:
Minimera lateral exponering:
- Isolera pipelines för att förhindra lateral förflyttning inom organisationens projekt och lagringsplatser.
- Begränsa åtkomsten till endast de nödvändiga lagringsplatserna och resurserna för varje pipeline.
- Övervaka pipelineaktivitet och konfigurera aviseringar för misstänkt beteende.
- Granska och uppdatera behörigheter för att minimera exponeringen regelbundet.
Använd YAML-pipelines:
- YAML-pipelines erbjuder följande fördelar när det gäller säkerhet:
- Definiera uttryckligen pipelinesteg och beroenden.
- Versionskontroll för pipelinedefinitioner.
- Tydlig insyn i pipelinekonfigurationen.
- Minskad risk för oavsiktliga felkonfigurationer.
- Kodgransknings- och pull-begäranden:
- Behandla YAML-pipelines som vilken annan kod som helst.
- Framtvinga pull-begäranden för sammanslagning av ändringar för att förhindra skadliga steg.
- Använd grenprinciper för att konfigurera den här granskningsprocessen.
- Hantering av resursåtkomst:
- Resursägare styr om en YAML-pipeline kan komma åt specifika resurser.
- Den här säkerhetsfunktionen förhindrar attacker som att stjäla en annan lagringsplats.
- Godkännanden och kontroller ger åtkomstkontroll för varje pipelinekörning.
- Körningsparametrar:
- Körningsparametrar hjälper till att undvika säkerhetsproblem som rör variabler, till exempel argumentinmatning.
- Överväg att migrera befintliga pipelines till YAML-format för bättre säkerhet och underhåll.
- YAML-pipelines erbjuder följande fördelar när det gäller säkerhet:
Säkerhet är en pågående process och regelbundna utvärderingar och uppdateringar är viktiga. YAML-pipelines erbjuder den bästa säkerheten för dina Azure Pipelines.
I följande artiklar beskrivs rekommendationer som hjälper dig att utveckla en säker YAML-baserad pipeline: