Key Vault Soft-Delete Ingeschakeld

💼 Management Samenvatting

Soft-delete in Azure Key Vault creëert een 90 dagen durende veiligheidsbuffer waarbinnen verwijderde sleutels, geheimen en certificaten eenvoudig kunnen worden teruggezet, zodat een menselijke fout of een kwaadwillende actie niet direct uitmondt in langdurige uitval van vitale diensten of in onherstelbaar verlies van versleutelde gegevens.

Aanbeveling
Zorg dat iedere Key Vault aantoonbaar soft-delete geactiveerd heeft en leg vast wie verantwoordelijk is voor de periodieke controle.
Risico zonder
High
Risk Score
8/10
Implementatie
1u (tech: 0.5u)
Van toepassing op:
Azure Key Vault

Wanneer een beheerdersfout ertoe leidt dat een productiesleutel of verbindingsgeheim verdwijnt, stopt een keten van bedrijfskritische processen: databases kunnen niet langer worden ontsleuteld, automatiseringsscripten vallen stil en certificaten die uit TLS-configuraties verdwijnen veroorzaken onmiddellijk onbereikbare websites en API’s. In scenario’s waarin een insider of aanvaller bewust objecten verwijdert, ontstaat bovendien een audit- en aansprakelijkheidsvraagstuk omdat niet meer is te reconstrueren wat er precies is verdwenen. Soft-delete biedt een tweevoudige vangnetconstructie: verwijderde objecten blijven zichtbaar in een speciale status, inclusief tijdstempels en uitvoerende identiteiten, én zij kunnen binnen het retentievenster met één opdracht worden hersteld. Voor Nederlandse overheidsorganisaties betekent dit dat een incident zich beperkt tot minuten, dat herstel binnen contractuele dienstniveaus blijft en dat de BIO-eisen rond integriteit en beschikbaarheid aantoonbaar worden ingevuld zonder extra licentiekosten.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.KeyVault

Implementatie

Deze maatregel controleert of de eigenschap EnableSoftDelete op elke Key Vault is geactiveerd en handhaaft blijft. In een geactiveerde situatie verplaatst Azure ieder verwijderd object naar een soft-deleted toestand waarin het negentig dagen bewaard blijft, wordt de oorspronkelijke naam gereserveerd zodat er geen nieuwe kluis met hetzelfde label kan worden aangemaakt en kan herstel plaatsvinden via Azure Portal, PowerShell (bijvoorbeeld Restore-AzKeyVaultSecret) of Terraform. Na afloop van het venster voert Azure automatisch een definitieve purge uit, tenzij een gemachtigde beheerder zelf eerder een purge uitvoert. Soft-delete kan na activatie niet meer worden uitgeschakeld; combineren met purgebescherming biedt aanvullend zekerheidsniveau voor scenario’s waarin streng toezicht vereist is, zoals verkiezingssystemen of politieprocessen.

Vereisten

  1. Elke tenant moet minimaal één Azure Key Vault in de Standard- of Premium-laag beschikbaar hebben binnen hetzelfde compliance-domein als de werkbelasting, inclusief een toegewezen resourcegroep, beleidsregels voor tagging en een gedocumenteerde lifecycle. Deze basisvoorwaarde garandeert dat soft-delete niet alleen technisch kan worden ingeschakeld, maar ook dat de opslaglocatie onder centraal beheer valt, logging levert aan het centrale SIEM en dat versleutelingssleutels voor persoonsgegevens binnen de Nederlandse overheid nooit buiten het overeengekomen soevereiniteitsgebied worden gebracht.
  2. Toegang tot configuratie vereist een rol die de eigenschap EnableSoftDelete mag wijzigen, doorgaans Key Vault Contributor of hoger. Organisaties dienen dit te koppelen aan Just-in-Time toegangsverzoeken, Privileged Identity Management en het vier-ogen-principe. Documenteer wie de wijziging initieert, wie de goedkeuring verleent en hoe de wijziging wordt geverifieerd. Deze governance-voorwaarde voorkomt dat soft-delete per ongeluk wordt gedeactiveerd op een nieuw ingerichte kluis en ondersteunt audits waarbij moet worden aangetoond dat kritieke instellingen niet door onbevoegde accounts zijn aangepast.
  3. Voor kluizen die vóór 2020 zijn aangelegd is een eenmalige activatie noodzakelijk. Dat houdt in dat alle afhankelijkheden (zoals virtuele machines, database services en geheimverzamelingen) in kaart worden gebracht, dat er een wijzigingsvenster met terugvalplan is en dat de beheerder controleert of automatische scripts geen foutmelding geven nadat de eigenschap is gewijzigd. Leg vervolgens vast in het configuratieregister dat soft-delete actief is en dat uitschakeling technisch onmogelijk is, zodat toekomstige projectteams de zekerheid hebben dat zij op deze bescherming kunnen vertrouwen.
  4. Herstelprocedures moeten in runbooks worden beschreven, getest en periodiek worden geoefend. Een volledige beschrijving omvat het identificeren van de verantwoordelijke functionaris, de commando’s voor zowel geheimen als certificaten, de bewaartermijnen en de besluitvorming rondom het wel of niet permanent verwijderen. Neem scenario’s op waarin een gemeentelijke dienst een certificaat verwijdert tijdens een spoedwijziging of waarin een kwaadwillende contractor sleutels probeert te wissen; beschrijf stap voor stap hoe monitoring de gebeurtenis detecteert, hoe herstel binnen vijf minuten plaatsvindt en welke rapportage naar het CISO-office volgt. Zo wordt soft-delete een integraal onderdeel van de bedrijfscontinuïteit.

Implementatie

Gebruik PowerShell-script key-vault-soft-delete-enabled.ps1 (functie Invoke-Implementation) – Het implementatiescript automatiseert het controleren en inschakelen van soft-delete op alle geselecteerde abonnementen, past tagging toe voor traceerbaarheid en logt elke wijziging naar het centrale logboek zodat auditors exact kunnen zien wanneer welke kluis is aangepast..

Gebruik PowerShell-script key-vault-soft-delete-enabled.ps1 (functie Invoke-Monitoring) – De monitoringfunctie van hetzelfde script draait dagelijks in een geautomatiseerde runbook en levert een CSV-output met alle kluizen, de huidige soft-delete status en eventuele afwijkingen, zodat afwijkingen sneller dan de afgesproken vijf minuten kunnen worden geëscaleerd..

Een succesvolle implementatie combineert configuratie, documentatie en gecontroleerde wijzigingsvoering. Start daarom met een volledige inventarisatie van alle Key Vaults per abonnement, inclusief het onderscheid tussen PaaS-oplossingen voor burgerportalen, interne applicaties en gedeelde diensten. Valideer vervolgens of aan alle randvoorwaarden uit de architectuurprincipes is voldaan: netwerktoegang beperkt tot beheerde endpoints, diagnostische logging verstuurd naar het Security Operations Center en toegepaste resource locks om per ongeluk verwijderen van de hele kluis te voorkomen. Pas daarna wordt soft-delete gecontroleerd en geactiveerd. Registreer iedere actie in het wijzigingsdossier, inclusief ticketnummer, verantwoordelijke beheerder en getekende goedkeuring van de CISO of diens gemachtigde. Sluit af met een testrapport waarin de behaalde resultaten, de resterende risico’s en de opvolging worden beschreven, zodat de lijnorganisatie exact weet wat er van hen wordt verwacht.

  1. Voor nieuwe Key Vaults die na 2020 zijn ingericht verifieer je tijdens de oplevercontrole of soft-delete daadwerkelijk actief is gebleven nadat beleid, diagnostische instellingen en toegangsbeperkingen zijn toegepast. Noteer in het acceptatierapport dat Azure dit standaard inschakelt, maar bevestig met objectieve bewijsvoering (bijvoorbeeld portal-screenshot of PowerShell-output) dat niemand het alsnog heeft geprobeerd uit te schakelen.
  2. Legacykluizen vormen het grootste risico omdat de standaard daar niet automatisch is afgedwongen. Neem daarom de tijd om per kluis de afhankelijkheden en contractuele verplichtingen te identificeren, plan een wijzigingsvenster waarin minimaal één functioneel beheerder aanwezig is en voer eerst een dry-run uit in een testabonnement. Pas nadat de stakeholders groen licht geven, wordt de eigenschap daadwerkelijk gewijzigd.
  3. Gebruik PowerShell om de huidige status vast te leggen met het commando Get-AzKeyVault -VaultName | Select-Object VaultName, EnableSoftDelete, SoftDeleteRetentionInDays. Door deze gegevens als CSV op te slaan ontstaat een herleidbaar dossier waarmee auditors kunnen vaststellen dat alle kluizen onder hetzelfde beleid vallen.
  4. Wanneer een kluis nog niet aan de eis voldoet, voer dan Update-AzKeyVault -VaultName -EnableSoftDelete $true -SoftDeleteRetentionInDays 90 uit. Controleer meteen of het commando zonder fouten is afgerond, of Azure Policy geen conflict meldt en of automatismen zoals Terraform state files zijn bijgewerkt zodat er geen drift optreedt.
  5. Leg vast dat soft-delete na activatie onomkeerbaar is en communiceer dit nadrukkelijk naar ontwikkelteams en leveranciers. Hiermee voorkom je onterechte verzoeken om het mechanisme uit te schakelen voor troubleshooting en versterk je het normatieve karakter van deze maatregel binnen de gehele organisatie.
  6. Voer een volledige controle uit over alle abonnementen met het aangeleverde script (parameter -monitoring) en publiceer de resultaten in het centrale risico-dashboard. Combineer de uitkomst met Azure Resource Graph zodat je realtime inzicht hebt in nieuwe kluizen en onmiddellijk kunt reageren mocht een projectteam buiten het standaardproces om een kluis inrichten.
  7. Gebruik het monitoringscript daarnaast in een geautomatiseerde GitHub Actions- of Azure Automation-runbook. Laat het resultaat een ServiceNow-ticket of Teams-melding genereren wanneer er een kluis opduikt zonder soft-delete, zodat opvolging nooit afhankelijk is van toevallig handmatig toezicht.
  8. Definieer een hersteltestscenario waarin een testgeheim wordt aangemaakt, verwijderd en binnen vijf minuten succesvol wordt teruggezet. Beschrijf welke logging wordt gecontroleerd, wie de opdracht geeft om te herstellen en hoe het incidentrapport wordt gedeeld met de Chief Information Security Officer.
  9. Voer de verwijderingsactie gecontroleerd uit via Remove-AzKeyVaultSecret -VaultName -Name SoftDeleteDemo en valideer dat het object zichtbaar is in de InRemovedState. Documenteer de gebruikte tijdstempels en de reactie van monitoring zodat duidelijk is dat detectie binnen de afspraken plaatsvindt.
  10. Herstel het object met Undo-AzKeyVaultSecretRemoval en bevestig dat de applicatie die van dit geheim afhankelijk is geen storing ervaart. Gebruik de gelegenheid om operationele procedures, notificaties richting dienstverleners en de lessons learned uit de oefening vast te leggen.
  11. Sluit de implementatie af met een samenvattend rapport waarin alle bevindingen, uitgevoerde commando’s, screenshots en goedkeuringen zijn opgenomen. Dit document vormt het formele bewijs dat de maatregel is geïmplementeerd en ondersteunt toekomstige herbeoordelingen.
  12. Plan onmiddellijk na de implementatie een periodieke reviewfrequentie (bijvoorbeeld elk kwartaal) zodat nieuwe projecten automatisch worden meegenomen. Beschrijf binnen het kwaliteitsmanagementsysteem hoe wijzigingsverzoeken, sleutelrotaties en noodscenario’s altijd de soft-delete eis blijven respecteren.

monitoring

Gebruik PowerShell-script key-vault-soft-delete-enabled.ps1 (functie Invoke-Monitoring) – Gebruik deze functie in een geplande runbook zodat dagelijks wordt gecontroleerd of nieuwe of gewijzigde kluizen nog steeds voldoen; de uitvoer wordt naar Log Analytics of Sentinel verstuurd en vormt de bron voor automatische meldingen aan het SOC..

Effectieve monitoring draait niet alleen om het constateren van een afwijking, maar ook om het vastleggen van context en het sneller kunnen reageren dan de aanvaller. Richt daarom een keten in waarin Azure Policy non-compliant resources markeert, Azure Monitor een waarschuwing verstuurt en het Security Operations Center direct het herstelproces start. Documenteer de responstijden, de escalatiepaden en de lessons learned zodat de maatregel onderdeel wordt van de continue verbetercyclus onder de BIO. Combineer deze signalen met operationele dashboards voor sleutelrotatie en lifecyclemanagement, zodat één blik volstaat om te bepalen of de tenant nog volledig wordt beschermd. Vergeet niet om monitoringconfiguraties te testen bij elke wijziging van een runbook, zodat foutief aangepaste rechten of service principals niet alsnog leiden tot blinde vlekken.

  1. Zorg dat diagnostische instellingen alle KeyVaultAuditEvent- en KeyVaultAccessEvent-categorieën naar een centraal Log Analytics-werkruimte sturen. Alleen dan zie je wie een object heeft verwijderd, welk IP-adres is gebruikt en of een geautomatiseerd proces betrokken was. Combineer deze logging met een Microsoft Sentinel-huntingquery die meteen de Impact en de betrokken applicaties rapporteert.
  2. Stel waarschuwingen in op ongeplande verwijderingen en escalatie naar het SOC. Gebruik een drempelwaarde van één event per uur, omdat zelfs een enkele verwijdering van een productiesleutel al kritiek kan zijn. Voeg context toe zoals resourcegroep, gevoelige dataclassificatie en eigenaar zodat de analist weet wie onmiddellijk gebeld moet worden.
  3. Voer een periodieke review van de lijst met soft-deleted objecten uit en laat deze controle vastleggen in een kwartaalrapport. Koppel het rapport aan het Change Advisory Board-proces zodat duidelijk is welke verwijderingen gepland waren, welke oefeningen betroffen en welke onverwachts optraden. Dit voorkomt dat vergeten objecten na negentig dagen alsnog verdwijnen.
  4. Toets elk kwartaal het herstel-SLA door een oefening te plannen waarin detectie, communicatie, herstel en rapportage worden doorlopen. Meet de doorlooptijd van iedere stap, identificeer bottlenecks (bijvoorbeeld trage goedkeuringen) en leg verbeteracties vast zodat de organisatie aantoonbaar leert van de oefening.
  5. Combineer soft-delete altijd met purgebescherming op kluizen die sleutels bevatten voor persoonsgegevens met hoge impact of voor nationale vitale processen. Monitoring moet een afwijking signaleren zodra purgebescherming wordt uitgezet of zodra iemand een purge-actie start, omdat in dat scenario de soft-delete buffer onmiddellijk kan verdwijnen.

Compliance en Auditing

Soft-delete vormt een harde nalevingseis binnen vrijwel alle relevante normenkaders voor de Nederlandse overheid. Het CIS Azure Foundations Benchmark v3.0.0 control 8.11 schrijft expliciet voor dat elke Key Vault deze functionaliteit moet activeren, omdat herstelmogelijkheden anders ontbreken. De Baseline Informatiebeveiliging Overheid (BIO) verbindt dit aan thema 10.01, waarin van bestuursorganen wordt verwacht dat zij cryptografische middelen zodanig beheren dat sleutels beschikbaar blijven gedurende de volledige levenscyclus. Zonder soft-delete kan een auditor direct constateren dat er geen aantoonbare terugvaloptie bestaat, waarmee niet alleen het thema beschikbaarheid maar ook integriteit wordt geraakt. ISO 27001:2022 control A.8.24 benadrukt eveneens het belang van lifecyclemanagement voor cryptografische sleutels. Tijdens certificeringsaudits is het gebruikelijk dat de auditor steekproefsgewijs verwijderde objecten opvraagt. Alleen met soft-delete kan je laten zien dat de organisatie herleidbare logging heeft, dat autorisaties zijn vastgelegd en dat herstel binnen de afgesproken termijnen kan plaatsvinden. NIS2 Artikel 21 vereist dat aanbieders van essentiële diensten doeltreffende technische maatregelen implementeren om de continuïteit van netwerk- en informatiesystemen te waarborgen. Voor cloudgebaseerde sleutelcontainers betekent dit dat het verlies van een sleutel of certificaat niet mag leiden tot langdurige verstoring. Soft-delete levert daarvoor het technisch bewijs. Daarnaast vragen interne controlekaders, zoals het Rijksbrede Normenkader Informatiebeveiliging, om aantoonbaarheid. Dat houdt in dat je niet alleen beleid nodig hebt, maar ook logbestanden, rapportages en uitgevoerde tests. Neem daarom screenshots van de portalinstelling, sla PowerShell-uitvoer op in een onveranderbaar archief en voeg de kwartaalreviews toe aan het auditdossier. Wanneer de Algemene Rekenkamer of een gemeentelijke accountant onderzoek doet naar de beveiliging van burgergegevens, kun je hiermee sneller laten zien dat cryptografische sleutels structureel beschermd zijn. Tot slot helpt de maatregel bij AVG-rapportages: soft-delete ondersteunt het herstel van persoonsgegevens die tijdelijk onbereikbaar zijn geraakt door een fout, zodat de meldplicht datalekken mogelijk niet van toepassing is. Het is dus niet slechts een technische finesse, maar een directe invulling van wettelijke zorgplichten.

Remediatie

Gebruik PowerShell-script key-vault-soft-delete-enabled.ps1 (functie Invoke-Remediation) – De remediatiefunctie schakelt soft-delete onmiddellijk in op kluizen die als afwijking worden gevonden, voert een hersteltest uit en registreert de wijzigingen inclusief ticketnummer, zodat zowel technische als auditvereisten worden ingevuld..

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 Key Vault Soft Delete Enabled .DESCRIPTION CIS Azure Foundations Benchmark - Control 8.11 Controleert of soft delete is ingeschakeld voor Key Vaults. .NOTES Filename: key-vault-soft-delete-enabled.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 8.11 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.KeyVault [CmdletBinding()] param([Parameter()][switch]$Monitoring) $ErrorActionPreference = 'Stop' $PolicyName = "Key Vault Soft Delete Enabled" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-Compliance { $vaults = Get-AzKeyVault -ErrorAction SilentlyContinue $result = @{ TotalVaults = $vaults.Count; WithSoftDelete = 0 } foreach ($vault in $vaults) { $vaultDetail = Get-AzKeyVault -VaultName $vault.VaultName -ErrorAction SilentlyContinue if ($vaultDetail.EnableSoftDelete) { $result.WithSoftDelete++ } } 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 Key Vaults: $($r.TotalVaults)" -ForegroundColor White Write-Host "With Soft-Delete: $($r.WithSoftDelete)" -ForegroundColor $(if ($r.WithSoftDelete -eq $r.TotalVaults) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nSoft-Delete: $($r.WithSoftDelete)/$($r.TotalVaults) vaults" } } 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 Key Vaults: $($r.TotalVaults)" -ForegroundColor White Write-Host "With Soft-Delete: $($r.WithSoftDelete)" -ForegroundColor $(if ($r.WithSoftDelete -eq $r.TotalVaults) { 'Green' } else { 'Yellow' }) } else { $r = Test-Compliance Write-Host "`nSoft-Delete: $($r.WithSoftDelete)/$($r.TotalVaults) vaults" } } 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: Zonder soft-delete gaan verwijderde sleutels en geheimen definitief verloren, waardoor versleutelde gegevens niet meer toegankelijk zijn, certificaten niet kunnen worden vernieuwd en bedrijfskritische applicaties abrupt stilvallen. Herstel is dan alleen mogelijk via dure noodprocedures of helemaal niet, wat direct leidt tot AVG-meldingen en niet-naleving van BIO, CIS en NIS2.

Management Samenvatting

Soft-delete biedt een gratis herstelvenster van negentig dagen, levert het bewijs voor audits en voorkomt catastrofale uitval na een menselijke fout of sabotage. Activeer het op legacykluizen, controleer nieuwe kluizen automatisch en test elk kwartaal het herstelproces.