Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lösningsidéer
I den här artikeln beskrivs en lösningsidé. Molnarkitekten kan använda den här vägledningen för att visualisera huvudkomponenterna för en typisk implementering av den här arkitekturen. Använd den här artikeln som utgångspunkt för att utforma en välkonstruerad lösning som överensstämmer med arbetsbelastningens specifika krav.
Den här lösningsidén illustrerar en DevSecOps-pipeline som använder GitHub för infrastruktur som kod (IaC). Genom att behandla infrastrukturdefinitioner som sanningskälla kan arbetsbelastningar automatisera validering, säkerhetsgenomsökning, styrning och efterlevnad under hela distributionslivscykeln.
Standardiserade distributionsmönster, AI-assisterad utveckling, kodsäkerhet och konfigurationsgenomsökning, principdriven styrning och livscykelhantering bidrar till att förbättra säkerheten, öka drifteffektiviteten, minska konfigurationsavvikelsen och leverera tillförlitliga molnmiljöer.
Arkitektur
Ladda ned en Visio-fil med den här arkitekturen.
Dataflöde
Följande dataflöde motsvarar föregående diagram:
Utvecklare använder AI-assisterad, testdriven utveckling för att skapa och underhålla infrastrukturkod, återanvändbara moduler, tester och distributionsarbetsflöden. De utvecklar enhetstester, integrationstester och policykontroller som kod (PaC) tillsammans med infrastrukturdefinitioner.
Utvecklare checkar in IaC, tester och kontroller i GitHub-repositorier för att verifiera kvalitet, säkerhet och efterlevnad innan de skickar in pull requests.
Pull-begäranden utlöser automatiserade tester i GitHub Actions. Det här arbetsflödet genererar och validerar förhandsversioner av distributionen före distributionen.
GitHub Advanced Security tillhandahåller säkerhetskontroller på lagringsplatsnivå. Kontrollerna omfattar arbetsflöden för kodgenomsökning eller beroendegranskning där det är lämpligt och aktiverar hemlig genomsökning och push-skydd på lagringsplatsen för att identifiera exponerade hemligheter.
En konfigurerad DevOps-säkerhetsåtgärd söker igenom infrastrukturdefinitioner efter felkonfigurationer och rapporterar resultat till DevOps-säkerhet i Microsoft Defender för molnet. Defender för molnet korrelerar dessa resultat med insikter om molnsäkerhetsstatus för att prioritera reparation före distributionen.
Distributionspipelinen etablerar eller uppdaterar Azure resurser med hjälp av återanvändbara IaC-artefakter från godkända infrastrukturdefinitioner, till exempel Azure Verifierade moduler (AVM). Azure distributionsstackar bidrar till att upprätthålla justeringen mellan distribuerade resurser och källkontrollerade definitioner, och inställningar för distributionsnekande bidrar till att minska konfigurationsavvikelsen genom att begränsa out-of-band-ändringar. Godkända manuella ändringar dokumenteras och stämmas av via källkontrollen för att bevara Git som den auktoritativa sanningskällan.
DevSecOps övervakar och skyddar kontinuerligt mot säkerhetshot och säkerhetsrisker. Azure Policy tillämpar molnstyrning.
Konfigurerad automatisering skapar ett GitHub problem när övervaknings- eller säkerhetstjänster identifierar en avvikelse. Till exempel kan Defender för molnet identifiera en offentligt exponerad resurs som bryter mot säkerhetskrav. En Azure Monitor åtgärdsgrupp eller Microsoft Sentinel automationsregel kan anropa ett Azure Logic Apps arbetsflöde som skapar ett GitHub problem för granskning och reparation.
Komponenter
GitHub är en kodvärdplattform för versionskontroll och samarbete. I den här arkitekturen lagrar GitHub IaC-mallar i centrala lagringsplatser för utveckling, testning, styrningsarbetsflöden och AI-assisterad utveckling med GitHub Copilot.
GitHub Actions är ett verktyg för kontinuerlig integrering och kontinuerlig distribution (CI/CD) som gör det möjligt för arbetsflöden att skapa, testa och distribuera kod direkt från GitHub-lagringsplatser. I den här arkitekturen automatiserar GitHub Actions enhetstestning, säkerhetsgenomsökning och infrastrukturetablering för IaC-pipelines.
GitHub Advanced Security tillhandahåller säkerhetsfunktioner på lagringsplatsnivå, inklusive hemlig genomsökning och sårbarhetsidentifiering av beroenden. I den här arkitekturen hjälper GitHub Advanced Security till att identifiera exponerade autentiseringsuppgifter, sårbara beroenden med öppen källkod och andra säkerhetsrisker för lagringsplatsen innan kod slås samman och distribueras.
DevOps-säkerhet i Defender för molnet centraliserar DevOps säkerhetsresultat och korrelerar dem med molnkontext. I den här arkitekturen genomsöker en konfigurerad Microsoft Security DevOps-GitHub åtgärd IaC-artefakter efter felkonfigurationer och rapporterar resultaten till Defender för molnet för prioritering och reparation.
Azure Verifierade moduler (AVM) är fördefinierade IaC-moduler som underhålls av Microsoft. I den här arkitekturen använder arbetsbelastningar AVM för att distribuera återanvändbara resurs- och mönstermoduler som överensstämmer med Azure Well-Architected Framework-vägledning.
Azure-distributionsstaplar gör det möjligt att hantera driftsatta resurser som enskilda enheter med livscykelhantering. Azure distributionsstackar hjälper till att upprätthålla justeringen mellan distribuerade resurser och källkontrollerade infrastrukturdefinitioner, stödja livscykelhantering och minska konfigurationsavvikelsen genom att tillämpa styrningskontroller och neka inställningar.
Defender för molnet är en säkerhetshanteringsplattform som ger skydd mot hot i hybridmolnarbetsbelastningar. I den här arkitekturen övervakar den kontinuerligt distribuerad infrastruktur för sårbarheter och hot och kompletterar DevOps säkerhetsresultat med insikter om körningssäkerhet.
Microsoft Sentinel är en molnbaserad lösning för säkerhetsinformation och händelsehantering (SIEM) och soar-lösning (security orchestration automated response) som använder AI och analys för att identifiera och svara på hot. I den här arkitekturen övervakar Microsoft Sentinel infrastrukturaktiviteten och genererar aviseringar eller GitHub Problem när den identifierar avvikelser.
Azure Policy utvärderar Azure resurser mot organisations- och arbetsbelastningsstandarder. Beroende på den tilldelade principeffekten kan Azure Policy granska, ändra, åtgärda eller neka inkompatibla konfigurationer. En principdefinition med
denyeffekten kan till exempel blockera distributionen av en virtuell dator vars SKU inte är tillåten.Azure Monitor är en telemetri- och observerbarhetsplattform som samlar in prestandamått och aktivitetsloggar från Azure-resurser. I den här arkitekturen identifierar Azure Monitor oregelbundna infrastrukturförhållanden och utlöser aviseringar så att prioritering och reparation kan starta.
Information om scenario
När du använder IaC skapar du automatiserade tester när du utvecklar koden. Generera distributionsplaner och infrastrukturkonfigurationstillstånd för att emulera faktiska distributioner. Testdriven utveckling minskar komplexiteten i att testa IaC när arbetsbelastningen skalar.
Kör integreringstester mot distribuerade Azure resurser med hjälp av Azure-SDK:er och API:er, Azure Resource Graph, arbetsbelastningsspecifika valideringsverktyg eller automatiserade testramverk. De här testerna hjälper dig att verifiera resurskonfiguration, anslutning, säkerhetskontroller och driftsberedskap.
PaC är en annan viktig metod för att leverera infrastruktur som uppfyller regler och företagsstyrning. Du kan lägga till PaC-arbetsflöden i dina pipelines för att automatisera molnstyrningen.
Att skydda infrastrukturen tidigt i utvecklingslivscykeln minskar risken för säkerhets- och efterlevnadsproblem efter distributionen. Integrera GitHub Advanced Security och Defender för molnet DevOps-säkerhet i DevSecOps-arbetsflöden för att identifiera sårbarheter, kodkvalitetsproblem, principöverträdelser, exponering av hemligheter och konfigurationsrisker i IaC-kod. Den här metoden liknar SAST (Static Application Security Testing) för programkod.
Konfigurationsavdrift kan vara svår att lösa när infrastrukturen distribueras och används, särskilt i produktionsmiljöer. Använd GitHub Actions med OpenID Connect (OIDC) och Microsoft Entra arbetsbelastningsidentitetsfederation för att etablera och hantera Azure resurser utan att lagra autentiseringsuppgifter. Begränsa driftsättningsbehörigheter genom tilldelningar i Azures rollbaserade åtkomstkontroll (Azure RBAC) enligt principen om minsta privilegium och kontroller för miljöskydd. Om du vill göra exceptionella manuella ändringar använder du just-in-time-privilegierad åtkomst, registrerar ändringen och skapar automatiskt ett GitHub Problem för att stämma av infrastrukturdefinitionen via källkontroll. Undvik manuell konfiguration när det är möjligt och behandla Git som den auktoritativa källan till infrastrukturtillståndet.
Använd Azure distributionsstackar när en grupp Azure resurser som definierats i en mall delar en livscykel för att förhindra driftavdrift vid källan. Ta hänsyn till begränsningar i distributionsstacken, och använd lämpliga nekande inställningar för att begränsa ändringar i kontrollplanet utanför bandet. Behåll IaC-definitionen versionerad i versionshanteringen.
För att förhindra säkerhetsincidenter övervakar du kontinuerligt molnmiljön efter hot och sårbarheter. Använd Defender för molnet, Microsoft Sentinel, Azure Monitor och andra verktyg för skydd mot hot och SIEM för att identifiera onormal aktivitet. De här verktygen kan automatiskt varna säkerhetsadministratörer och skapa GitHub problem för undersökning och reparation.
Potentiella användningsfall
Centrala plattformsteknikteam kan tillhandahålla återanvändbara GitHub Actions-arbetsflöden, PaC-kontroller och Azure-driftsättningsstackar till applikations-, data- och AI-team som godkända standardvägar. GitHub Copilot hjälper utvecklare att skapa infrastrukturdefinitioner, tester och distributionsarbetsflöden. En konfigurerad Microsoft Security DevOps-åtgärd validerar infrastruktursäkerhet och konfiguration innan distribution och rapporterar resultat till DevOps-säkerhet i Defender för molnet. Organisationen kan påskynda infrastrukturleveransen samtidigt som styrning, konsekvens och säkerhetsstandarder upprätthålls.
Finansiella tjänster, hälsovård, offentlig sektor eller reglerade företag kan använda DevSecOps för IaC för att automatisera infrastrukturdistribution, principframtvingande, säkerhetsvalidering och efterlevnadsrapportering. Azure Policy, Defender för molnet, Microsoft Sentinel och Azure distributionsstackar hjälper till att upprätthålla granskningsbara infrastrukturändringar, minska konfigurationsavvikelsen och stödja efterlevnad under hela infrastrukturens livscykel. GitHub är den auktoritativa sanningskällan för alla infrastrukturändringar och styrningskontroller.
Deltagare
Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.
Huvudsakliga författare:
- Vito Chin | Senior Cloud Solution Architect
- Yee Shian Lee | Senior Cloud Solution Architect
Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.
Nästa steg
- Överväg vilket IaC-språk eller vilken mall som ska användas. Bicep eller Terraform på Azure är alternativ.
- Konfigurera Microsoft Security DevOps för att genomsöka din anslutna GitHub lagringsplats.