DevSecOps på Azure Kubernetes Service (AKS)

Azure Boards
Azure DevOps
Azure Monitor
Azure Pipelines
Azure Policy

DevSecOps, även kallat Secure DevOps, bygger vidare på DevOps praxis genom att integrera säkerhet i olika skeden i en traditionell DevOps-livscykel. Några av fördelarna med att skapa säkerhet i DevOps-metoder är:

  • Göra dina program och system säkrare genom att ge insyn i säkerhetshot och förhindra sårbarheter från att nå distribuerade miljöer
  • Öka säkerhetsmedvetenheten med dina utvecklings- och driftteam
  • Införliva automatiserade säkerhetsprocesser i livscykeln för programvaruutveckling
  • Minska kostnaderna för att åtgärda genom att hitta säkerhetsproblem tidigt i utvecklings- och designfaserna

När DevSecOps tillämpas på Azure Kubernetes Service (AKS) kan olika organisationsroller ha olika överväganden för att implementera säkerhet. Exempel på dessa olika organisationsroller är:

  • Utvecklare skapar säkra program som körs på AKS
  • Molntekniker skapar säker AKS-infrastruktur
  • Olika driftteam som kan styra kluster eller övervaka säkerhetsproblem

Den här artikeln är uppdelad i olika DevOps-livscykelsteg med överväganden och rekommendationer för inbäddning av säkerhetskontroller och metodtips för säkerhet. Den här guiden innehåller vanliga processer och verktyg för att införliva i CI/CD-pipelines (kontinuerlig integrering och kontinuerlig leverans) och väljer lätt att använda inbyggda verktyg där det är tillgängligt.

Som en förutsättning för den här artikeln rekommenderar vi att du läser Skapa och distribuera appar på AKS med hjälp av DevOps och GitOps.

Processflöde

Arkitekturdiagram visar flödet från utvecklaren till slutanvändaren och var DevSecOps kan användas, DevSecOps på AKS.

Ladda ned en Visio-fil med den här arkitekturen.

Kommentar

Även om den här artikeln refererar till AKS och GitHub gäller dessa rekommendationer för alla containerorkestrering eller CI/CD-plattform. Implementeringsinformationen kan variera, men de flesta begrepp och metoder som nämns i varje fas är fortfarande relevanta och tillämpliga.

  1. Microsoft Entra ID har konfigurerats som identitetsprovider för GitHub. Konfigurera multifaktorautentisering (MFA) för att ge extra autentiseringssäkerhet.
  2. Utvecklare använder Visual Studio Code eller Visual Studio med säkerhetstillägg aktiverade för att proaktivt analysera sin kod för säkerhetsrisker.
  3. Utvecklare checkar in programkod till en företagsägd och styrd GitHub Enterprise-lagringsplats.
  4. GitHub Enterprise integrerar automatisk genomsökning av säkerhet och beroenden via GitHub Advanced Security.
  5. Pull-begäranden utlöser kontinuerlig integrering (CI) och automatiserad testning via GitHub Actions.
  6. CI-byggarbetsflödet via GitHub Actions genererar en Docker-containeravbildning som lagras i Azure Container Registry.
  7. Du kan introducera manuella godkännanden för distributioner till specifika miljöer, till exempel produktion, som en del av arbetsflödet för kontinuerlig leverans (CD) i GitHub Actions.
  8. GitHub Actions aktiverar CD till AKS. Använd GitHub Advanced Security för att identifiera hemligheter, autentiseringsuppgifter och annan känslig information i programkällan och konfigurationsfilerna.
  9. Microsoft Defender används för att genomsöka Azure Container Registry, AKS-kluster och Azure Key Vault efter säkerhetsrisker.
    1. Microsoft Defender for Containers söker igenom containeravbildningen efter kända säkerhetsrisker när den laddas upp till Container Registry.
    2. Du kan också använda Defender för containrar för att utföra genomsökningar av DIN AKS-miljö och ger skydd mot körningshot för dina AKS-kluster.
    3. Microsoft Defender för Key Vault identifierar skadliga och ovanliga, misstänkta försök att komma åt key vault-konton.
  10. Azure Policy kan tillämpas på Container Registry och Azure Kubernetes Service (AKS) för principefterlevnad och efterlevnad. Vanliga säkerhetsprinciper för Container Registry och AKS är inbyggda för snabb aktivering.
  11. Azure Key Vault används för att på ett säkert sätt mata in hemligheter och autentiseringsuppgifter i ett program vid körning, vilket skiljer känslig information från utvecklare.
  12. AKS-nätverksprincipmotorn är konfigurerad för att skydda trafiken mellan programpoddar med hjälp av Kubernetes-nätverksprinciper.
  13. Kontinuerlig övervakning av AKS-klustret kan konfigureras med azure monitor - och containerinsikter för att mata in prestandamått och analysera program- och säkerhetsloggar.
    1. Containerinsikter hämtar prestandamått och program- och klusterloggar.
    2. Diagnostik- och programloggar hämtas till en Azure Log Analytics-arbetsyta för att köra loggfrågor.
  14. Microsoft Sentinel, som är en SIEM-lösning (säkerhetsinformation och händelsehantering), kan användas för att mata in och ytterligare analysera AKS-klusterloggarna för eventuella säkerhetshot baserat på definierade mönster och regler.
  15. Verktyg med öppen källkod, till exempel Zed Attack Proxy (ZAP) (ZAP) kan användas för intrångstestning för webbprogram och tjänster.
  16. Defender för DevOps, en tjänst som är tillgänglig i Defender för molnet, ger säkerhetsteamen möjlighet att hantera DevOps-säkerhet i miljöer med flera pipelines, inklusive GitHub och Azure DevOps.

Översikt och ansvarsområden för teammedlemmar

Överväg att hantera komplexiteten i DevSecOps i Kubernetes-baserade lösningsdistributioner som en uppdelning av problem. Vilket team i en företagsmiljö bör bry sig om varje aspekt av distributionen? Vilka verktyg och processer bör ett team använda för att uppnå sina mål på bästa sätt? I det här avsnittet går vi över de vanliga rollerna för utvecklare, programoperatörer (platstillförlitlighetstekniker), klusteroperatörer och säkerhetsteam.

Utvecklare

Utvecklare ansvarar för att skriva programkoden. De ansvarar också för att checka in sin kod på den avsedda lagringsplatsen. Ett av de viktiga ansvarsområdena för utvecklare omfattar även redigering och körning av skript för automatiserad testning för att säkerställa att deras kod fungerar som avsett och integreras sömlöst med resten av programmet. De definierar och skriptar också skapandet av containeravbildningar som en del av automatiseringspipelinen.

Programoperatörer (platstillförlitlighetstekniker)

Att skapa program i molnet med hjälp av containrar och Kubernetes kan förenkla programutveckling, distribution och skalbarhet. Men dessa utvecklingsmetoder skapar också alltmer distribuerade miljöer som komplicerar administration. Tillförlitlighetstekniker skapar lösningar för att automatisera tillsynen av stora programvarusystem. De fungerar som en brygga mellan utvecklings- och klusteroperatorteam och hjälper till att upprätta och övervaka servicenivåmål och felbudgetar. På så sätt hjälper de till att hantera programdistributioner och skriver ofta Kubernetes-manifestfiler (YAML).

Klusteroperatorer

Klusteroperatorer ansvarar för att konfigurera och hantera klusterinfrastrukturen. De använder ofta metodtips och ramverk för infrastruktur som kod (IaC) som GitOps för att etablera och underhålla sina kluster. De använder olika övervakningsverktyg som Azure Monitor Container Insights och Prometheus/Grafana för att övervaka övergripande klusterhälsa. De ansvarar för korrigering, klusteruppgraderingar, behörigheter och rollbaserad åtkomstkontroll i klustret. I DevSecOps-team ser de till att klustren uppfyller teamets säkerhetskrav och arbetar med säkerhetsteamet för att skapa dessa standarder.

Säkerhetsteamet

Säkerhetsteamet ansvarar för att utveckla säkerhetsstandarder och framtvinga dem. Vissa team kan vara ansvariga för att skapa och välja Azure Policy som tillämpas i de prenumerationer och resursgrupper som innehåller klustren. De övervakar säkerhetsproblem och ser tillsammans med de andra teamen till att säkerheten förs i framkant i varje steg i DevSecOps-processen.

Livscykelfaser för DevSecOps

Säkerhetskontroller implementeras i varje fas av programvaruutvecklingslivscykeln (SDLC). Den här implementeringen är en viktig del av en DevSecOps-strategi och i metoden för skift-vänster.

Arkitekturdiagram visar flödet från utvecklaren till slutanvändaren och var DevSecOps kan användas, DevSecOps på AKS.

Ladda ned en Visio-fil med den här arkitekturen.

Planera fas

Planfasen har vanligtvis minst automatisering, men det har viktiga säkerhetskonsekvenser som avsevärt påverkar senare Utvecklingslivscykelsteg. Den här fasen omfattar samarbete mellan säkerhets-, utvecklings- och driftteam. Att inkludera säkerhetsintressenter i den här fasen av utformningen och planeringen säkerställer att säkerhetskrav och säkerhetsproblem redovisas eller minimeras på lämpligt sätt.

Bästa praxis – Utforma en säkrare programplattform

Att skapa en säkrare AKS-värdbaserad plattform är ett viktigt steg för att säkerställa att säkerheten är inbyggd i systemet på varje nivå, från och med själva plattformen. Plattformen kan innehålla komponenter som både är interna för klustret (till exempel körningssäkerhets- och principagenter) och komponenter som är externa för AKS (till exempel nätverksbrandväggar och containerregister). Mer information finns i ACCELERATOR för AKS-landningszon, som innehåller viktiga designområden som säkerhet, identitet och nätverkstopologi.

Bästa praxis – Skapa hotmodellering i din process

  • Hotmodellering är vanligtvis en manuell aktivitet som omfattar säkerhets- och utvecklingsteam. Den används för att modellera och hitta hot i ett system så att sårbarheter kan åtgärdas innan någon kodutveckling eller ändringar i ett system. Hotmodellering kan ske vid olika tidpunkter, som utlöses av händelser som en betydande programvaruändring, arkitekturändring av lösningen eller säkerhetsincidenter.
  • Vi rekommenderar att du använder STRIDE-hotmodellen. Den här metoden börjar med ett dataflödesdiagram och använder hotkategorierna STRIDE mnemonic (förfalskning, manipulering, informationsavslöjande, avvisning, överbelastning och utökade privilegier) för att ge teamen möjlighet att identifiera, minimera och validera risker. Den innehåller också ett modelleringsverktyg för att notera och visualisera systemkomponenter, dataflöden och säkerhetsgränser. När du skapar hotmodellering i dina SDLC-processer introduceras nya processer och mer arbete för att upprätthålla uppdaterade hotmodeller. Men det hjälper till att säkerställa att säkerheten är på plats tidigt, vilket hjälper till att minska den potentiella kostnaden för att hantera säkerhetsproblem som hittas i senare SDLC-steg.

Bästa praxis – Tillämpa Azure Well Architect Framework (WAF)

  • Tillämpa metodtips för WAF-säkerhet som ger vägledning för saker som identitetshantering, programsäkerhet, infrastrukturskydd, datumsäkerhet och DevOps när det gäller molnbaserade miljöer.
  • Tillämpa metodtips för WAF-drift när det gäller DevSecOps och övervakning av dina produktionsmiljöer.

Utveckla fas

"Flytta åt vänster" är en viktig klientorganisation för DevSecOps-tänkesättet. Den här processen börjar innan kod ens checkas in på en lagringsplats och distribueras via en pipeline. Genom att använda metodtips för säker kodning och använda IDE-verktyg och plugin-program för kodanalys under utvecklingsfasen kan du åtgärda säkerhetsproblem tidigare under utvecklingslivscykeln när de är enklare att åtgärda.

Bästa praxis – Framtvinga säkra kodningsstandarder

  • Genom att använda etablerade metodtips och checklistor för säker kodning kan du skydda koden från vanliga sårbarheter som inmatning och osäker design. OWASP-stiftelsen publicerar branschstandardens säkerhetskodningsrekommendationer som du bör anta när du skriver kod. Dessa riktlinjer är särskilt viktiga när du utvecklar offentliga webbprogram eller tjänster.
  • Utöver allmänna säkerhetsmetoder bör du även titta på säkra kodningsmetoder för dina specifika programmeringsspråkkörningar, till exempel Java och .NET.
  • Du kan tillämpa loggningsstandarder för att skydda känslig information från att läcka ut i programloggar. De mest populära loggningsramverken, som log4j och log4net, tillhandahåller filter och plugin-program för att maskera känslig information som kontonummer eller personliga data.

Bästa praxis – Använda IDE-verktyg och plugin-program för att automatisera säkerhetskontroller

De flesta populära IDE:er, som Visual Studio, Visual Studio Code, IntelliJ IDEA och Eclipse, stöder tillägg som du kan använda för att få omedelbar feedback och rekommendationer för potentiella säkerhetsproblem som du kan ha introducerat när du skrev programkod.

  • SonarLint är ett IDE-plugin-program som är tillgängligt för de mest populära språken och utvecklarmiljöerna. SonarLint ger värdefull feedback och söker automatiskt igenom koden efter vanliga programmeringsfel och potentiella säkerhetsproblem.
  • Andra kostnadsfria och kommersiella plugin-program fokuserar på säkerhetsspecifika objekt, till exempel OWASP:s 10 vanligaste sårbarheter. Synk-plugin-programmet söker till exempel även igenom programkällan och beroenden från tredje part och varnar dig om några säkerhetsrisker hittas.
  • Med plugin-programmet SARIF (Static Analysis Results Interchange Format) för Visual Studio och Visual Studio Code kan du enkelt visa sårbarheter från populära SAST-verktyg (Static Application Security Testing) på ett intuitivt och lättläst sätt jämfört med att tolka resultat från råa JSON-utdatafiler.

Bästa praxis – Upprätta kontroller på dina lagringsplatser för källkod

  • Upprätta en förgreningsmetod så att det finns en konsekvent användning av förgrening i hela företaget. Metoder som Versionsflöde och GitHub-flöde har strukturerade riktlinjer för hur grenar ska användas för att stödja team och parallell utveckling. Dessa metoder kan hjälpa teamen att upprätta standarder och kontroller för kodincheckningar och sammanslagningar i ditt CI/CD-arbetsflöde.
  • Vissa grenar, till exempel main, är långvariga grenar som bevarar integriteten i programmets källkod. Dessa grenar bör ha upprättat sammanslagningsprinciper innan ändringar kan sammanfogas eller checkas in i dem. Några metodtips är:
    • Förhindra att andra utvecklare checkar in kod direkt i huvudgrenen.
    • Upprätta en peer-granskningsprocess och kräva ett minsta antal godkännanden innan ändringar kan sammanfogas till en huvudgren. Du kan enkelt konfigurera och tillämpa dessa kontroller med GitHub. Med GitHub kan du också utse grupper med auktoriserade godkännare om det behövs för gated environments.
  • Använd förincheckningskrokar för att söka efter känslig information i programmets källkod och förhindra att en incheckning inträffar om ett säkerhetsproblem hittas.
    • Använd github-tillhandahållna, inbyggda förincheckningskrokar som enkelt kan konfigureras för ett visst projekt. Det finns till exempel fördefinierade krokar för att söka efter hemligheter, privata nycklar och autentiseringsuppgifter och förhindra en incheckning om något av dessa problem hittas.
  • Upprätta rollbaserad åtkomstkontroll i versionskontrollsystemet.
    • Skapa väldefinierade roller med principen om minsta behörighet. En CI/CD-pipeline är din leveranskedja för produktionsdistributioner.
    • Tillämpa etablerade användar- eller grupproller i din organisation. Roller som Administratör, Utvecklare, Säkerhetsadministratör och Operatör måste skapas för att gruppera individer baserat på deras specifika roll och funktion när det gäller dina CI/CD-arbetsflöden.
  • Aktivera granskning av dina arbetsflöden så att det finns transparens och spårbarhet för konfiguration och andra ändringar med avseende på dina CI/CD-pipelines.

Bästa praxis – Skydda dina containeravbildningar

  • Använd lätta bilder med minimalt os-fotavtryck för att minska det övergripande området för ytangrepp. Överväg minimala avbildningar som Alpine eller till och med distrolösa avbildningar som bara innehåller ditt program och dess associerade körning. Mariner, Microsofts Linux-distribution med öppen källkod, är en enkel, härdad distribution som är utformad för AKS som värd för containerbaserade arbetsbelastningar.
  • Använd endast betrodda basavbildningar när du skapar dina containrar. Dessa basavbildningar ska hämtas från ett privat register som ofta genomsöks efter sårbarheter.
  • Använd utvecklarverktyg för att utvärdera sårbarheter i avbildningar lokalt.
    • Trivy är ett exempel på ett verktyg med öppen källkod som du kan använda för att analysera säkerhetsrisker i dina containeravbildningar.
  • Förhindra rotanvändaråtkomst/kontext för en bild. Som standard körs containrar som rot.
    • För containrar som behöver förbättrad säkerhet bör du överväga att använda en AppArmor-profil i ditt Kubernetes-kluster för att ytterligare bidra till att upprätthålla säkerheten för dina containrar som körs.

Byggfas

Under byggfasen arbetar utvecklare med platstillförlitlighetstekniker och säkerhetsteam för att integrera automatiserade genomsökningar av programkällan i sina CI-byggpipelines. Pipelines är konfigurerade för att aktivera säkerhetsrutiner som SAST, SCA och genomsökning av hemligheter med hjälp av CI/CD-plattformens säkerhetsverktyg och tillägg.

Bästa praxis – Utför statisk kodanalys (SAST) för att hitta potentiella sårbarheter i programmets källkod

  • Använd GitHub Advanced Security-genomsökningsfunktioner för kodgenomsökning och CodeQL.
    • Kodgenomsökning är en funktion som du använder för att analysera koden på en GitHub-lagringsplats för att hitta säkerhetsrisker och kodfel. Eventuella problem som identifieras i analysen visas i GitHub Enterprise Cloud.
    • Om kodgenomsökningen hittar en potentiell säkerhetsrisk eller ett fel i koden visar GitHub en avisering på lagringsplatsen.
    • Du kan också konfigurera grenregler för nödvändiga statuskontroller, till exempel för att framtvinga att en funktionsgren är uppdaterad med basgrenen innan du sammanfogar någon ny kod. Den här metoden säkerställer att din gren alltid har testats med den senaste koden.
  • Använd verktyg som kube-score för att analysera dina Kubernetes-distributionsobjekt.
    • kube-score är ett verktyg som utför statisk kodanalys av kubernetes-objektdefinitioner.
    • Utdata är en lista över rekommendationer för vad du kan förbättra för att göra ditt program säkrare och mer motståndskraftigt.

Bästa praxis – Utföra hemlig genomsökning för att förhindra bedräglig användning av hemligheter som har begåtts av misstag till en lagringsplats

  • När hemlig genomsökning är aktiverat för en lagringsplats genomsöker GitHub koden efter mönster som matchar hemligheter som används av många tjänsteleverantörer.
  • GitHub kör också regelbundet en fullständig git-historiksökning av befintligt innehåll på lagringsplatser och skickar aviseringsmeddelanden.
    • För Azure DevOps använder Defender för molnet hemlig genomsökning för att identifiera autentiseringsuppgifter, hemligheter, certifikat och annat känsligt innehåll i källkoden och kompileringsutdata.
    • Hemlig genomsökning kan köras som en del av Tillägget Microsoft Security DevOps for Azure DevOps.

Bästa praxis – Använd verktyg för analys av programvarusammansättning (SCA) för att spåra komponenter med öppen källkod i kodbasen och identifiera eventuella säkerhetsrisker i beroenden

  • Med beroendegranskning kan du fånga osäkra beroenden innan du introducerar dem i din miljö och ger information om licenser, beroenden och beroendens ålder. Det ger en lättförstämd visualisering av beroendeändringar med ett omfattande diff på fliken "Filer har ändrats" i en pull-begäran.
  • Dependabot utför en genomsökning för att identifiera osäkra beroenden och skickar Dependabot-aviseringar när en ny rådgivning läggs till i GitHub Advisory Database eller när beroendediagrammet för en lagringsplats ändras.

Bästa praxis – Aktivera säkerhetsgenomsökningar av IaC-mallar (Infrastruktur som kod) för att minimera felkonfigurationer i molnet som når produktionsmiljöer

  • Övervaka molnresurskonfigurationer proaktivt under hela utvecklingslivscykeln.
  • Microsoft Defender för DevOps stöder både GitHub- och Azure DevOps-lagringsplatser.

Bästa praxis – Genomsöka dina arbetsbelastningsavbildningar i containerregister för att identifiera kända sårbarheter

  • Defender for Containers söker igenom containrarna i Container Registry och Amazon AWS Elastic Container Registry (ECR) för att meddela dig om det finns kända säkerhetsrisker i dina avbildningar.
  • Azure Policy kan aktiveras för att göra en sårbarhetsbedömning av alla avbildningar som lagras i Container Registry och ge detaljerad information om varje sökning.

Bästa praxis – Skapa nya avbildningar automatiskt vid basavbildningsuppdatering

  • Azure Container Registry Tasks identifierar dynamiskt basavbildningsberoenden när en containeravbildning skapas. Därför kan den identifiera när en programavbildnings basavbildning uppdateras. Med en förkonfigurerad bygguppgift kan Container Registry-uppgifter automatiskt återskapa varje programavbildning som refererar till basavbildningen.

Bästa praxis – Använd Container Registry, Azure Key Vault och notation för att digitalt signera dina containeravbildningar och konfigurera AKS-klustret så att endast verifierade avbildningar tillåts

  • Azure Key Vault lagrar en signeringsnyckel som kan användas av notation med key vault-plugin-programmet (azure-kv) för att signera och verifiera containeravbildningar och andra artefakter. Med Container Registry kan du bifoga dessa signaturer med hjälp av Azure CLI-kommandona.
  • Med de signerade containrarna kan användarna se till att distributioner skapas från en betrodd entitet och kontrollera att en artefakt inte har manipulerats sedan den skapades. Den signerade artefakten säkerställer integritet och äkthet innan användaren hämtar en artefakt till någon miljö, vilket hjälper till att undvika attacker.
    • Med Ratify kan Kubernetes-kluster verifiera artefaktsäkerhetsmetadata före distributionen och endast tillåta dem som följer en antagningsprincip som du skapar för distribution.

Distribuera fas

Under distributionsfasen arbetar utvecklare, programoperatörer och klusteroperatorteam tillsammans med att upprätta rätt säkerhetskontroller för cd-pipelines (kontinuerlig distribution) för att distribuera kod till en produktionsmiljö på ett säkrare och automatiserat sätt.

Bästa praxis – Kontrollera åtkomsten och arbetsflödet för distributionspipelinen

  • Du kan skydda viktiga grenar genom att ange regler för grenskydd. De här reglerna definierar om medarbetare kan ta bort eller tvinga fram push-överföring till grenen. De ställer också in krav för alla push-överföringar till grenen, till exempel att skicka statuskontroller eller en linjär incheckningshistorik.
  • Genom att använda miljöer för distribution kan du konfigurera miljöer med skyddsregler och hemligheter.
  • Du kan använda funktionen Godkännanden och Gates för att styra arbetsflödet för distributionspipelinen. Du kan till exempel kräva manuella godkännanden från ett säkerhets- eller driftteam innan en distribution till en produktionsmiljö.

Bästa praxis – Säkra autentiseringsuppgifter för distribution

  • Med OpenID Anslut (OIDC) kan dina GitHub Action-arbetsflöden komma åt resurser i Azure utan att behöva lagra Azure-autentiseringsuppgifterna som långvariga GitHub-hemligheter.
  • Genom att använda miljöer för distribution kan du konfigurera miljöer med skyddsregler och hemligheter.
    • Med en pull-baserad metod för CI/CD med GitOps kan du flytta säkerhetsautentiseringsuppgifter till ditt Kubernetes-kluster, vilket minskar säkerhets- och riskytan genom att ta bort autentiseringsuppgifter från att lagras i dina externa CI-verktyg. Du kan också minska tillåtna inkommande anslutningar och begränsa åtkomsten på administratörsnivå till dina Kubernetes-kluster.

Bästa praxis – Kör DAST (Dynamic Application Security Tests) för att hitta sårbarheter i ditt program som körs

  • Använd GitHub Actions i distributionsarbetsflöden för att köra DAST-tester (Dynamic Application Security Testing).
  • Använd verktyg med öppen källkod, till exempel ZAP , för att utföra intrångstester för vanliga sårbarheter i webbprogram.

Bästa praxis – Distribuera endast containeravbildningar från betrodda register

  • Använd Defender för containrar för att aktivera Azure Policy-tillägg för Kubernetes.
  • Aktivera Azure Policy så att containeravbildningar bara kan distribueras från betrodda register.

Driftsfas

Under den här fasen utförs uppgifter för åtgärdsövervakning och säkerhetsövervakning för att proaktivt övervaka, analysera och varna om potentiella säkerhetsincidenter. Verktyg för produktionsobservabilitet som Azure Monitor och Microsoft Sentinel används för att övervaka och säkerställa efterlevnad av företagets säkerhetsstandarder.

Bästa praxis – Använd Microsoft Defender för molnet för att aktivera automatisk genomsökning och övervakning av dina produktionskonfigurationer

  • Kör kontinuerlig genomsökning för att identifiera avvikelse i programmets sårbarhetstillstånd och implementera en process för att korrigera och ersätta de sårbara bilderna.
  • Implementera automatiserad konfigurationsövervakning för operativsystem.
    • Använd Microsoft Defender för molnet containerrekommendationer (under avsnittet Beräkning och appar) för att utföra baslinjegenomsökningar för dina AKS-kluster. Få ett meddelande på Microsoft Defender för molnet instrumentpanelen när konfigurationsproblem eller sårbarheter hittas.
    • Använd Microsoft Defender för molnet och följ dess nätverksskyddsrekommendationer för att skydda de nätverksresurser som används av dina AKS-kluster.
  • Utför en sårbarhetsbedömning för avbildningar som lagras i Container Registry.
    • Implementera kontinuerliga genomsökningar för att köra avbildningar i Container Registry genom att aktivera Defender for Containers.

Bästa praxis – Håll dina Kubernetes-kluster uppdaterade

  • Kubernetes-versioner distribueras ofta. Det är viktigt att ha en strategi för livscykelhantering på plats för att säkerställa att du inte hamnar efter och inte får support. AKS är ett hanterat erbjudande som ger dig verktyg och flexibilitet för att hantera den här uppgraderingsprocessen. Du kan använda AKS-plattformens funktioner för planerat underhåll för att få mer kontroll över underhållsperioder och uppgraderingar.
  • AKS-arbetsnoder bör uppgraderas oftare. Vi tillhandahåller uppdateringar av operativsystem och körning varje vecka, som kan tillämpas automatiskt via obevakat läge eller via Azure CLI för mer kontroll och omfattande uppdateringar.

Bästa praxis – Använd Azure Policy för att skydda och styra dina AKS-kluster

  • När du har installerat Azure Policy-tillägget för AKS kan du använda enskilda principdefinitioner eller grupper av principdefinitioner som kallas initiativ (kallas även principuppsättningar) för klustret.
  • Använd inbyggda Azure-principer för vanliga scenarier som att förhindra att privilegierade containrar körs eller endast godkänner tillåtna externa IP-adresser. Du kan också skapa anpassade principer för specifika användningsfall.
  • Tillämpa principdefinitioner på klustret och kontrollera att tilldelningarna tillämpas.
  • Använd Gatekeeper för att konfigurera en antagningskontrollant som tillåter eller nekar distributioner baserat på angivna regler. Azure Policy utökar Gatekeeper.
  • Skydda trafiken mellan arbetsbelastningspoddar med hjälp av nätverksprinciper i AKS.
    • Installera nätverksprincipmotorn och skapa Kubernetes-nätverksprinciper för att styra trafikflödet mellan poddar i AKS. Nätverksprincip kan användas för Linux-baserade eller Windows-baserade noder och poddar i AKS.

Bästa praxis – Använda Azure Monitor för kontinuerlig övervakning och aviseringar

  • Använd Azure Monitor för att samla in loggar och mått från AKS. Du får insikter om tillgänglighet och prestanda för ditt program och din infrastruktur. Det ger dig också åtkomst till signaler för att övervaka din lösnings hälsa och upptäcka onormal aktivitet tidigt.
    • Kontinuerlig övervakning med Azure Monitor utökar versionspipelines till gate- eller återställningsversioner baserat på övervakningsdata. Azure Monitor matar också in säkerhetsloggar och kan avisera om misstänkt aktivitet.
    • Registrera dina AKS-instanser i Azure Monitor och konfigurera diagnostikinställningar för klustret.

Bästa praxis – Använd Microsoft Defender för molnet för aktiv hotövervakning

  • Microsoft Defender för molnet tillhandahåller aktiv hotövervakning på AKS på nodnivå (VM-hot) och internt.
  • Defender för DevOps bör användas för omfattande synlighet och ger säkerhets- och operatörsteam en centraliserad instrumentpanel för alla dina CI/CD-pipelines. Den här funktionen är särskilt användbar om du använder plattformar med flera pipelines som Azure DevOps och GitHub eller kör pipelines i offentliga moln.
  • Defender för Key Vault kan användas för att identifiera ovanliga, misstänkta försök att komma åt key vault-konton och kan varna administratörer baserat på konfiguration.
  • Defender for Containers kan avisera om sårbarheter som finns i containeravbildningarna som lagras i Container Registry.

Bästa praxis – Aktivera centraliserad loggövervakning och använda SIEM-produkter för att övervaka säkerhetshot i realtid

  • Anslut AKS-diagnostikloggar till Microsoft Sentinel för centraliserad säkerhetsövervakning baserat på mönster och regler. Sentinel möjliggör den här åtkomsten sömlöst via dataanslutningar.

Bästa praxis – Aktivera granskningsloggning för att övervaka aktivitet i dina produktionskluster

  • Använd aktivitetsloggar för att övervaka åtgärder på AKS-resurser för att visa all aktivitet och deras status. Ta reda på vilka åtgärder som utfördes på resurserna och av vem.
  • Aktivera DNS-frågeloggning genom att tillämpa dokumenterad konfiguration i din anpassade CoreDNS-konfigurationskarta.
  • Övervaka försök att komma åt inaktiverade autentiseringsuppgifter.
    • Integrera användarautentisering för AKS med Microsoft Entra-ID. Skapa diagnostiska Inställningar för Microsoft Entra-ID och skicka gransknings- och inloggningsloggarna till en Azure Log Analytics-arbetsyta. Konfigurera önskade aviseringar (till exempel när ett inaktiverat konto försöker logga in) på en Azure Log Analytics-arbetsyta.

Bästa praxis – Aktivera diagnostik på dina Azure-resurser

  • Genom att aktivera Azure-diagnostik för alla dina arbetsbelastningsresurser har du åtkomst till plattformsloggar som ger detaljerad diagnostik- och granskningsinformation för dina Azure-resurser. Dessa loggar kan matas in i Log Analytics eller en SIEM-lösning som Microsoft Sentinel för säkerhetsövervakning och aviseringar.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Övriga medarbetare:

Nästa steg