Säkerhetsöverväganden för DevOps-plattformar
Säkerhet bör alltid vara en prioritet i molnbaserade utvecklingsplattformar som Azure DevOps och GitHub. Microsoft uppdaterar och underhåller säkerheten för den underliggande molninfrastrukturen, men det är upp till dig att granska och konfigurera metodtips för säkerhet för dina egna Azure DevOps-organisationer och GitHub-instanser.
Överväg följande viktiga säkerhetsområden oavsett om du distribuerar miljöer via infrastruktur som kod i CI/CD-pipelines (kontinuerlig integrering och kontinuerlig distribution) eller distribuerar kod till dina program som finns i Azure.
Begränsa åtkomsten till DevOps-verktyg
Följ principen om minsta behörighet med hjälp av rollbaserad åtkomstkontroll (RBAC) via Microsoft Entra-ID. Ge användare och tjänster den minsta mängd åtkomst till dina DevOps-plattformar som de behöver för att utföra sina affärsfunktioner. Mer information finns i följande artiklar:
- Ansluta din organisation till Microsoft Entra ID
- Microsoft Entra-integrering med enkel inloggning (SSO) med GitHub Enterprise Cloud
- Metodtips för Azure DevOps-säkerhet
När du har etablerat Microsoft Entra-ID som ditt identitetshanteringsplan följer du metodtipsen för att hantera Rolltilldelningar i Azure DevOps med Microsoft Entra-gruppmedlemskap. Du kan tilldela Azure DevOps-roller till Microsoft Entra-grupper och justera en användares Microsoft Entra-medlemskap för att ändra eller ta bort deras Azure DevOps-åtkomst.
Använd Microsoft Entra ID-berättigandehantering för att skapa åtkomstpaket som ger Microsoft Entra-användare tidsbunden åtkomst till nödvändiga resurser för att slutföra sina uppgifter.
Du kan också använda Microsoft Entra Privileged Identity Management för just-in-time-åtkomst för att befordra personer till Azure DevOps-administratörsroller under en viss tidsperiod.
Hantera säkerhet i Azure DevOps med hjälp av säkerhetsgrupper, principer och inställningar på Azure DevOps-organisations-, projekt- eller objektnivå. Överväg att inaktivera arv av behörigheter i Azure DevOps om möjligt.
Begränsa lagringsplats och grenåtkomst
Begränsa lagringsplatsens åtkomst, behörigheter och grenskapande för att skydda din kod och dina miljöer från oönskade eller skadliga ändringar. Begränsa åtkomsten till lagringsplatser med hjälp av säkerhetsgrupper i Azure DevOps. Begränsa vem som kan läsa och uppdatera kod i dina grenar genom att ange grenbehörigheter.
Begränsa åtkomst och behörigheter för pipeline
Skadlig kod kan stjäla företagsdata och hemligheter och skadade produktionsmiljöer. Implementera skyddsräcken för att förhindra distribution av skadlig kod i pipelinen. Genom att begränsa åtkomsten och implementera skyddsräcken kan du också förhindra lateral exponering för andra projekt, pipelines och lagringsplatser från eventuella komprometterade pipelines.
Överväg att följa en inkrementell metod för att skydda dina YAML-pipelines. Mer information finns i Planera hur du skyddar dina YAML-pipelines.
Välj DevOps-agenten baserat på säkerhetsbehov
Du kan använda Microsoft-värdbaserade eller lokalt installerade agenter för att driva Azure DevOps- och GitHub-pipelines. Det finns kompromisser för varje typ av agent.
Med Microsoft-värdbaserade agenter behöver du inte bekymra dig om uppgraderingar eller underhåll. Med lokalt installerade agenter har du större flexibilitet att implementera skyddsräcken. Du styr agentmaskinvara, operativsystem och installerade verktyg.
Se Azure Pipelines-agenter för att granska skillnaderna mellan olika typer av agenter och identifiera potentiella säkerhetsöverväganden.
Använda säkra och begränsade tjänstanslutningar
När det är möjligt använder du en tjänstanslutning för att distribuera infrastruktur eller programkod i en Azure-miljö. Tjänstanslutningen bör ha begränsad distributionsåtkomst till specifika Azure-resurser eller resursgrupper för att minska eventuella attackytor. Överväg också att skapa separata tjänstanslutningar för utvecklings-, testnings-, QA- och produktionsmiljöer.
Använda ett hemligt arkiv
Hårdkoda aldrig hemligheter i kod eller hjälpdokumentation på dina lagringsplatser. Angripare söker igenom lagringsplatser och söker efter exponerade konfidentiella data att utnyttja. Konfigurera ett hemligt arkiv, till exempel Azure Key Vault, och referera till arkivet i Azure Pipelines för att på ett säkert sätt hämta nycklar, hemligheter eller certifikat. Mer information finns i Skydda pipelinen och CI/CD-arbetsflödet. Du kan också använda Key Vault-hemligheter i GitHub Actions-arbetsflöden.
Använda härdade DevOps-arbetsstationer för att skapa och distribuera kod
Plattforms- och utvecklingsteam har ofta utökade privilegier på Azure-plattformen eller på andra tjänster som Azure DevOps och GitHub. Den här åtkomsten ökar avsevärt den potentiella attackytan. Implementera skyddsräcken för att skydda alla slutpunkter och arbetsstationer som du använder för att utveckla och distribuera kod.
Använd härdade säkra administratörsarbetsstationer (SAW) för att distribuera eventuella ändringar till högrisk- och produktionsmiljöer. Mer information finns i Säkra slutpunkter med Nolltillit.
Gör säkerhetsgenomsökning och testning
Oavsett om du distribuerar programkod eller infrastruktur som kod implementerar du metodtips och kontroller för DevSecOps i dina pipelines. Integrera säkerheten tidigt i DIN CI/CD-resa för att förhindra kostsamma säkerhetsöverträdelser senare. Skapa en strategi för att implementera statisk kodanalys, enhetstestning, hemlig genomsökning och genomsökning av paket/beroenden i dina pipelines.
Företagssäkerhetsverktyg som Microsoft Defender för molnet kan integreras med DevOps-verktyg. Till exempel kan Defender för molnet identifiera sårbara containeravbildningar i dina CI/CD-arbetsflöden. För GitHub Actions och lagringsplatser använder du GitHub Advanced Security för kod- och hemlig genomsökning och beroendegranskning.
Granska granskningshändelser regelbundet för att övervaka och reagera på oväntade användningsmönster av administratörer och andra användare. Du kan komma åt, filtrera och exportera granskningsloggar för din Azure DevOps-organisation. För långsiktig lagring och detaljerad loggfrågor skapar du en granskningsström till en Azure Monitor Log Analytics-arbetsyta eller till ett SIEM-system (säkerhetsinformation och händelsehantering) som Microsoft Sentinel.