DevSecOps in Azure Kubernetes Service (AKS)

DevSecOps, ook wel Secure DevOps genoemd, bouwt voort op de praktijk van DevOps door beveiliging in verschillende fasen van een traditionele DevOps-levenscyclus op te nemen. Bouw beveiliging in DevOps-procedures in om:

  • Maak uw toepassingen en systemen veiliger, geef inzicht in beveiligingsrisico's en voorkom dat beveiligingsproblemen geïmplementeerde omgevingen bereiken.

  • Vergroot het beveiligingsbewustzijn tussen uw ontwikkel- en operationele teams.

  • Geautomatiseerde beveiligingsprocessen opnemen in de levenscyclus van uw softwareontwikkeling (SDLC).

  • Verminder herstelkosten door beveiligingsproblemen vroeg in ontwikkelings- en ontwerpfasen te vinden.

Wanneer u DevSecOps toepast op Azure Kubernetes Service (AKS), heeft elke organisatierol specifieke beveiligingsoverwegingen:

  • Ontwikkelaars bouwen beveiligde toepassingen die worden uitgevoerd op AKS.

  • Cloudtechnici bouwen een beveiligde AKS-infrastructuur.

  • Operations-teams kunnen clusters beheren of beveiligingsproblemen bewaken.

In dit artikel vindt u richtlijnen voor de levenscyclusfase van DevOps en vindt u aanbevelingen voor beveiligingscontroles en aanbevolen procedures. Het behandelt algemene processen en hulpprogramma's voor ci/cd-pijplijnen (continue integratie en continue levering), met een focus op ingebouwde hulpprogramma's.

Proces stroom

Architectuurdiagram waarin wordt getoond hoe u DevSecOps-procedures implementeert in een AKS-omgeving.

Een Visio-bestand van deze architectuur downloaden.

Note

Dit artikel verwijst naar AKS en GitHub, maar u kunt deze aanbevelingen toepassen op elke containerindeling of CI/CD-platform. De implementatiedetails kunnen variëren, maar de meeste concepten en procedures voor elke fase zijn nog steeds van toepassing.

  1. Microsoft Entra ID is geconfigureerd als id-provider voor GitHub. Configureer meervoudige verificatie (MFA) om extra verificatiebeveiliging te bieden.

  2. Ontwikkelaars gebruiken Visual Studio Code of Visual Studio met beveiligingsextensies die zijn ingeschakeld om hun code proactief te analyseren op beveiligingsproblemen.

  3. Ontwikkelaars voeren toepassingscode door naar een bedrijfseigendom en beheerde GitHub Enterprise-opslagplaats.

  4. GitHub Enterprise integreert automatische beveiliging en afhankelijkheidsscans via GitHub Advanced Security.

  5. Pull-aanvragen activeren continue integratie (CI) en geautomatiseerde tests via GitHub Actions.

  6. De CI-buildworkflow via GitHub Actions genereert een Docker-containerimage en slaat deze op in Azure Container Registry.

  7. U kunt handmatige goedkeuringen voor implementaties toevoegen aan specifieke omgevingen, zoals productie, als onderdeel van de werkstroom voor continue levering (CD) in GitHub Actions.

  8. GitHub Actions maken CD naar AKS mogelijk. Gebruik GitHub Advanced Security om geheimen, referenties en andere gevoelige informatie in uw toepassingsbron- en configuratiebestanden te detecteren.

  9. Microsoft Defender scant Container Registry, het AKS-cluster en Azure Key Vault op beveiligingsproblemen.

    1. Microsoft Defender for Containers scant de containerinstallatiekopieën op bekende beveiligingsproblemen wanneer GitHub Actions deze uploadt naar Container Registry.

    2. Defender for Containers kan ook uw AKS-omgeving scannen en runtime-bedreigingsbeveiliging bieden voor uw AKS-clusters.

    3. Microsoft Defender voor Key Vault detecteert ongebruikelijke en verdachte pogingen om toegang te krijgen tot key vault-accounts.

  10. U kunt Azure Policy toepassen op Container Registry en AKS om naleving van het beleid af te dwingen. Azure Policy bevat ingebouwd beveiligingsbeleid voor zowel Container Registry als AKS.

  11. Key Vault injecteert geheimen en referenties veilig in een toepassing tijdens runtime zonder ze beschikbaar te maken voor ontwikkelaars.

  12. De AKS-netwerkbeleidsengine is geconfigureerd om verkeer tussen toepassingspods te beveiligen met behulp van Kubernetes-netwerkbeleid. We raden Azure CNI Powered by Cilium aan als de netwerkbeleidsengine. Het biedt uitgebreide Berkeley Packet Filter (eBPF)-gebaseerde afdwinging, laag-7-beleid en FQDN-filtering (Fully Qualified Domain Name).

  13. U kunt continue bewaking van het AKS-cluster instellen met behulp van Azure Monitor om metrische prometheus-gegevens, containerlogboeken en Kubernetes-gebeurtenissen te verzamelen. Gebruik Azure Managed Grafana-dashboards voor visualisatie en Log Analytics voor waarschuwingen op basis van query's.

    1. Azure Monitor verzamelt metrische prestatiegegevens via beheerde Prometheus- en toepassings- en clusterlogboeken via containerlogboekverzameling.

    2. In een Log Analytics-werkruimte worden de diagnostische logboeken en toepassingslogboeken opgeslagen om logboekquery's uit te voeren.

  14. Gebruik Microsoft Sentinel als de gecentraliseerde SIEM (Security Information and Event Management) om AKS-telemetrie te correleren met signalen van Microsoft Defender for Cloud, Microsoft Entra ID en netwerkresources. Microsoft Sentinel biedt detectie, onderzoek en geautomatiseerde reactie op beveiligingsincidenten in de hele AKS-omgeving.

  15. Opensource-hulpprogramma's zoals Zed Attack Proxy (ZAP) kunnen penetratietests uitvoeren voor webtoepassingen en -services.

  16. Defender for DevOps, een service die beschikbaar is in Defender for Cloud, biedt beveiligingsteams de mogelijkheid om DevOps-beveiliging te beheren in omgevingen met meerderepipelines, waaronder GitHub en Azure DevOps.

Overzicht en verantwoordelijkheden van teamleden

Overweeg devSecOps-complexiteit te beheren voor implementaties van kubernetes-oplossingen door verantwoordelijkheden tussen teams te verdelen. In deze sectie worden de rollen en verantwoordelijkheden van ontwikkelaars, toepassingsoperators zoals sitebetrouwbaarheidstechnici, clusteroperators en beveiligingsteams beschreven.

Developers

Ontwikkelaars schrijven de toepassingscode en voeren deze door naar de aangewezen opslagplaats. Ze schrijven en voeren scripts uit voor geautomatiseerde tests om ervoor te zorgen dat hun code werkt zoals bedoeld en kan worden geïntegreerd met de rest van de toepassing. Ontwikkelaars definiëren en schrijven ook scripts voor het bouwen van containerimages als onderdeel van de automatiseringspijplijn.

Toepassingsoperators (sitebetrouwbaarheidstechnici)

Het bouwen van toepassingen met behulp van containers en Kubernetes kan de ontwikkeling, implementatie en schaalbaarheid van toepassingen vereenvoudigen. Maar deze ontwikkelingsmethoden creëren ook steeds meer gedistribueerde omgevingen die het beheer bemoeilijken.

Sitebetrouwbaarheidstechnici bouwen oplossingen die automatiseren hoe teams toezicht houden op grote softwaresystemen. Ze fungeren als een brug tussen ontwikkel- en clusteroperatorteams. Ze helpen bij het vaststellen en bewaken van serviceniveaudoelstellingen (SLO's) en foutbudgetten. Sitebetrouwbaarheidstechnici helpen ook bij het beheren van toepassingsimplementaties en het schrijven van YAML-bestanden (Kubernetes Manifest).

Cluster operators

Clusteroperators configureren en beheren de clusterinfrastructuur. Ze gebruiken vaak best practices en frameworks voor infrastructuur als code (IaC) zoals GitOps om hun clusters in te richten en te onderhouden. Ze gebruiken bewakingshulpprogramma's zoals de beheerde Azure Monitor-service voor Prometheus en Azure Managed Grafana om de algehele clusterstatus te bewaken. Ze zijn verantwoordelijk voor patching, clusterupgrades, machtigingen en op rollen gebaseerd toegangsbeheer (RBAC) in het cluster. In DevSecOps-teams werken clusteroperators samen met beveiligingsteams om beveiligingsstandaarden vast te stellen en ervoor te zorgen dat clusters aan deze vereisten voldoen.

Beveiligingsteam

Het beveiligingsteam ontwikkelt en dwingt beveiligingsstandaarden af. Sommige teams kunnen Azure Policy-definities maken en selecteren die u afdwingt voor de abonnementen en resourcegroepen die de clusters bevatten. Beveiligingsteams controleren beveiligingsproblemen en werken samen met andere teams om prioriteit te geven aan beveiliging in het DevSecOps-proces.

Levenscyclusfasen van DevSecOps

Elke fase van het SDLC implementeert beveiligingscontroles. Deze beveiligingscontroles zijn centraal in DevSecOps en procedures voor shift-left.

Een diagram met een continue DevOps-levenscyclus die beveiliging in alle fasen integreert.

Een Visio-bestand van deze architectuur downloaden.

Planfase

De planfase heeft meestal de minste mate van automatisering, maar heeft belangrijke gevolgen voor de beveiliging die van invloed zijn op latere fasen van de DevOps-levenscyclus. Deze fase omvat samenwerking tussen beveiligings-, ontwikkelings- en operationele teams. Neem beveiligingsbelangen in deze fase op om ervoor te zorgen dat u rekening houdt met beveiligingsvereisten en beveiligingsproblemen.

Best practice: Een beveiligd toepassingsplatform ontwerpen

Als u een beveiligde door AKS gehoste workload wilt bouwen, moet u beveiliging opnemen in het systeem op elke laag, te beginnen met het platform zelf. Het platform kan onderdelen bevatten die intern zijn voor het cluster, zoals runtimebeveiligings- en beleidsagenten, en onderdelen die extern zijn voor AKS, zoals netwerkfirewalls en containerregisters.

Best practice: Threat Modeling in uw proces bouwen

Threat modeling is meestal een handmatige activiteit waarbij beveiligings- en ontwikkelteams betrokken zijn. U kunt bedreigingen in een systeem modelleren en vinden om beveiligingsproblemen op te lossen voordat u code ontwikkelt of wijzigingen aanbrengt. Teams voeren bedreigingsmodellering uit als reactie op belangrijke softwarewijzigingen, architectuurwijzigingen van oplossingen of beveiligingsincidenten.

We raden het STRIDE-bedreigingsmodel aan. Deze methodologie begint met een gegevensstroomdiagram en categoriseert bedreigingen met behulp van de STRIDE-nemonic: Spoofing, Manipulatie, Repudiation, Info Disclosure, Denial of Service en Elevation of Privilege. Teams gebruiken deze categorieën om risico's te identificeren, te beperken en te valideren. Met een modelleringsprogramma kunt u systeemonderdelen, gegevensstromen en beveiligingsgrenzen noteren en visualiseren.

Het bouwen van bedreigingsmodellering in uw SDLC voegt procesoverhead toe en vereist dat u bijgewerkte bedreigingsmodellen onderhoudt. In een vroeg stadium van ontwikkeling wordt echter de beveiliging aangepakt, waardoor de kosten voor het oplossen van problemen die later worden ontdekt, worden verminderd.

Best practice: Het Azure Well-Architected Framework toepassen

  • Pas best practices voor beveiliging toe die richtlijnen bieden voor identiteitsbeheer, toepassingsbeveiliging, infrastructuurbeveiliging, gegevensbeveiliging en DevOps, zoals deze van toepassing is op cloudeigen omgevingen.

  • Pas best practices voor Operational Excellence toe zoals deze van toepassing is op DevSecOps en bewaking van uw productieomgevingen.

Ontwikkelingsfase

Naar links verschuiven is een belangrijk tenet van de DevSecOps-mindset. Dit proces begint voordat u code doorvoert in een opslagplaats en implementeert deze via een pijplijn. Als u eerder in de ontwikkelingslevenscyclus beveiligingsproblemen wilt oplossen, moet u aanbevolen procedures voor veilige codering gebruiken en IDE-hulpprogramma's (Integrated Development Environment) en invoegtoepassingen gebruiken voor codeanalyse tijdens de ontwikkelingsfase.

Aanbevolen werkwijze: Veilige coderingsstandaarden afdwingen

  • Gebruik vastgestelde aanbevolen procedures en controlelijsten voor veilige codering om uw code te beschermen tegen veelvoorkomende beveiligingsproblemen, zoals injectie en onveilig ontwerp. De Stichting Open Worldwide Application Security Project (OWASP) publiceert aanbevelingen voor veilig coderen volgens de industriestandaard die u moet gebruiken wanneer u code schrijft. Deze richtlijnen zijn vooral belangrijk wanneer u openbare webtoepassingen of -services ontwikkelt.

  • Bekijk beveiligingscoderingsprocedures voor uw specifieke runtimes voor programmeertalen, zoals Java en .NET.

  • Dwing logboekregistratiestandaarden af om gevoelige informatie te beschermen tegen lekken in toepassingslogboeken. De populairste frameworks voor logboekregistratie, zoals Apache Log4j en Apache log4net, bieden filters en invoegtoepassingen voor het maskeren van gevoelige informatie, zoals accountnummers of persoonlijke gegevens.

Best practice: IDE-hulpprogramma's en invoegtoepassingen gebruiken om beveiligingscontroles te automatiseren

De populairste IDE's, zoals Visual Studio, VS Code, IntelliJ IDEA en Eclipse, ondersteunen extensies die u kunt gebruiken om onmiddellijke feedback en aanbevelingen te krijgen voor mogelijke beveiligingsproblemen die u introduceert tijdens het schrijven van toepassingscode.

  • SonarQube voor IDE is een IDE-invoegtoepassing voor de populairste talen en ontwikkelomgevingen. SonarQube voor IDE biedt feedback en scant uw code automatisch op veelvoorkomende programmeerfouten en mogelijke beveiligingsproblemen.

  • Andere gratis en commerciële invoegtoepassingen richten zich op beveiligingsspecifieke items, zoals de OWASP top 10 veelvoorkomende beveiligingsproblemen. De Snyk-invoegtoepassing scant ook uw toepassingsbron en externe afhankelijkheden en waarschuwt u als er beveiligingsproblemen worden gevonden.

  • Met de SARIF-invoegtoepassing (Static Analysis Results Interchange Format) voor Visual Studio en VS Code kunt u eenvoudig beveiligingsproblemen van populaire SAST-hulpprogramma's (Static Application Security Testing) bekijken en resultaten van onbewerkte JSON-uitvoerbestanden interpreteren.

Best practice: Besturingselementen voor uw broncodeopslagplaatsen instellen

  • Stel een vertakkingsmethodologie in voor consistentie in uw onderneming. Methodologieën zoals releasestroom en GitHub-stroom hebben gestructureerde richtlijnen over het gebruik van vertakkingen ter ondersteuning van het team en parallelle ontwikkeling. Deze methodologieën kunnen teams helpen bij het vaststellen van standaarden en besturingselementen voor codedoorvoeringen en samenvoegingen in uw CI/CD-werkstroom.

    Bepaalde vertakkingen, zoals de belangrijkste, zijn langdurige vertakkingen die de integriteit van de broncode van uw toepassing behouden. Stel samenvoegbeleid vast voor deze branches voordat u wijzigingen committeert of samenvoegt. U kunt bijvoorbeeld het volgende doen:

    • Voorkom dat andere ontwikkelaars code rechtstreeks doorvoeren in uw hoofdbranch.

    • Stel een peer reviewproces in en vereist een minimum aantal goedkeuringen voordat u wijzigingen in een hoofdbranch samenvoegt. Stel deze besturingselementen in en dwing ze af door het gebruik van GitHub. Gebruik GitHub om groepen geautoriseerde goedkeurders aan te wijzen, indien nodig voor gated environments.

  • Gebruik precommit hooks om te controleren op gevoelige informatie in de broncode van uw toepassing en doorvoeringen te blokkeren wanneer ze beveiligingsproblemen detecteren.

    • Gebruik interne precommit hooks van GitHub. Configureer ze eenvoudig voor specifieke projecten. Sommige vooraf gemaakte hooks scannen bijvoorbeeld op geheimen, persoonlijke sleutels en referenties en blokkeren een doorvoer als ze deze problemen vinden.
  • Stel RBAC in uw versiebeheersysteem in.

    • Maak goed gedefinieerde rollen met behulp van het principe van minimale bevoegdheden. Een CI/CD-pijplijn fungeert als uw toeleveringsketen voor productie-implementaties.

    • Pas gevestigde gebruikers- of groepsrollen binnen uw organisatie toe. Als u personen wilt groeperen op basis van hun specifieke rol en functie in uw CI/CD-werkstromen, maakt u rollen zoals Beheerder, Ontwikkelaar, Beveiligingsbeheerder en Operator.

  • Schakel controle van uw werkstromen in om transparantie en traceerbaarheid toe te voegen voor configuratie en andere wijzigingen in uw CI/CD-pijplijnen.

Beste werkwijze: Uw containerafbeeldingen beveiligen

  • Gebruik lichtgewicht installatiekopieën met een minimale footprint van het besturingssysteem om het totale kwetsbaarheid voor aanvallen te verminderen. Overweeg minimale installatiekopieën zoals Alpine of distributieloze installatiekopieën die alleen uw toepassing en de bijbehorende runtime bevatten.

  • Gebruik alleen vertrouwde basisafbeeldingen wanneer u uw containers bouwt. Haal deze basisinstallatiekopieën op uit een privéregister dat u regelmatig scant op beveiligingsproblemen.

  • Gebruik ontwikkeltools om kwetsbaarheden van image-bestanden lokaal te evalueren. Trivy is een opensource-hulpprogramma waarmee beveiligingsproblemen in uw containerinstallatiekopieën worden geanalyseerd.

  • Voorkom root-gebruikertoegang of context voor een afbeelding. Standaard worden containers uitgevoerd als root.

    Voor containers die een verbeterde beveiliging nodig hebben, kunt u overwegen een AppArmor - of seccomp-profiel in uw Kubernetes-cluster te gebruiken om de beveiliging voor uw actieve containers verder af te dwingen.

Buildfase

Tijdens de buildfase werken ontwikkelaars samen met sitebetrouwbaarheidstechnici en beveiligingsteams om geautomatiseerde scans van hun toepassingsbron in hun CI-buildpijplijnen te integreren. Teams configureren de pijplijnen om beveiligingsprocedures mogelijk te maken met behulp van de beveiligingshulpprogramma's en extensies van het CI/CD-platform. Deze procedures omvatten SAST, softwaresamenstellingsanalyse (SCA) en geheimenscans.

Best practice: SAST uitvoeren om potentiële beveiligingsproblemen in uw toepassingsbroncode te vinden

  • Gebruik GitHub Geavanceerde beveiligingsscanmogelijkheden voor codescans en CodeQL.

    • Codescans is een functie waarmee code in een GitHub-opslagplaats wordt geanalyseerd om beveiligingsproblemen en coderingsfouten te vinden. Hiermee worden de problemen in GitHub Enterprise Cloud weergegeven.

    • Wanneer de codescan een mogelijk beveiligingsprobleem of een fout in uw code vindt, geeft GitHub een waarschuwing in de opslagplaats weer.

    • U kunt vertakkingsregels configureren voor vereiste statuscontroles. U kunt bijvoorbeeld vereisen dat functiebranches up-to-date zijn met de basisbranch voordat u nieuwe code samenvoegt. Deze vereiste zorgt ervoor dat u uw tak test met de nieuwste code.

    • Schakel Copilot Autofix in voor het ontvangen van door AI gegenereerde fixsuggesties voor waarschuwingen voor codescans. Copilot Autofix stelt herstel rechtstreeks voor in pull-aanvragen, waardoor ontwikkelaars snel beveiligingsresultaten kunnen oplossen.

  • Gebruik hulpprogramma's zoals kube-score om uw Kubernetes-implementatieobjecten te analyseren. Met dit hulpprogramma wordt statische codeanalyse uitgevoerd van uw Kubernetes-objectdefinities. Er wordt een lijst met aanbevelingen uitgevoerd om uw toepassing veiliger en toleranter te maken.

Best practice: Geheim scannen gebruiken om per ongeluk doorgevoerde geheimen te detecteren

  • Wanneer u het scannen van geheimen voor een opslagplaats inschakelt, scant GitHub de code op patronen die overeenkomen met geheimen die veel serviceproviders gebruiken.

  • GitHub voert periodiek een volledige Git-geschiedenisscan uit van bestaande inhoud in opslagplaatsen en verzendt waarschuwingsmeldingen.

    • Voor Azure DevOps maakt Defender for Cloud gebruik van geheim scannen om referenties, geheimen, certificaten en andere gevoelige inhoud in uw broncode te detecteren en uitvoer te bouwen.

    • U kunt geheim scannen uitvoeren als onderdeel van de Extensie Microsoft Security DevOps voor Azure DevOps.

Best practice: SCA-hulpprogramma's gebruiken om opensource-onderdelen in de codebase bij te houden en beveiligingsproblemen in afhankelijkheden te detecteren

  • Met afhankelijkheidsbeoordeling kunt u onveilige afhankelijkheden onderscheppen voordat u deze in uw omgeving introduceert. Het biedt ook informatie over de licentie, afhankelijkheden en de leeftijd van afhankelijkheden. Er worden afhankelijkheidswijzigingen weergegeven via een uitgebreide diff op het tabblad Bestanden gewijzigd van een pull-aanvraag.

  • Dependabot voert een scan uit om onveilige afhankelijkheden te detecteren en verzendt Dependabot-waarschuwingen wanneer er een nieuw advies wordt toegevoegd aan de GitHub Advisory Database of wanneer de afhankelijkheidsgrafiek voor een opslagplaats wordt gewijzigd.

Best practice: Een SBOM genereren voor uw containerbeelden

  • Een stuklijst voor software (SBOM) biedt een volledige inventaris van de componenten, bibliotheken en afhankelijkheden waaruit uw containerafbeeldingen bestaan. Gebruik SBOM-generatiehulpprogramma's zoals Microsoft sbom-tool of Syft tijdens de CI-build om een SPDX- of CycloneDX-manifest te produceren.

  • Koppel een SBOM aan uw containerinstallatiekopieën die zijn opgeslagen in Container Registry om het scannen van downstreamproblemen en het bijhouden van licentienaleving in de hele toeleveringsketen mogelijk te maken.

Best practice: IaC-sjablonen scannen om onjuiste configuraties te detecteren vóór de implementatie

Best practice: Scan uw workloadafbeeldingen in containerregisters om bekende kwetsbaarheden te identificeren

  • Defender for Containers scant de containers in de Container Registry en Amazon Elastic Container Registry (ECR) om u op de hoogte te stellen van bekende kwetsbaarheden in uw installatiekopieën.

  • U kunt Azure Policy inschakelen om een evaluatie van beveiligingsproblemen uit te voeren op installatiekopieën die zijn opgeslagen in Container Registry en gedetailleerde informatie over elke bevindingen te geven.

Best practice: nieuwe installatiekopieën bouwen op updates van basisinstallatiekopieën automatisch

  • Container Registry Tasks detecteert dynamisch afhankelijkheden van basisafbeeldingen bij het bouwen van een containerafbeelding. Wanneer een update van de basisafbeeldingen van een toepassingsafbeeldingen wordt gedetecteerd, kunt u een buildtaak configureren om automatisch toepassingsafbeeldingen te herbouwen die naar die basisafbeeldingen verwijzen.

Best practice: Gebruik Container Registry, Key Vault en notatie om uw containerinstallatiekopieën digitaal te ondertekenen en het AKS-cluster zo te configureren dat alleen gevalideerde installatiekopieën zijn toegestaan

  • Key Vault slaat ondertekeningssleutels op die door het notatieprogramma worden gebruikt. De Key Vault-invoegtoepassing (azure-kv) heeft toegang tot deze sleutels om containerafbeeldingen en andere artefacten te ondertekenen en te verifiëren. U kunt deze handtekeningen toevoegen aan Container Registry-installatiekopieën met behulp van de Azure CLI-opdrachten.

  • Ondertekende containers zorgen ervoor dat implementaties afkomstig zijn van een vertrouwde bron en dat er na het maken niet met artefacten wordt geknoeid. Het ondertekende artefact zorgt voor integriteit en authenticiteit voordat de gebruiker een artefact in een omgeving ophaalt, waardoor aanvallen worden vermeden.

    • Ratify verifieert de beveiligingsmetagegevens van artefacten en handhaaft toegangsbeleidsregels voordat ze worden geïmplementeerd in Kubernetes-clusters. AKS-afbeeldingsintegriteit maakt gebruik van Ratificeren als een ingebouwde verificator om handtekeningen voor afbeeldingen en SBOM-attestations te valideren voordat pods worden toegelaten tot het cluster.

Implementatiefase

Tijdens de implementatiefase werken ontwikkelaars, toepassingsoperators en clusteroperatorteams samen om de juiste beveiligingscontroles voor de CD-pijplijnen tot stand te brengen. Met deze besturingselementen kunt u op een veilige en geautomatiseerde manier code implementeren in een productieomgeving.

Best practice: de toegang en werkstroom van de implementatiepijplijn beheren

  • U kunt belangrijke vertakkingen beveiligen door vertakkingsbeveiligingsregels in te stellen. Deze regels bepalen of samenwerkers pushen naar de vertakking kunnen verwijderen of forceren. Ze stellen ook vereisten in voor pushes naar de vertakking, zoals het doorgeven van statuscontroles of een lineaire doorvoergeschiedenis.

  • Gebruik omgevingen voor implementatie om beveiligingsregels en geheimen te configureren.

  • Gebruik de functie goedkeuringen en poorten om de werkstroom van de implementatiepijplijn te beheren. U kunt bijvoorbeeld handmatige goedkeuringen van een beveiligings- of operations-team vereisen voordat u in een productieomgeving implementeert.

Beste werkwijze: Implementatie-referenties beveiligen

  • Met OpenID Connect (OIDC) hebben uw GitHub Action-werkstromen toegang tot resources in Azure zonder dat u de Azure-referenties hoeft op te slaan als GitHub-geheimen met een lange levensduur.

  • Gebruik een pull-benadering voor CI/CD met GitOps om beveiligingsreferenties naar uw Kubernetes-cluster te verplaatsen. Deze aanpak vermindert het beveiligings- en risicooppervlak door inloggegevens te verwijderen uit uw externe CI-hulpprogramma's. U kunt ook toegestane binnenkomende verbindingen verminderen en de toegang op beheerdersniveau tot uw Kubernetes-clusters beperken.

Best practice: VOER DAST uit om beveiligingsproblemen in uw actieve toepassing te vinden

  • Gebruik GitHub Actions in implementatiewerkstromen om DAST-tests (Dynamic Application Security Testing) uit te voeren.

  • Opensource-hulpprogramma's zoals ZAP gebruiken om penetratietests uit te voeren op veelvoorkomende beveiligingsproblemen in webtoepassingen.

Best practice: Containerafbeeldingen alleen uitrollen vanuit vertrouwde registries

  • Gebruik Defender for Containers om de Azure Policy-invoegtoepassing voor Kubernetes in te schakelen.

  • Configureer Azure Policy voor Kubernetes om implementaties van containerinstallatiekopieën te beperken tot vertrouwde registers.

Exploitatie fase

Voer tijdens deze fase bewerkingsbewakings- en beveiligingsbewakingstaken uit om proactief mogelijke beveiligingsincidenten te bewaken, analyseren en waarschuwen. Gebruik hulpprogramma's voor waarneembaarheid in productie, zoals Azure Monitor en Microsoft Sentinel, om de naleving van beveiligingsstandaarden voor ondernemingen te bewaken en te garanderen.

Best practice: Defender for Cloud gebruiken om uw productieconfiguraties automatisch te scannen en bewaken

  • Voer continu scannen uit om afwijkingen in de beveiligingsstatus van uw toepassing te detecteren en een proces te implementeren om de kwetsbare installatiekopieën te patchen en te vervangen.

  • Implementeer geautomatiseerde configuratiebewaking voor besturingssystemen.

    • Gebruik de aanbevelingen voor containers in Defender for Cloud (onder Compute en apps) om basislijnscans uit te voeren voor uw AKS-clusters. Defender voor Cloud geeft eventuele configuratieproblemen of beveiligingsproblemen weer in het dashboard.

    • Gebruik Defender voor Cloud en volg de aanbevelingen voor netwerkbeveiliging om de netwerkresources van uw AKS-cluster te beveiligen.

  • Voer een kwetsbaarheidsbeoordeling uit voor container-images die zijn opgeslagen in Container Registry.

    • Implementeer doorlopende scans voor draaiende images in Container Registry door Defender for Containers in te schakelen.

Best practice: Uw Kubernetes-clusters bijgewerkt houden

  • Kubernetes brengt regelmatig nieuwe versies uit. Behoud een levenscyclusbeheerstrategie om uw clusters ondersteund en up-to-date te houden. AKS biedt hulpprogramma's voor het beheren van clusterupgrades. Gebruik de geplande onderhoudsfuncties van AKS om te bepalen wanneer onderhoudsvensters en upgrades plaatsvinden.

  • Upgrade AKS-werkknooppunten regelmatig. Azure brengt wekelijkse besturingssysteem- en runtime-updates uit. Pas deze updates automatisch toe via de modus zonder toezicht of handmatig via de Azure CLI voor meer controle.

Best practice: Azure Policy gebruiken om uw AKS-clusters te beveiligen en te beheren

  • Nadat u de Azure Policy-invoegtoepassing voor AKS hebt geïnstalleerd, kunt u afzonderlijke beleidsdefinities of groepen beleidsdefinities, initiatieven of beleidssets genoemd, toepassen op uw cluster.

  • Gebruik ingebouwde Azure-beleidsregels voor veelvoorkomende scenario's, zoals voorkomen dat bevoegde containers worden uitgevoerd of dat externe IP-adressen worden beperkt tot een acceptatielijst. U kunt ook aangepast beleid maken voor specifieke use cases.

  • Pas beleidsdefinities toe op uw cluster en controleer of Azure Policy deze toewijzingen afdwingt.

  • Gebruik Gatekeeper om een toegangscontroller te configureren die implementaties toestaat of weigert op basis van de opgegeven regels. Azure Policy breidt Gatekeeper uit.

  • Beveilig het verkeer tussen workload-pods met behulp van netwerkbeleidsregels in AKS.

    • Gebruik Azure CNI Powered by Cilium als de netwerkbeleidsengine. Cilium maakt gebruik van een gegevensvlak op basis van eBPF en ondersteunt kubernetes-systeemeigen beleid, laag-7-beleid en FQDN-filtering.

Best practice: Azure Monitor gebruiken voor continue bewaking en waarschuwingen

Best practice: Defender for Cloud gebruiken voor actieve bedreigingsbewaking

  • Defender for Cloud biedt actieve bedreigingsbewaking voor AKS op knooppuntniveau (VM-bedreigingen) en clusterworkloads.

  • Gebruik Defender voor DevOps om uitgebreide zichtbaarheid te krijgen in alle CI/CD-pijplijnen. Het biedt beveiligings- en operatorteams een gecentraliseerd dashboard. U profiteert vooral van deze gecentraliseerde zichtbaarheid wanneer u platformen met meerdere pijplijnen gebruikt, zoals Azure DevOps en GitHub, of pijplijnen uitvoert in openbare clouds.

  • Defender voor Key Vault detecteert ongebruikelijke en verdachte pogingen om toegang te krijgen tot key vault-accounts en kan waarschuwingen verzenden naar beheerders op basis van configuratie.

  • Defender for Containers kan een waarschuwing geven over beveiligingsproblemen die zijn gevonden in uw containerinstallatiekopieën die zijn opgeslagen in Container Registry.

Best practice: Gecentraliseerde logboekbewaking inschakelen en SIEM-producten gebruiken om te controleren op realtime beveiligingsrisico's

  • Verbind diagnostische AKS-logboeken met Microsoft Sentinel voor gecentraliseerde beveiligingsbewaking op basis van patronen en regels. Microsoft Sentinel maakt deze toegang mogelijk via gegevensconnectors.

Best practice: Auditlogboekregistratie inschakelen om activiteiten op uw productieclusters te bewaken

  • Gebruik activiteitenlogboeken om acties op AKS-resources te controleren om alle activiteiten en hun status weer te geven. Bepalen wie welke bewerkingen op de resources hebben uitgevoerd.

  • Schakel Domain Name System (DNS) query logging in door de gedocumenteerde configuratie toe te passen in uw aangepaste CoreDNS ConfigMap.

  • Controleer pogingen om toegang te krijgen tot gedeactiveerde referenties.

    Gebruikersverificatie voor AKS integreren met Microsoft Entra ID. Maak diagnostische instellingen voor Microsoft Entra-id en verzend de audit- en aanmeldingslogboeken naar een Log Analytics-werkruimte. Configureer in de Log Analytics-werkruimte waarschuwingen voor beveiligingsgebeurtenissen, zoals aanmeldingspogingen van gedeactiveerde accounts.

Best practice: Diagnostische gegevens inschakelen voor uw Azure-resources

  • Schakel Diagnostische gegevens van Azure in voor alle resources van uw workload om toegang te krijgen tot platformlogboeken die gedetailleerde diagnostische en controlegegevens bieden. U kunt deze logboeken opnemen in Log Analytics of een SIEM-oplossing zoals Microsoft Sentinel voor beveiligingsbewaking en waarschuwingen.

Bijdragers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteur:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen