Azure Policy Add-on Ingeschakeld Voor AKS-clusters

💼 Management Samenvatting

De Azure Policy add-on voor Azure Kubernetes Service (AKS) zorgt ervoor dat Kubernetes-clusters consistent worden afgedwongen tegen centrale governance- en beveiligingsregels, zonder dat elk cluster afzonderlijk handmatig moet worden geconfigureerd.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
100u (tech: 60u)
Van toepassing op:
Azure
Azure Kubernetes Service
Containerized Workloads

Zonder een actief afgedwongen beleid op AKS lopen Nederlandse overheidsorganisaties het risico dat ontwikkelteams eigen configuraties kiezen die afwijken van de afgesproken beveiligingsbaseline. Dat leidt tot schaduw-IT, onnodige blootstelling van workloads aan internet, niet-geautoriseerde images of afwijkende netwerkconfiguraties. Bij incidenten is vervolgens vaak onduidelijk welke clusters wél en niet aan de minimale veiligheids- en compliance-eisen voldoen, wat onderzoek, herstel en rapportage richting toezichthouders aanzienlijk bemoeilijkt.

PowerShell Modules Vereist
Primary API: Azure Resource Manager (ARM)
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Resources

Implementatie

Dit artikel beschrijft hoe de Azure Policy add-on voor AKS werkt, welke beleidsregels u minimaal moet toepassen voor overheidsscenario's en hoe u de implementatie structureel borgt. We behandelen de technische basis van de add-on, de koppeling met Azure Policy definities en initiatieven, de integratie met CI/CD en hoe u naleving monitort via Azure Monitor en Log Analytics. Tot slot krijgt u een concreet stappenplan om bestaande en nieuwe AKS-clusters onder governance te brengen, inclusief aandachtspunten voor BIO, NIS2 en interne architectuurrichtlijnen.

Vereisten, randvoorwaarden en architectuurkeuzes

Voor u de Azure Policy add-on op AKS-clusters activeert, is het belangrijk om de architectuur en randvoorwaarden helder te hebben. AKS is een beheerde Kubernetes-dienst waarbij Microsoft het control-plane beheert en u als organisatie verantwoordelijk bent voor de configuratie van worker-nodes, namespaces, netwerk en workloads. De Azure Policy add-on voegt hier een extra laag aan toe: beleidsregels die normaal op abonnements- of resourcegroepniveau gelden, worden doorvertaald naar Kubernetes-objecten binnen het cluster. Dit gebeurt via Gatekeeper (OPA) en de ingebouwde integratie met Azure Policy. Om dit goed te laten werken, moeten zowel het Azure-platform als de AKS-clusters aan minimale basisvereisten voldoen, zoals consistente tagging, een helder resource-organisatiemodel en een basisopzet voor logging en monitoring.

Vanuit platformperspectief is een solide governance-structuur met management groups, beleidsinitiatieven en RBAC-rolverdelingen het startpunt. Best practices schrijven voor dat u een aparte management group voor productieomgevingen hanteert, waarin alleen streng goedgekeurde beleidsinitiatieven worden toegewezen. Binnen deze structuur definieert u een set beleidsregels die specifiek gericht zijn op AKS, zoals het afdwingen van private clusters, het uitsluiten van niet-goedgekeurde containerregistries, het verplichten van TLS-versleuteling en het beperken van rechten binnen namespaces. Deze beleidsregels worden vervolgens gekoppeld aan een beleid-initiatief voor AKS, dat u toepast op de relevante management groups of abonnementen. Denk hierbij ook aan tagging-conventies en lokalisatie-eisen, zodat duidelijk is in welke juridische en organisatorische context een cluster opereert.

Aan de AKS-kant moet u rekening houden met de interactie tussen de Azure Policy add-on en de ontwikkelteams. De add-on werkt met admission controls: wanneer een ontwikkelaar een nieuwe workload wil uitrollen die niet aan het beleid voldoet, wordt de aanvraag geblokkeerd of gemarkeerd afhankelijk van het beleidseffect (deny, audit, deployIfNotExists). Dit betekent dat beleid dat te strikt of onduidelijk is, direct merkbaar is in de ontwikkelervaring en mogelijk tot verstoringen leidt. Het is daarom essentieel dat u beleid stapsgewijs invoert: start in audit-modus om inzicht te krijgen in huidige afwijkingen, communiceer duidelijk met teams over aankomende wijzigingen en schakel pas over naar deny-modus wanneer de grootste afwijkingen zijn aangepakt en er ondersteunende documentatie en voorbeelden beschikbaar zijn.

Daarnaast zijn er technische vereisten rond netwerk en identiteit. De meeste overheidsorganisaties gebruiken private AKS-clusters met Azure CNI, geïntegreerd in een hub-spoke-netwerkarchitectuur. De Azure Policy add-on moet in staat zijn om met Azure Policy en Log Analytics te communiceren; dat betekent dat uitgaand verkeer naar de benodigde Azure-endpoints is toegestaan en dat beheersidentiteiten de juiste rechten hebben op policy resources en het cluster. Gebruik bij voorkeur managed identities in plaats van service principals, zodat geheimen niet in scripts of configuraties hoeven te worden opgeslagen. Leg in architectuurdocumentatie vast welke identiteiten waarvoor verantwoordelijk zijn en hoe rotatie en toegangsbeheer zijn geregeld, zodat dit bij audits eenvoudig kan worden aangetoond.

Implementatie van de Azure Policy add-on op AKS-clusters

De implementatie van de Azure Policy add-on begint met het in kaart brengen van alle bestaande AKS-clusters binnen de tenant. Gebruik hiervoor een combinatie van Azure Resource Graph en PowerShell- of CLI-scripts om clusters per abonnement, omgeving en gevoeligheidsniveau te inventariseren. Documenteer per cluster onder meer de naam, locatie, gebruikte Kubernetes-versie, type netwerkconfiguratie en gekoppelde Log Analytics-werkruimte. Dit vormt de basis voor een gefaseerde uitrol waarin u eerst niet-productie, daarna minder kritieke productieomgevingen en tot slot de meest kritieke clusters onder beleid brengt. Zorg dat deze inventarisatie is geborgd in het centrale CMDB- of cloud management proces, zodat nieuwe clusters automatisch worden meegenomen in toekomstige controles.

Vervolgens selecteert u een set Azure Policy definities die specifiek gericht zijn op AKS en Kubernetes. Microsoft biedt hiervoor kant-en-klare initiatieven, zoals de AKS-baseline policies, maar voor Nederlandse overheidscontext is vaak maatwerk nodig. Denk aan eisen rond het verplicht gebruik van specifieke containerregistries (bijvoorbeeld ACR met private endpoints), het verbieden van privileged containers, het afdwingen van resource limits en requests, en het blokkeren van images van publieke Docker Hubs zonder security-scan. Combineer deze definities in een eigen organisatiebreed initiatief, bijvoorbeeld "AKS-Security-Baseline-NL-GOV", waarin u per policy het effect instelt op audit of deny. Documenteer per policy het doel, de relatie met BIO- of NIS2-eisen en de impact op bestaande workloads, zodat ontwikkelteams begrijpen waarom de maatregel wordt ingevoerd.

De daadwerkelijke activering van de Azure Policy add-on gebeurt door het toewijzen van het AKS-beleid-initiatief aan de relevante scope (management group, abonnement of resourcegroep) en door de add-on binnen de AKS-clusters te activeren. Dit kan handmatig via de Azure Portal, maar voor een beheersbare en reproduceerbare aanpak verdient Infrastructure as Code de voorkeur. Gebruik bijvoorbeeld Bicep, ARM-templates of Terraform om zowel het AKS-cluster als de policy-assignments vast te leggen, inclusief instellingen voor de add-on. Op die manier wordt het onmogelijk om buiten de IaC-pijplijn om een cluster zonder beleid aan te maken, en is bij elke wijziging inzichtelijk welke policyversie waar actief is. Integreer policy-validaties ook in uw CI/CD-pijplijnen, zodat nieuwe deployments al in de build- en testfasen worden gecontroleerd op compliance met de ingestelde beleidsregels.

Tot slot is communicatie en adoptie cruciaal voor een succesvolle implementatie. Organiseer technische sessies met ontwikkelteams waarin u uitlegt hoe de Azure Policy add-on werkt, welke foutmeldingen zij kunnen tegenkomen bij niet-conforme deployments en hoe zij templates en Helm charts kunnen aanpassen om aan de nieuwe eisen te voldoen. Bied voorbeeldmanifests en referentie-implementaties aan in een interne repository, zodat teams niet zelf het wiel hoeven uit te vinden. Richt een centraal supportkanaal in (bijvoorbeeld een Teams-kanaal) waar ontwikkelaars vragen kunnen stellen en waar wijzigingen in beleid tijdig worden aangekondigd. Door beleid niet alleen technisch maar ook organisatorisch te begeleiden, voorkomt u frustratie en waarborgt u dat beveiligings- en compliance-eisen daadwerkelijk worden omarmd in plaats van omzeild.

Compliance, BIO- en NIS2-koppelingen voor AKS-beleid

Voor Nederlandse overheidsorganisaties is het inschakelen van de Azure Policy add-on voor AKS niet alleen een technische maatregel, maar een direct hulpmiddel om te kunnen aantonen dat aan wettelijke en normatieve eisen wordt voldaan. Binnen de BIO gelden onder meer eisen rond configuratiebeheer, change management, logging en toegangsbeveiliging. Door beleidsregels op AKS-clusters af te dwingen, zorgt u ervoor dat configuraties niet willekeurig kunnen afwijken en dat centrale kaders, bijvoorbeeld rond netwerksegmentatie of gebruik van cryptografie, ook daadwerkelijk in de containerlaag worden toegepast. Dit sluit aan bij het principe van defense-in-depth: niet alleen de infrastructuur en PaaS-diensten zijn onder beleid gebracht, maar ook de Kubernetes-omgeving waarin applicaties draaien.

De NIS2-richtlijn legt nadruk op risicobeheer, continue verbetering en aantoonbaarheid. Voor organisaties die onder NIS2 vallen, is het essentieel om te kunnen laten zien dat kritieke IT- en OT-omgevingen onder een consistent beveiligingsregime vallen, inclusief cloud-native workloads. Met de Azure Policy add-on kunt u aantonen dat voor AKS-clusters expliciete maatregelen zijn genomen om ongeautoriseerde configuraties te voorkomen, standaardbeveiligingsinstellingen af te dwingen en afwijkingen centraal te detecteren. Rapportages uit Azure Policy, eventueel gecombineerd met gegevens uit Azure Monitor en Log Analytics, vormen daarbij belangrijke audit-evidence: ze tonen niet alleen de huidige compliancestatus, maar ook welke afwijkingen zijn geconstateerd, hoe deze zijn opgevolgd en welke trends zichtbaar zijn in de tijd.

Ook ISO 27001 en gerelateerde sectorale normen vragen om aantoonbaar beheer van technische configuraties en het voorkomen van ongeautoriseerde wijzigingen. Door AKS-clusters onder Azure Policy te brengen, past u configuration-as-code toe op de clusterlaag en borgt u dat wijzigingen alleen via gecontroleerde processen worden doorgevoerd. Dit maakt het eenvoudiger om in audits te laten zien hoe u wijzigingen autoriseert, test en uitrolt. Bovendien kan de Azure Policy add-on worden gecombineerd met andere governance-oplossingen, zoals Azure Blueprints of landing zone-architecturen, zodat het beheer van AKS-clusters onderdeel is van een breder cloud governance framework. Leg deze samenhang expliciet vast in uw architectuur- en normenkaders, zodat voor auditors en bestuurders helder is dat AKS niet wordt beschouwd als een losstaand experiment, maar als integraal onderdeel van de beveiligde cloudomgeving.

Monitoring van AKS Azure Policy compliance en afwijkingen

Gebruik PowerShell-script azure-policy-addon-enabled.ps1 (functie Invoke-Monitoring) – Controleert of AKS-clusters de Azure Policy add-on geactiveerd hebben en rapporteert de compliancestatus per cluster..

Zodra de Azure Policy add-on is geactiveerd, verschuift de aandacht van eenmalige implementatie naar doorlopende monitoring. Het is niet voldoende om alleen bij oplevering te verifiëren dat beleidsregels zijn ingeschakeld; u moet ook in de gaten houden of nieuwe clusters worden aangemaakt zonder de add-on, of bestaande clusters worden gewijzigd buiten de afgesproken governance om. Gebruik daarom een combinatie van Azure Policy compliance-rapportages, Log Analytics-query's en PowerShell-scripts om regelmatig een overzicht te genereren van alle AKS-clusters, de status van de Azure Policy add-on en eventuele afwijkingen. Deze overzichten kunnen bijvoorbeeld wekelijks of maandelijks worden gedeeld met de cloud governance board, de CISO-organisatie en de betrokken ontwikkelteams.

Naast de status van de add-on zelf is het belangrijk om te monitoren hoe vaak en waar beleidsregels daadwerkelijk ingrijpen. Policies met effect "deny" geven direct zichtbare fouten bij niet-conforme deployments, maar policies met effect "audit" zijn minstens zo belangrijk: zij signaleren waar de praktijk nog niet aansluit op de gewenste beveiligingsbaseline. Richt dashboards in waarin u per policy en per cluster kunt zien hoeveel resources niet voldoen, welke trends zichtbaar zijn en waar structurele verbeteringen nodig zijn. Combineer dit met alerts die afgaan wanneer bijvoorbeeld een nieuw cluster wordt aangetroffen zonder de vereiste add-on, of wanneer het aantal policy-violations in een specifieke omgeving plotseling oploopt. Zo ontstaat een living picture van de staat van governance rond AKS in plaats van een statische momentopname.

Remediatie van niet-conforme AKS-clusters en workloads

Gebruik PowerShell-script azure-policy-addon-enabled.ps1 (functie Invoke-Remediation) – Genereert een overzicht van AKS-clusters zonder Azure Policy add-on en geeft gerichte aanbevelingen voor remediatie..

Wanneer monitoring uitwijst dat er AKS-clusters bestaan zonder geactiveerde Azure Policy add-on, of wanneer clusters regelmatig policy-violations genereren, is gerichte remediatie noodzakelijk. De eerste stap is het prioriteren van deze clusters op basis van hun rol in de dienstverlening: productie-omgevingen met burgergerichte applicaties en gevoelige data krijgen altijd voorrang boven ontwikkel- en testomgevingen. Breng per cluster in kaart welke beleidsregels ontbreken of genegeerd worden, welke workloads hierdoor risico lopen en welke technische en organisatorische aanpassingen nodig zijn om de situatie te herstellen. Leg dit vast in een remediatieplan dat wordt afgestemd met de betreffende proceseigenaren en ontwikkelteams, zodat duidelijk is wie welke acties uitvoert en binnen welke termijn.

Technische remediatie bestaat vaak uit een combinatie van clusterconfiguratie, policy-aanpassingen en workloadherzieningen. Voor clusters zonder Azure Policy add-on activeert u de add-on en koppelt u ze aan het centrale AKS-beleid-initiatief. Voor clusters met veel violations onderzoekt u of de policies inhoudelijk moeten worden bijgesteld, of dat workloads moeten worden aangepast om aan de eisen te voldoen. Gebruik hiervoor staged uitrolstrategieën, zoals het eerst in audit-modus testen van nieuwe policies, het uitvoeren van proefdeployments in niet-productieomgevingen en het inzetten van canary deployments om de impact op productie stapsgewijs te beoordelen. Documenteer bij elke wijziging welke risico's worden weggenomen, welke rest-risico's overblijven en hoe deze worden geaccepteerd of verder gemitigeerd.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# .SYNOPSIS Controleert of de Azure Policy add-on is ingeschakeld voor AKS-clusters en geeft remediatie-advies. .DESCRIPTION Dit script inventariseert alle AKS-clusters in de opgegeven of alle abonnementen en controleert of de Azure Policy add-on voor Kubernetes is geactiveerd. In monitoringmodus wordt een rapport gegenereerd met de compliancestatus per cluster. In remediatiemodus wordt een overzicht gemaakt van niet-conforme clusters met concrete aanbevelingen voor vervolgacties. .NOTES Filename: azure-policy-addon-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Created: 2025-11-26 Last Modified: 2025-11-26 Version: 1.0 Related JSON: content/azure/aks/azure-policy-addon-enabled.json .LINK https://github.com/[org]/m365-tenant-best-practise .EXAMPLE .\azure-policy-addon-enabled.ps1 -Monitoring Voert een controle uit op alle toegankelijke abonnementen en toont de status van de Azure Policy add-on. .EXAMPLE .\azure-policy-addon-enabled.ps1 -Remediation Genereert een overzicht van AKS-clusters zonder Azure Policy add-on en aanbevelingen voor herstel. .EXAMPLE .\azure-policy-addon-enabled.ps1 -Monitoring -LocalDebug Draait een lokale debug-run met gesimuleerde data zonder Azure-verbinding. #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter()] [switch]$WhatIf, [Parameter()] [switch]$Monitoring, [Parameter()] [switch]$Remediation, [Parameter()] [string[]]$SubscriptionId, [Parameter()] [switch]$LocalDebug ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Azure Policy add-on voor AKS ingeschakeld" $PolicyDescription = "Controleert of AKS-clusters zijn voorzien van de Azure Policy add-on voor Kubernetes (Gatekeeper) zodat centrale governance afdwingbaar is." function Test-ModuleAvailability { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string[]]$ModuleName ) foreach ($name in $ModuleName) { if (-not (Get-Module -ListAvailable -Name $name)) { Write-Warning "Vereiste module '$name' is niet geïnstalleerd. Installeer deze module voor volledige functionaliteit." } } } function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met Azure als dat nog niet is gebeurd. #> [CmdletBinding()] param() if ($LocalDebug) { Write-Verbose "LocalDebug is ingeschakeld; er wordt geen Azure-verbinding opgezet." return } Test-ModuleAvailability -ModuleName @('Az.Accounts', 'Az.Resources') try { $context = Get-AzContext -ErrorAction SilentlyContinue if (-not $context) { Write-Host "Verbinding maken met Azure..." -ForegroundColor Yellow Connect-AzAccount -ErrorAction Stop | Out-Null } else { Write-Verbose "Reeds verbonden met Azure: $($context.Subscription.Name)" } } catch { Write-Error "Kon geen verbinding maken met Azure: $_" throw } } function Get-DebugAksClusterData { [CmdletBinding()] param() return @( [PSCustomObject]@{ SubscriptionId = "00000000-0000-0000-0000-000000000001" SubscriptionName = "DBG-Overheid-NonProd" ResourceGroupName = "rg-aks-nonprod" ClusterName = "aks-nonprod-01" Location = "westeurope" AzurePolicyEnabled = $true }, [PSCustomObject]@{ SubscriptionId = "00000000-0000-0000-0000-000000000002" SubscriptionName = "DBG-Overheid-Prod" ResourceGroupName = "rg-aks-prod" ClusterName = "aks-prod-01" Location = "westeurope" AzurePolicyEnabled = $false } ) } function Get-AksPolicyStatus { <# .SYNOPSIS Haalt alle AKS-clusters op en bepaalt of de Azure Policy add-on is ingeschakeld. .OUTPUTS PSCustomObject met cluster- en policyinformatie. #> [CmdletBinding()] param() if ($LocalDebug) { Write-Verbose "Gebruik van gesimuleerde AKS-data (LocalDebug)." return Get-DebugAksClusterData } Write-Verbose "Ophalen van AKS-clusters via Azure Resource Graph..." $query = @' resources | where type == "microsoft.containerservice/managedclusters" | project id, name, location, subscriptionId, resourceGroup, properties '@ $argParams = @{ Query = $query } if ($SubscriptionId) { $argParams['Subscription'] = $SubscriptionId } $clusters = Search-AzGraph @argParams $results = @() foreach ($cluster in $clusters) { $addonProfiles = $cluster.properties.addonProfiles $policyEnabled = $false if ($addonProfiles -and $addonProfiles.azurepolicy) { $policyEnabled = [bool]($addonProfiles.azurepolicy.enabled) } $results += [PSCustomObject]@{ SubscriptionId = $cluster.subscriptionId SubscriptionName = (Get-AzSubscription -SubscriptionId $cluster.subscriptionId -ErrorAction SilentlyContinue).Name ResourceGroupName = $cluster.resourceGroup ClusterName = $cluster.name Location = $cluster.location AzurePolicyEnabled = $policyEnabled } } return $results } function Test-Compliance { <# .SYNOPSIS Bepaalt de compliancestatus voor de Azure Policy add-on op AKS-clusters. .OUTPUTS PSCustomObject met samenvatting van de resultaten. #> [CmdletBinding()] param() $clusters = Get-AksPolicyStatus if (-not $clusters -or $clusters.Count -eq 0) { Write-Verbose "Geen AKS-clusters gevonden in de geselecteerde scope." return [PSCustomObject]@{ ScriptName = "azure-policy-addon-enabled" IsCompliant = $true Timestamp = Get-Date Details = "Er zijn geen AKS-clusters gevonden in de huidige scope." Recommendations = @() Clusters = @() } } $nonCompliant = $clusters | Where-Object { -not $_.AzurePolicyEnabled } $isCompliant = ($nonCompliant.Count -eq 0) $details = if ($isCompliant) { "Alle gevonden AKS-clusters hebben de Azure Policy add-on ingeschakeld." } else { "Een of meer AKS-clusters missen de Azure Policy add-on en voldoen niet aan de governancebaseline." } $recommendations = @() if (-not $isCompliant) { $recommendations += "Activeer de Azure Policy add-on op alle niet-conforme AKS-clusters." $recommendations += "Koppel de clusters aan een organisatiebreed AKS-beleid-initiatief." $recommendations += "Controleer Azure Policy compliance-rapportages en plan remediatie met de betrokken teams." } return [PSCustomObject]@{ ScriptName = "azure-policy-addon-enabled" IsCompliant = $isCompliant Timestamp = Get-Date Details = $details Recommendations = $recommendations Clusters = $clusters } } function Invoke-Monitoring { <# .SYNOPSIS Voert een monitoring-run uit en toont de status per AKS-cluster. #> [CmdletBinding()] param() Write-Host "`nMonitoring: $PolicyName" -ForegroundColor Yellow Write-Host "Beschrijving: $PolicyDescription" -ForegroundColor Yellow Write-Host "==============================================================" -ForegroundColor Yellow $result = Test-Compliance $clusters = $result.Clusters if ($clusters.Count -gt 0) { Write-Host "`nGevonden AKS-clusters:" -ForegroundColor Cyan foreach ($cluster in $clusters) { $statusColor = if ($cluster.AzurePolicyEnabled) { "Green" } else { "Red" } $statusText = if ($cluster.AzurePolicyEnabled) { "Azure Policy add-on: ingeschakeld" } else { "Azure Policy add-on: NIET ingeschakeld" } Write-Host ("- {0}/{1} ({2}) - {3}" -f $cluster.SubscriptionName, $cluster.ClusterName, $cluster.Location, $statusText) -ForegroundColor $statusColor } } else { Write-Host "`nGeen AKS-clusters gevonden in de huidige scope." -ForegroundColor Cyan } if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT - Alle AKS-clusters voldoen aan de eis voor Azure Policy add-on." -ForegroundColor Green } else { Write-Host "`n❌ NON-COMPLIANT - Eén of meer AKS-clusters missen de Azure Policy add-on." -ForegroundColor Red Write-Host "Aanbevolen acties:" -ForegroundColor Yellow foreach ($rec in $result.Recommendations) { Write-Host (" - {0}" -f $rec) -ForegroundColor Yellow } } return $result } function Invoke-Remediation { <# .SYNOPSIS Geeft een remediatie-overzicht voor niet-conforme AKS-clusters. #> [CmdletBinding()] param() Write-Host "`nRemediatie: $PolicyName" -ForegroundColor Yellow Write-Host "==============================================================" -ForegroundColor Yellow $result = Test-Compliance $clusters = $result.Clusters | Where-Object { -not $_.AzurePolicyEnabled } if (-not $clusters -or $clusters.Count -eq 0) { Write-Host "Alle AKS-clusters hebben de Azure Policy add-on ingeschakeld. Geen remediatie nodig." -ForegroundColor Green return $result } Write-Host "`nNiet-conforme AKS-clusters (zonder Azure Policy add-on):" -ForegroundColor Red foreach ($cluster in $clusters) { Write-Host ("- Subscription: {0}" -f $cluster.SubscriptionName) -ForegroundColor Red Write-Host (" ResourceGroup: {0}" -f $cluster.ResourceGroupName) -ForegroundColor Red Write-Host (" Cluster: {0}" -f $cluster.ClusterName) -ForegroundColor Red Write-Host (" Locatie: {0}" -f $cluster.Location) -ForegroundColor Red Write-Host "" } Write-Host "Aanbevolen vervolgstappen:" -ForegroundColor Yellow Write-Host "1. Beoordeel per cluster of de Azure Policy add-on direct kan worden geactiveerd." -ForegroundColor Yellow Write-Host "2. Leg de wijziging vast in uw changeproces en architectuurdocumentatie." -ForegroundColor Yellow Write-Host "3. Zorg dat de clusters zijn gekoppeld aan het centrale AKS-beleid-initiatief." -ForegroundColor Yellow if ($WhatIf) { Write-Host "`nWhatIf is ingeschakeld: er worden geen wijzigingen doorgevoerd; alleen een rapport is gegenereerd." -ForegroundColor Cyan } return $result } try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Script: azure-policy-addon-enabled" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { $result = Test-Compliance if ($result.IsCompliant) { Write-Host "`n✅ COMPLIANT" -ForegroundColor Green } else { Write-Host "`n❌ NON-COMPLIANT" -ForegroundColor Red Write-Host "Voer het script uit met -Monitoring of -Remediation voor meer details." -ForegroundColor Yellow } return $result } } catch { Write-Error "Er is een fout opgetreden in azure-policy-addon-enabled.ps1: $_" throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder Azure Policy add-on op AKS-clusters ontbreekt een centrale afdwinging van beveiligings- en governance-eisen. Ontwikkelteams kunnen dan onbewust configuraties toepassen die niet voldoen aan BIO, NIS2 en interne richtlijnen, wat leidt tot verhoogd risico op datalekken, verstoringen in dienstverlening en tekortschietende audittrail bij incidenten.

Management Samenvatting

Activeer de Azure Policy add-on op alle AKS-clusters en koppel deze aan een organisatiebreed AKS-beleid-initiatief. Zo borgt u dat containerworkloads voldoen aan de beveiligingsbaseline, dat afwijkingen centraal zichtbaar zijn en dat u richting toezichthouders aantoonbaar in control bent over Kubernetes-omgevingen in Azure.