Skydda ditt Azure DevOps
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
När du hanterar information och data, särskilt i en molnbaserad lösning som Azure DevOps Services, bör säkerheten ha högsta prioritet. Microsoft säkerställer säkerheten för den underliggande molninfrastrukturen, men det är ditt ansvar att konfigurera säkerheten i Azure DevOps. Den här artikeln innehåller en översikt över nödvändiga säkerhetsrelaterade konfigurationer för att skydda din Azure DevOps-miljö mot hot och sårbarheter.
Skydda nätverket
Det är viktigt att skydda nätverket när du arbetar med Azure DevOps för att skydda dina data och resurser från obehörig åtkomst och potentiella hot. Implementera nätverkssäkerhetsåtgärder för att säkerställa att endast betrodda källor kan komma åt din Azure DevOps-miljö. Utför följande åtgärder för att skydda nätverket när du arbetar med Azure DevOps:
- Konfigurera IP-tillåtna listor: Begränsa åtkomsten till specifika IP-adresser så att endast trafik tillåts från betrodda källor, vilket minskar attackytan. Mer information finns i Konfigurera IP-tillåtna listor.
- Använd datakryptering: Kryptera alltid data under överföring och i vila. Skydda kommunikationskanaler med protokoll som HTTPS. Mer information finns i Använda datakryptering.
- Verifiera certifikat: Kontrollera att certifikat är giltiga och utfärdade av betrodda myndigheter när anslutningar upprättas. Mer information finns i Verifiera certifikat.
- Implementera brandväggar för webbprogram (WAFs): Filtrera, övervaka och blockera skadlig webbaserad trafik med WAF:er för ett extra skydd mot vanliga attacker. För mer information, se Implementera brandväggar för webbaserade program (WAFs).
- Aktivera nätverkssäkerhetsgrupper (NSG:er): Använd NSG:er för att styra inkommande och utgående trafik till Azure-resurser, vilket säkerställer att endast auktoriserad trafik tillåts. Mer information finns i översikten över nätverkssäkerhetsgrupper (NSG:er).
- Använd Azure Firewall: Distribuera Azure Firewall för att tillhandahålla en central nätverkssäkerhetsprincip i flera Azure-prenumerationer och virtuella nätverk. Mer information finns i översikten över Azure Firewall.
- Övervaka nätverkstrafik: Använda Azure Network Watcher för att övervaka och diagnostisera nätverksproblem, vilket säkerställer nätverkets säkerhet och prestanda. Mer information finns i översikten över Azure Network Watcher.
- Implementera DDoS-skydd: Aktivera Azure DDoS Protection för att skydda dina program mot DDoS-attacker (Distributed Denial-of-Service). Mer information finns i Azure DDoS Protection.
Mer information finns i bästa praxis för programhantering.
Skydda din Azure DevOps-miljö
För att säkerställa att din Azure DevOps-miljö uppfyller branschstandarder och föreskrifter implementerar du säkerhetsåtgärder och principer. Efterlevnad av standarder som ISO/IEC 27001, SOC 1/2/3 och GDPR (General Data Protection Regulation) hjälper dig att skydda din miljö och upprätthålla förtroende för dina användare.
- Se till att branschstandarder följs: Azure DevOps uppfyller olika branschstandarder och föreskrifter, till exempel ISO/IEC 27001, SOC 1/2/3 och GDPR. Se till att din miljö följer dessa standarder.
- Framtvinga principer: Implementera principer för att tillämpa metodtips för säkerhet i hela organisationen. Den här åtgärden omfattar att kräva kodgranskningar och framtvinga grenprinciper, efterlevnadsprinciper för pipelinesoch säkerhetsprinciper.
-
Börja använda komponentstyrning för CI/CD av följande skäl:
- Säkerhetsriskidentifiering: Varnar dig om kända sårbarheter i komponenter med öppen källkod.
- Licensefterlevnad: Säkerställer att komponenterna följer organisationens licensprinciper.
- Principframtvingande: Säkerställer att endast godkända versioner används.
- Synlighet med spårning: Ger insyn i komponenter mellan lagringsplatser för enklare hantering.
Hantera behörigheter på projekt- och organisationsnivå
- Begränsa åtkomsten till projekt och lagringsplatser: Minska risken för att känslig information läcker och distribuera osäker kod genom att begränsa åtkomsten till projekt och lagringsplatser. Använd inbyggda eller anpassade säkerhetsgrupper som hanterar behörigheter. Mer information finns i Begränsa åtkomsten till projekt och lagringsplatser.
- Inaktivera "Tillåt offentliga projekt": Inaktivera alternativet att skapa offentliga projekt i organisationens principinställningar. Växla projektsynlighet från offentlig till privat efter behov. Användare som aldrig har loggat in har skrivskyddad åtkomst till offentliga projekt, medan inloggade användare kan beviljas åtkomst till privata projekt och göra tillåtna ändringar. Mer information finns i Ändra programanslutning och säkerhetsprinciper för din organisation.
- Begränsa skapandet av organisationen: Förhindra användare från att skapa nya projekt för att behålla kontrollen över din miljö. Mer information finns i Begränsa organisationsskapande via Microsoft Entra-klientprincip.
Använda säkerhetsfunktioner och verktyg
Följande säkerhetsfunktioner och verktyg kan hjälpa dig att övervaka, hantera och förbättra säkerheten för dina projekt:
- Använd OAuth i stället för personliga åtkomsttoken (PAT): Använd OAuth-flöde i stället för PAT och använd inte personliga GitHub-konton som tjänstanslutningar. Mer information finns i översikten över OAuth.
- Använd kodgenomsökning och analys: Använda verktyg som Microsoft Defender för att söka igenom koden efter sårbarheter, hemligheter och felkonfigurationer. Den här åtgärden hjälper till att identifiera och åtgärda säkerhetsproblem tidigt i utvecklingsprocessen.
- Använd Git Credential Manager: Stöd tvåfaktorautentisering med GitHub-lagringsplatser och autentisera gentemot Azure Repos. Mer information finns i Konfigurera Git Credential Manager.
- Använd Azure DevOps Credential Scanner (CredScan) för GitHub: När du använder en hanterad identitet är inte ett alternativ kontrollerar du att autentiseringsuppgifterna lagras på säkra platser som Azure Key Vault, i stället för att bädda in dem i kod- och konfigurationsfilerna. Implementera Azure DevOps Credential Scanner för att identifiera autentiseringsuppgifter i koden. Mer information finns i Komma igång med CredScan.
- Använd intern hemlig genomsökning för GitHub: När du använder en hanterad identitet är inte ett alternativ kontrollerar du att hemligheter lagras på säkra platser som Azure Key Vault, i stället för att bädda in dem i kod- och konfigurationsfilerna. Använd funktionen för intern hemlighetsgenomsökning för att identifiera hemligheter i koden. Mer information finns i Om hemlig genomsökning.
Mer information finns i den avancerade säkerhetsöversikten för GitHub.
Skydda dina tjänster
För att säkerställa säkerheten och integriteten för dina tjänster i Azure DevOps implementerar du säkerhetsåtgärder för varje tjänst. Dessa åtgärder omfattar att ange behörigheter, hantera åtkomst och använda säkerhetsfunktioner som är specifika för varje tjänst.
- Secure Azure Boards: Skydda dina arbetsspårningsdata genom att ange lämpliga behörigheter och hantera åtkomstnivåer.
- Säkra Azure-lagringsplatser: Säkerställ säkerheten för dina kodlagringsplatser genom att konfigurera Git-inställningar, grenbehörigheter och principer.
- Secure Azure Pipelines: Skydda dina CI/CD-processer genom att ange behörigheter, använda säkerhetsmallar och skydda agenter och containrar.
- Säkra Azure-testplaner: Se till att ditt team har rätt åtkomst för att effektivt hantera och köra testplaner.
- Secure Azure Artifacts: Hantera åtkomst till dina paket och styra vem som kan interagera med dem.
Kontrollera åtkomst
Ange minsta nödvändiga behörigheter och åtkomstnivåer för att säkerställa att endast behöriga personer och tjänster kan komma åt känslig information och utföra kritiska åtgärder. Den här metoden hjälper till att minimera risken för obehörig åtkomst och potentiella dataintrång.
Granska och uppdatera inställningarna regelbundet för att anpassa dem till ändringar i din organisation, till exempel rolländringar, nyanställda eller avgångar. Genom att implementera en periodisk granskning av behörigheter och åtkomstnivåer kan du identifiera och åtgärda eventuella avvikelser, vilket säkerställer att din säkerhetsstatus förblir robust och överensstämmer med bästa praxis.
Omfångsbehörigheter
För att säkerställa säker och effektiv hantering av behörigheter bör du ha rätt omfångsbehörigheter i din Azure DevOps-miljö. Omfångsbehörigheter omfattar att definiera och tilldela lämplig åtkomstnivå till användare och grupper baserat på deras roller och ansvarsområden. Den här metoden hjälper till att minimera risken för obehörig åtkomst och potentiella dataintrång genom att se till att endast behöriga personer har åtkomst till känslig information och kritiska åtgärder.
För att effektivt definiera behörigheter, utför följande åtgärder:
- Inaktivera arv: Undvik arv och förhindra oavsiktlig åtkomst. Arv kan oavsiktligt bevilja behörigheter till användare som inte borde ha dem, på grund av dess tillåtande som standard. Hantera och ange uttryckligen behörigheter noggrant för att säkerställa att endast de avsedda användarna har åtkomst. För mer information, se Behörighetsarv.
- Segment-miljöer: Använda separata Azure-konton för olika miljöer, till exempel utveckling, testning och produktion, för att förbättra säkerheten och förhindra konflikter. Den här metoden minimerar risken för resurskonflikter och datakontaminering mellan miljöer och möjliggör bättre hantering och isolering av resurser. Mer information finns i Azure Landing Zone.
- Kontrollera åtkomst och säkerställa efterlevnad: Använd Azure Policy för att begränsa åtkomsten till oanvända Azure-regioner och -tjänster, vilket säkerställer efterlevnad av organisationens standarder. Den här åtgärden hjälper till att tillämpa metodtips och upprätthålla en säker miljö genom att förhindra obehörig åtkomst och användning. Mer information finns i översikten över Azure Policy.
- Implementera rollbaserad Azure-kontroll (ABAC): Använda ABAC med korrekt taggade resurser, vilket begränsar obehörig åtkomst. Den här åtgärden säkerställer att åtkomstbehörigheter beviljas baserat på specifika attribut, vilket ökar säkerheten genom att förhindra att obehöriga resurser skapas och får åtkomst. Mer information finns i Implementera rollbaserad azure-kontroll (ABAC).
-
Använd säkerhetsgrupper: Använd säkerhetsgrupper för att effektivt hantera behörigheter för flera användare. Den här metoden förenklar beviljande och återkallande av åtkomst jämfört med att tilldela behörigheter individuellt och säkerställer konsekvens och enklare hantering i hela organisationen.
- Använd Microsoft Entra-ID, Active Directory eller Windows-säkerhetsgrupper när du hanterar många användare.
- Dra nytta av inbyggda roller och tilldela standardrollen 'Bidragsgivare' till utvecklare. Administratörer tilldelas säkerhetsgruppen Projektadministratör för förhöjd åtkomst, vilket gör att de kan konfigurera säkerhetsbehörigheter.
- Håll grupper så små som möjligt, vilket begränsar åtkomsten.
- Mer information finns i Hantera säkerhetsgrupper.
- Välj rätt autentiseringsmetod: Konfigurera säkra autentiseringsmetoder och hantera auktoriseringsprinciper. Mer information finns i avsnittet Välj rätt autentiseringsmetod i den här artikeln och autentiseringsmetoder.
-
Integrera med Microsoft Entra-ID: Använda Microsoft Entra-ID för enhetlig identitetshantering. Mer information finns i Ansluta din organisation till Microsoft Entra ID.
- Om du vill förbättra säkerheten för inbyggda administratörsgrupper kan du överväga att implementera just-in-time-åtkomst med hjälp av en Microsoft Entra-PIM-grupp (Privileged Identity Management). Med den här metoden kan du endast bevilja utökade behörigheter när det behövs, vilket minskar risken för permanent åtkomst. Mer information finns i Konfigurera just-in-time-access för administratörsgrupper.
- Aktivera Microsoft Entra multifaktorautentisering (MFA): Lägg till ett extra säkerhetslager med MFA. Mer information finns i Aktivera Microsoft Entra multifaktorautentisering.
- Ändra säkerhetsprinciper: Hantera säkerhetsprinciper, inklusive villkorlig åtkomst. Mer information finns i Ändra programanslutning & säkerhetsprinciper för din organisation.
Mer information om behörigheter finns i följande artiklar:
- Behörigheter och Rolluppslagsguide
- Ange enskilda behörigheter
- Behörigheter, säkerhetsgrupper och tjänstkonton refererar till
Välj rätt autentiseringsmetod
När du väljer lämplig autentiseringsmetod för din Azure DevOps-miljö bör du överväga säkerhets- och hanteringsfördelarna med olika alternativ. Genom att använda säkra autentiseringsmetoder kan du skydda dina resurser och se till att endast behöriga användare och tjänster kan komma åt din Azure DevOps-miljö. Överväg att använda tjänstens huvudnamn, hanterade identiteter och Microsoft Entra för att förbättra säkerheten och effektivisera åtkomsthanteringen.
- Använd tjänstens huvudnamn: Representera säkerhetsobjekt i ett Microsoft Entra-program. Definiera vad ett program kan göra i en viss klientorganisation. Konfigurera under programregistreringen i Azure-portalen. Konfigurera för åtkomst till Azure-resurser, inklusive Azure DevOps. Användbart för appar som behöver specifik åtkomst och kontroll.
- Använd hanterade identiteter: liknar en applikations service principal. Ange identiteter för Azure-resurser. Tillåt att tjänster som stöder Microsoft Entra-autentisering delar autentiseringsuppgifter. Azure hanterar hantering och rotation av autentiseringsuppgifter automatiskt. Perfekt för sömlös hantering av inloggningsinformation.
-
Använda Microsoft Entra-ID:
- Skapa ett enda plan för identitet genom att ansluta Azure DevOps till Microsoft Entra ID. Denna konsekvens minskar förvirring och minimerar säkerhetsrisker på grund av manuella konfigurationsfel.
- Få åtkomst till din organisation med Microsoft Entra-ID och tilldela olika roller och behörigheter till specifika grupper i olika resursomfattningar. Den här åtgärden implementerar detaljerad styrning, säkerställer kontrollerad åtkomst och överensstämmer med bästa praxis för säkerhet.
- Använd principer för villkorlig åtkomst, som definierar åtkomstregler baserat på villkor som plats, enhet eller risknivå.
Hantera extern gäståtkomst
För att säkerställa säkerhet och korrekt hantering av extern gäståtkomst implementerar du specifika åtgärder som styr och övervakar hur externa användare interagerar med din Azure DevOps-miljö. Extern gäståtkomst kan medföra potentiella säkerhetsrisker om den inte hanteras korrekt. Genom att följa dessa åtgärder kan du minimera dessa risker och se till att externa gäster har rätt åtkomstnivå utan att äventyra säkerheten i din miljö.
- Blockera extern gäståtkomst: Inaktivera principen "Tillåt att inbjudningar skickas till valfri domän" för att förhindra extern gäståtkomst om det inte finns något affärsbehov för den.
- Använd distinkta e-postmeddelanden eller UPN:er: Använd olika e-postadresser eller UPN(User Principal Name) för personliga konton och företagskonton för att eliminera tvetydighet mellan personliga och arbetsrelaterade konton.
- Gruppera externa gästanvändare: Placera alla externa gästanvändare i en enda Microsoft Entra-grupp och hantera behörigheter för den här gruppen på lämpligt sätt. Ta bort direkttilldelningar för att säkerställa att gruppreglerna gäller för dessa användare.
- Utvärdera regler regelbundet: Granska regler regelbundet på fliken Gruppregler på sidan Användare. Överväg eventuella gruppmedlemskapsändringar i Microsoft Entra-ID som kan påverka din organisation. Microsoft Entra-ID kan ta upp till 24 timmar att uppdatera dynamiskt gruppmedlemskap och reglerna utvärderas automatiskt var 24:e timme och när en gruppregel ändras.
Mer information finns i B2B gäster i Microsoft Entra ID.
Implementera noll förtroende
Du kan förbättra säkerheten genom att använda Noll förtroende-principer i dina DevOps-processer. Den här metoden säkerställer att varje åtkomstbegäran verifieras noggrant, oavsett ursprung. Noll förtroende fungerar enligt principen "lita aldrig, verifiera alltid", vilket innebär att ingen entitet, vare sig inom eller utanför nätverket, är betrodd som standard. Genom att implementera Noll förtroende kan du avsevärt minska risken för säkerhetsöverträdelser och se till att endast behöriga användare och enheter kan komma åt dina resurser.
- Anamma Zero Trust-metoden: Implementera Noll förtroende principer för att stärka din DevOps-plattform, skydda din utvecklingsmiljöoch integrera Zero Trust sömlöst i dina utvecklararbetsflöden. Zero Trust hjälper till att skydda mot laterala rörelser i nätverket, vilket säkerställer att även om det finns en komprometterad del av nätverket, är hotet inneslutet och kan inte spridas.
Mer information finns i guiden Zero Trust Assessment.
Ta bort användare
Granska och hantera användaråtkomst regelbundet för att säkerställa att endast aktiva och auktoriserade användare har åtkomst till din Azure DevOps-miljö. Att ta bort inaktiva eller obehöriga användare bidrar till att upprätthålla en säker miljö och minskar risken för potentiella säkerhetsöverträdelser. Genom att följa dessa åtgärder kan du se till att din Azure DevOps-miljö förblir säker och att endast de personer som behövs har åtkomst.
- Ta bort inaktiva användare från Microsoft-konton (MSA: Ta bort inaktiva användare direkt från din organisation om de använder MSA: er. Du kan inte skapa frågor för arbetsobjekt som tilldelats till borttagna MSA-konton. Mer information finns i Ta bort användare från din organisation.
- Inaktivera eller ta bort Microsoft Entra-användarkonton: Om du är ansluten till Microsoft Entra-ID inaktiverar eller tar du bort Microsoft Entra-användarkontot samtidigt som Azure DevOps-användarkontot är aktivt. Med den här åtgärden kan du fortsätta köra frågor mot arbetsobjekthistoriken med hjälp av ditt Användar-ID för Azure DevOps.
- Återkalla användar-PAT:er: Säkerställa säker hantering av dessa kritiska autentiseringstoken genom att regelbundet granska och återkalla befintliga användar-PAT: er. Mer information finns i Återkalla användar-PAT för administratörer.
- Återkalla särskilda behörigheter som beviljats enskilda användare: Granska och återkalla eventuella särskilda behörigheter som beviljas enskilda användare för att säkerställa att de överensstämmer med principen om minsta behörighet.
- Omtilldela arbete från borttagna användare: Innan du tar bort användare, omtilldela deras arbetsobjekt till aktuella teammedlemmar för att distribuera belastningen effektivt.
Områdesservicekonton
Tjänstkonton används för att köra automatiserade processer och tjänster, och de har ofta utökade behörigheter. Genom att omfångshanta och hantera tjänstkonton på rätt sätt kan du minimera säkerhetsriskerna och se till att dessa konton används på rätt sätt.
- Skapa tjänstkonton för en enda användning: Varje tjänst bör ha sitt dedikerade konto för att minimera risken. Undvik att använda vanliga användarkonton som tjänstkonton.
- Använd Azure Resource Manager: Autentisera med Azure-resurser med hjälp av arbetsbelastningsidentitetsfederation med antingen en appregistrering eller hanterad identitet i stället för att använda en appregistrering med en hemlighet. Mer information finns i Använda Azure Resource Manager.
- Identifiera och inaktivera oanvända tjänstkonton: Granska och identifiera konton som inte längre används. Inaktivera oanvända konton innan du överväger att ta bort.
- Begränsa behörigheter: Begränsa tjänstkontobehörigheter till det minimum som krävs. Undvik interaktiva inloggningsrättigheter för tjänstkonton.
- Använd separata identiteter för rapportläsare: Om du använder domänkonton för tjänstkonton använder du en annan identitet för rapportläsare för att isolera behörigheter och förhindra onödig åtkomst.
- Använd lokala konton för arbetsgruppsinstallationer: När du installerar komponenter i en arbetsgrupp använder du lokala konton för användarkonton. Undvik domänkonton i det här scenariot.
- Använd tjänstanslutningar: Använd tjänstanslutningar när det är möjligt för att på ett säkert sätt ansluta till tjänster utan att skicka hemliga variabler direkt till byggen. Begränsa anslutningar till specifika användningsfall. Mer information finns i avsnittet Omfångstjänstanslutningar i den här artikeln.
- Övervaka tjänstkontoaktivitet: Implementera revision och skapa granskningsströmmar för att övervaka tjänstkontoaktivitet.
Anslutningar för tjänstens omfattning
För att säkerställa säker och effektiv åtkomst till Azure-resurser ska tjänstanslutningar omfångsbegränsas korrekt. Med tjänstanslutningar kan Azure DevOps ansluta till externa tjänster och resurser, och genom att omfångssöka dessa anslutningar kan du begränsa åtkomsten till endast nödvändiga resurser och minska risken för obehörig åtkomst.
- Begränsa åtkomst: Begränsa åtkomsten genom att omfångssöka dina Azure Resource Manager- tjänstanslutningar till specifika resurser och grupper. Bevilja inte breda deltagarrättigheter i hela Azure-prenumerationen.
- Använd Azure Resource Manager: Autentisera med Azure-resurser genom arbetsbelastningsidentitetsfederation med antingen en applikationsregistrering eller hanterad identitet istället för att använda en applikationsregistrering med ett lösenord. Mer information finns i Skapa en Azure Resource Manager-tjänstanslutning som använder arbetsbelastningsidentitetsfederation.
- Resursgrupper för omfång: Se till att resursgrupper endast innehåller de virtuella datorer eller resurser som behövs för byggprocessen.
- Undvik klassiska tjänstanslutningar: Välj moderna Azure Resource Manager-tjänstanslutningar i stället för klassiska anslutningar, som saknar omfångsalternativ.
- Använd specifika teamtjänstkonton: Autentisera tjänstanslutningar med hjälp av specifika teamtjänstkonton för att upprätthålla säkerhet och kontroll.
För mer information, se Vanliga anslutningstyper för tjänster.
Aktivera och granska granskningshändelser
Om du vill förbättra säkerheten och övervaka användningsmönster i din organisation aktiverar och granskar du regelbundet granskningshändelser. Granskning hjälper dig att spåra användaråtgärder, behörighetsändringar och säkerhetsincidenter, så att du snabbt kan identifiera och åtgärda potentiella säkerhetsproblem.
- Aktivera granskning: Spåra och visa händelser relaterade till användaråtgärder, behörigheter, ändringar och säkerhetsincidenter. Mer information finns i Aktivera eller inaktivera granskning.
- Granska granskningshändelser regelbundet: Granska regelbundet granskningsloggar för att övervaka användaraktiviteter och identifiera misstänkt beteende. Leta efter oväntade användningsmönster, särskilt av administratörer och andra användare. Den här åtgärden hjälper till att identifiera potentiella säkerhetsöverträdelser och vidtar korrigerande åtgärder. Mer information finns i Granska granskningsloggen och granskningshändelser.
- Konfigurera säkerhetsaviseringar: Konfigurera aviseringar för att meddela dig om säkerhetsincidenter eller principöverträdelser. Den här åtgärden säkerställer ett snabbt svar på potentiella hot.
Skydda dina data
Implementera dataskyddsåtgärder för att säkerställa dina datas säkerhet och integritet. Att skydda dina data omfattar kryptering, säkerhetskopiering och återställningsstrategier för att skydda mot dataförlust och obehörig åtkomst.
- Skydda dina data: Skydda dina data med hjälp av strategier för kryptering, säkerhetskopiering och återställning. Mer information finns i Dataskydd.
- Lägg till IP-adresser och URL:er till allowlist: Om din organisation skyddas med en brandvägg eller proxyserver lägger du till IP-adresser och URL:er i listan över tillåtna adresser. Mer information finns i Tillåtna IP-adresser och domän-URL:er.