Azure VM Disk Versleuteling Ingeschakeld

đź’Ľ Management Samenvatting

Azure Disk Encryption (ADE) zorgt ervoor dat zowel het besturingssysteem als de datadisks van virtuele machines volledig worden versleuteld met BitLocker (voor Windows) of dm-crypt (voor Linux). Hierdoor blijven gegevens beschermd, zelfs wanneer iemand fysieke of administratieve toegang krijgt tot onderliggende opslag. Voor productie-omgevingen in de publieke sector is dit een basisvoorwaarde om vertrouwelijke informatie veilig en conform wet- en regelgeving op te slaan.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
4u (tech: 3u)
Van toepassing op:
âś“ Azure Virtuele machines

Wanneer VM‑schijven niet zijn versleuteld, is het voor een aanvaller relatief eenvoudig om data te lezen door een snapshot te maken of de schijf aan een andere VM te koppelen. Back-ups en momentopnamen kunnen dan zonder aanvullende authenticatie worden gemount, wat rechtstreeks kan leiden tot datalekken, schendingen van de AVG en niet‑naleving van normen als NIS2 en de BIO. Door Azure Disk Encryption in te schakelen worden zowel de OS‑schijf als alle datadisks versleuteld, worden de versleutelingssleutels veilig beheerd in een Key Vault en zijn ook snapshots en back‑ups versleuteld opgeslagen. Dit verkleint de impact van diefstal, misbruik van beheerdersrechten en fouten in toegangsbeheer aanzienlijk.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Compute

Implementatie

Het implementeren van ADE bestaat in de praktijk uit een aantal gestructureerde stappen. U configureert eerst een Key Vault met de juiste beveiligingsinstellingen en, indien nodig, klantbeheerde sleutels. Vervolgens schakelt u de systeem‑beheerde identiteit van de VM in en kent u deze identiteit de minimale benodigde machtigingen toe op de Key Vault. Daarna activeert u de diskversleuteling voor de VM (via portal, PowerShell, CLI of policy) en controleert u de status met bijvoorbeeld de cmdlet "Get-AzVmDiskEncryptionStatus". Tijdens de eerste versleuteling is een herstart van de VM noodzakelijk; de prestatie‑impact is in de meeste scenario’s beperkt en de functionaliteit is zonder extra licentiekosten beschikbaar.

Vereisten

  1. Er is een of meer Azure‑virtuele machines beschikbaar (Windows of Linux) die u in productie of test wilt beschermen met schijfversleuteling, bij voorkeur binnen een gestructureerde resourcegroep en abonnementsstructuur.
  2. Er is een Azure Key Vault ingericht in dezelfde regio en tenant als de virtuele machines, met passende toegangsbeperkingen en logging zodat sleutels veilig kunnen worden beheerd en auditbaar zijn.
  3. De betrokken virtuele machines beschikken over een systeem‑beheerde identiteit of een andere beheerde identiteit, zodat toegang tot de Key Vault op een veilige en geautomatiseerde manier kan worden geregeld zonder vaste geheimen in scripts.
  4. Het is organisatorisch en technisch mogelijk om de VM eenmalig te herstarten tijdens de initiële versleuteling, bijvoorbeeld binnen een gepland onderhoudsvenster zodat de beschikbaarheid van diensten niet onverwacht wordt verstoord.

Implementatie

Gebruik PowerShell-script vm-disk-encryption-enabled.ps1 (functie Invoke-Implementation) – Voert de geautomatiseerde inrichting van Azure Disk Encryption voor geselecteerde virtuele machines uit, inclusief de noodzakelijke controles op randvoorwaarden..

  1. Richt een Azure Key Vault in met minimaal soft delete en eventuele purge protection, zodat versleutelingssleutels niet onbedoeld kunnen worden verwijderd en herstel mogelijk blijft bij operationele fouten.
  2. Schakel voor elke betrokken virtuele machine de systeem‑beheerde identiteit in, zodat de VM zichzelf bij Azure AD kan authenticeren zonder gebruik van statische geheimen of certificaten in configuratiebestanden.
  3. Configureer in de Key Vault een toegangsbeleid of roltoewijzing waarmee de beheerde identiteit alleen de strikt noodzakelijke machtigingen krijgt (bijvoorbeeld het gebruiken, maar niet beheren, van sleutels voor diskversleuteling).
  4. Activeer vervolgens Azure Disk Encryption voor de OS‑schijf en relevante datadisks van de VM via het portaal, PowerShell of Azure Policy, waarbij u de eerder ingerichte Key Vault en sleutelselectie gebruikt.
  5. Plan en voer een gecontroleerde herstart uit van de virtuele machine bij de eerste versleuteling, en monitor de status totdat alle schijven als volledig versleuteld worden gerapporteerd.
  6. Controleer ten slotte met tooling zoals "Get-AzVmDiskEncryptionStatus" en aanvullende rapportages of het beleid consequent is toegepast op alle in scope zijnde virtuele machines en documenteer de resultaten.

Compliance en Auditing

  1. Binnen de CIS‑richtlijnen voor Microsoft Azure vallen meerdere beheersmaatregelen onder het thema VM‑beveiliging, waarbij het versleutelen van virtuele disks een kernvereiste is om ongeautoriseerde toegang tot data via onderliggende opslag te voorkomen.
  2. In ISO 27001 sluit deze maatregel aan op beheersdoel A.10.1.1, waarin wordt verlangd dat organisaties passende cryptografische maatregelen treffen om de vertrouwelijkheid en integriteit van informatie in systemen te beschermen.
  3. De NIS2‑richtlijn, met name Artikel 21, verlangt dat essentiële en belangrijke entiteiten technische en organisatorische maatregelen treffen, waaronder versleuteling van gevoelige gegevens, zodat bij een incident de impact op diensten en burgers wordt beperkt.
  4. De Algemene Verordening Gegevensbescherming (AVG), met name Artikel 32, noemt pseudonimisering en versleuteling uitdrukkelijk als voorbeeld van passende beveiligingsmaatregelen voor de verwerking van persoonsgegevens in cloud‑omgevingen.
  5. De Nederlandse BIO‑norm stelt onder thema 10.01 aanvullende eisen aan bescherming van informatie in rust; het structureel toepassen en aantoonbaar monitoren van schijfversleuteling op Azure‑VM’s helpt direct bij het voldoen aan deze verplichtingen en het aantonen daarvan richting interne en externe auditors.

Monitoring

Gebruik PowerShell-script vm-disk-encryption-enabled.ps1 (functie Invoke-Monitoring) – Voert periodieke controles uit op de versleutelingsstatus van VM‑schijven, zodat afwijkingen of nieuwe onversleutelde resources snel zichtbaar worden voor beheerteams..

Remediatie

Gebruik PowerShell-script vm-disk-encryption-enabled.ps1 (functie Invoke-Remediation) – Herstelt automatische of handmatig geconstateerde afwijkingen, bijvoorbeeld door versleuteling alsnog af te dwingen op niet‑conforme virtuele machines binnen de beheerde scope..

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
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS VM Disk Encryption Enabled .DESCRIPTION CIS Azure Foundations Benchmark - Control 7.4 Controleert of Azure Disk Encryption is ingeschakeld op VMs. .NOTES Filename: vm-disk-encryption-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 7.4 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Compute [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "VM Disk Encryption Enabled" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $vms = Get-AzVM -Status -ErrorAction SilentlyContinue $result = @{ TotalVMs = $vms.Count; EncryptionEnabled = 0 } foreach ($vm in $vms) { $vmDetail = Get-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name if ($vmDetail.StorageProfile.OsDisk.EncryptionSettings.Enabled) { $result.EncryptionEnabled++ } } return $result } try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total VMs: $($r.TotalVMs)" -ForegroundColor White Write-Host "Encryption Enabled: $($r.EncryptionEnabled)" -ForegroundColor $(if ($r.EncryptionEnabled -eq $r.TotalVMs) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nDisk Encryption: $($r.EncryptionEnabled)/$($r.TotalVMs) VMs" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige configuratie status #> [CmdletBinding()] param() $Monitoring = $true try { Connect-RequiredServices if ($Monitoring) { $r = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Total VMs: $($r.TotalVMs)" -ForegroundColor White Write-Host "Encryption Enabled: $($r.EncryptionEnabled)" -ForegroundColor $(if ($r.EncryptionEnabled -eq $r.TotalVMs) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nDisk Encryption: $($r.EncryptionEnabled)/$($r.TotalVMs) VMs" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de configuratie naar de gewenste staat .DESCRIPTION Dit is een monitoring-only control, remediation delegeert naar monitoring #> [CmdletBinding()] param() Write-Host "[INFO] Dit is een monitoring-only control" -ForegroundColor Yellow Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
High: Hoog risico: bij diefstal of misbruik van onderliggende opslag zijn alle gegevens op de VM‑schijven leesbaar, snapshots en back‑ups blijven onversleuteld beschikbaar en de organisatie loopt een aanzienlijk risico op AVG‑overtredingen, reputatieschade en hoge herstel- en boetekosten.

Management Samenvatting

Schakel Azure Disk Encryption in voor alle productie‑VM’s zodat OS‑ en datadisks standaard zijn versleuteld met BitLocker of dm‑crypt, met sleutels die veilig worden beheerd in een Azure Key Vault. De eerste implementatie kost beperkt tijd (ongeveer drie tot vier uur voor een kleine omgeving) en vereist een gecontroleerde herstart, maar levert een structurele risicoreductie op en ondersteunt aantoonbare naleving van CIS, AVG, BIO en NIS2. Voor omgevingen in de publieke sector is dit een basismaatregel die niet mag ontbreken.