Hardware Security Module (HSM) Configuratie In Azure

💼 Management Samenvatting

Hardware Security Modules (HSM's) vormen de hoogste beveiligingslaag voor cryptografische sleutelbeheer in cloudomgevingen. Voor Nederlandse overheidsorganisaties die werken met geclassificeerde gegevens, kritieke infrastructuur of workloads die voldoen aan strenge compliance-vereisten zoals FIPS 140-2 Level 2 en Level 3 certificering, is HSM-configuratie niet langer een optionele beveiligingsmaatregel maar een fundamentele vereiste voor het waarborgen van cryptografische integriteit en compliance met nationale en internationale beveiligingsstandaarden.

Aanbeveling
IMPLEMENTEER HSM-CONFIGURATIE
Risico zonder
High
Risk Score
9/10
Implementatie
60u (tech: 40u)
Van toepassing op:
Azure Key Vault Premium
Azure Managed HSM
Azure Dedicated HSM

Zonder adequate HSM-configuratie lopen organisaties aanzienlijke risico's wanneer cryptografische sleutels worden beheerd via software-gebaseerde oplossingen die kwetsbaar zijn voor verschillende aanvalsvectoren. Software-gebaseerde sleutels worden gegenereerd, opgeslagen en gebruikt binnen de host operating system of applicatieomgeving, waardoor zij blootgesteld zijn aan bedreigingen zoals malware, memory dumps, rootkits en insider threats. Deze kwetsbaarheden kunnen leiden tot compromittering van cryptografische sleutels, wat op zijn beurt kan resulteren in datalekken, compromittering van versleutelde gegevens, en niet-naleving van compliance-vereisten zoals vastgelegd in de Baseline Informatiebeveiliging Overheid (BIO), ISO 27001 en andere relevante wet- en regelgeving. Voor Nederlandse overheidsorganisaties die werken met geclassificeerde gegevens of kritieke infrastructuur is het gebruik van software-gebaseerde sleutels onacceptabel, omdat deze niet voldoen aan de vereisten voor hoogwaardige cryptografische beveiliging die worden gesteld door nationale beveiligingsautoriteiten. HSM's bieden een fysieke beveiligingslaag waarbij cryptografische sleutels nooit in software worden blootgesteld, maar worden gegenereerd, opgeslagen en gebruikt binnen speciaal gecertificeerde hardware die voldoet aan strenge beveiligingsstandaarden zoals FIPS 140-2 Level 2 en Level 3. Deze hardware-gebaseerde bescherming maakt HSM's essentieel voor organisaties die moeten voldoen aan compliance-vereisten die expliciet eisen dat cryptografische materialen worden beheerd via gecertificeerde hardware security modules.

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

Implementatie

Dit artikel beschrijft een complete implementatie van HSM-configuratie voor Azure-omgevingen, specifiek toegespitst op de context van Nederlandse overheidsorganisaties. Het raamwerk is gebaseerd op drie primaire HSM-oplossingen die beschikbaar zijn binnen Azure: Azure Key Vault Premium met HSM-backed keys, Azure Managed HSM voor volledige controle over HSM-clusters, en Azure Dedicated HSM voor organisaties die volledige fysieke controle over de hardware vereisen. Het artikel behandelt voor elke oplossing de architectuur, deployment procedures, toegangscontrole configuratie, netwerkisolatie, monitoring en compliance aspecten. Daarnaast wordt uitgelegd hoe HSM-configuratie aansluit bij post-quantum cryptografie-initiatieven, BIO-normen, ISO 27001 vereisten en Microsoft's cryptografische best practices. Het artikel biedt praktische implementatiegidsen, best practices, en concrete voorbeelden voor het configureren van HSM's voor verschillende use cases, van standaard encryptie tot geavanceerde scenario's zoals digitale handtekeningen, key escrow en high-availability HSM-clusters.

Vereisten en Voorkennis

Voordat organisaties HSM-configuratie kunnen implementeren in Azure-omgevingen, dienen zij te beschikken over een grondig begrip van cryptografische concepten, HSM-architectuur en de manier waarop hardware-gebaseerd key management werkt binnen cloudomgevingen. De implementatie vereist specifieke Azure-resources, toegangsrechten en technische kennis om de juiste configuratie te kunnen waarborgen. HSM-configuratie is een complex onderwerp dat kennis vereist van verschillende HSM-oplossingen, hun sterke en zwakke punten, en de manier waarop deze oplossingen kunnen worden geïmplementeerd en beheerd binnen Azure-services. Het begrijpen van de fundamentele concepten achter HSM-configuratie, zoals FIPS 140-2 certificering, HSM-clustering, key backup en recovery procedures, en de verschillen tussen software-gebaseerde en hardware-gebaseerde cryptografie, vormt de basis voor een succesvolle implementatie die voldoet aan beveiligings- en compliance-vereisten.

De primaire vereiste voor deze beveiligingsmaatregel is de aanwezigheid van een Azure-abonnement met toegang tot Azure Key Vault Premium tier, Azure Managed HSM of Azure Dedicated HSM, afhankelijk van de gekozen HSM-oplossing. Organisaties moeten beschikken over Azure-abonnementen met de juiste service tiers en toegangsrechten voor het configureren en beheren van HSM-resources. Het is belangrijk om te begrijpen dat niet alle Azure-regio's alle HSM-oplossingen ondersteunen: Azure Managed HSM is bijvoorbeeld alleen beschikbaar in specifieke regio's, terwijl Azure Dedicated HSM een nog beperktere beschikbaarheid heeft. Organisaties moeten daarom eerst inventariseren welke HSM-oplossingen beschikbaar zijn in hun primaire Azure-regio's voordat zij een HSM-configuratiestrategie opstellen. Daarnaast moeten organisaties rekening houden met de kostenimplicaties: HSM-oplossingen zijn aanzienlijk duurder dan software-gebaseerde alternatieven, waarbij Azure Managed HSM maandelijkse kosten genereert per HSM-cluster en Azure Dedicated HSM nog hogere kosten heeft voor fysieke hardware. Deze kosten moeten worden afgewogen tegen de beveiligings- en compliance-voordelen die HSM's bieden.

Voor het uitvoeren van HSM-configuratie- en beheertaken is toegang vereist tot de Azure Portal of Azure CLI, in combinatie met de juiste rolgebaseerde toegangscontrole machtigingen. Minimale vereiste rollen omvatten Key Vault Contributor voor het beheren van Key Vault Premium instanties met HSM-backed keys, Managed HSM Contributor voor het beheren van Azure Managed HSM clusters, en Dedicated HSM Contributor voor het beheren van Azure Dedicated HSM instanties. Daarnaast is het essentieel dat beheerders beschikken over kennis van Infrastructure as Code (IaC) tools zoals Azure Resource Manager templates, Bicep of Terraform voor geautomatiseerde HSM-configuratie, waarbij de Az.KeyVault en Az.Resources modules voor PowerShell of de bijbehorende Azure CLI extensies noodzakelijk zijn. De Azure Portal biedt een gebruiksvriendelijke grafische interface voor het configureren van HSM-instellingen, maar voor grootschalige omgevingen met meerdere HSM-clusters of voor organisaties die Infrastructure as Code gebruiken voor consistentie en herhaalbaarheid, is geautomatiseerde configuratie via templates essentieel voor efficiënt beheer.

Organisaties dienen te beschikken over een duidelijk overzicht van alle applicaties en services binnen hun omgeving die cryptografische sleutels gebruiken, inclusief welke applicaties momenteel gebruik maken van software-gebaseerde sleutels en welke applicaties kunnen worden gemigreerd naar HSM-backed keys. Deze inventarisatie is cruciaal omdat de migratie naar HSM-backed keys impact kan hebben op bestaande workloads en mogelijk wijzigingen vereist in applicatiecode of configuratiebestanden. Bovendien moeten beheerders rekening houden met de compatibiliteit tussen verschillende HSM-oplossingen en de manier waarop applicaties en services met elkaar communiceren. Organisaties moeten begrijpen welke HSM-oplossingen worden ondersteund door hun applicaties en services, en hoe deze oplossingen kunnen worden geconfigureerd en beheerd. Het bijhouden van een accurate inventarisatie vereist regelmatige audits van alle applicaties en services, waarbij organisaties gebruik kunnen maken van Azure Resource Graph queries of geautomatiseerde inventarisatiescripts om alle services te identificeren die cryptografische sleutels gebruiken en die kunnen profiteren van HSM-configuratie.

Naast technische vereisten moeten organisaties ook beschikken over duidelijke procedures en documentatie voor het beheren van HSM-configuratie. Dit omvat het definiëren van verantwoordelijkheden voor verschillende rollen binnen de organisatie, het opstellen van procedures voor het upgraden van HSM-configuraties, het ontwikkelen van test- en validatieprocedures voor HSM-wijzigingen, en het implementeren van backup en recovery procedures voor HSM-clusters. Organisaties moeten ook rekening houden met de integratie van HSM-configuratie in hun bestaande security governance frameworks, waarbij HSM-instellingen worden opgenomen als onderdeel van standaard security baselines en compliance verificatieprocessen. Het is aanbevolen om HSM-configuratie te automatiseren via Infrastructure as Code oplossingen, waardoor nieuwe HSM-clusters automatisch worden geconfigureerd met de juiste beveiligingsinstellingen, ongeacht wie de HSM-cluster aanmaakt binnen de organisatie.

Voor organisaties die werken met gevoelige gegevens en strikte compliance vereisten, zoals Nederlandse overheidsorganisaties die moeten voldoen aan BIO normen, is het essentieel om te beschikken over gedetailleerde kennis van cryptografische best practices en HSM key management procedures. HSM-configuratie vormt een kritieke component van deze procedures, maar moet worden geïntegreerd in een breder encryption framework dat ook aandacht besteedt aan data classification, encryption at rest en in transit, en key recovery scenario's. Organisaties moeten begrijpen hoe HSM-configuratie zich verhoudt tot andere Azure beveiligingsfuncties, zoals Azure Key Vault voor key management, Azure Policy voor governance en compliance, en Azure Monitor voor logging en monitoring, om een complete beveiligingsstrategie te ontwikkelen die alle aspecten van cryptografisch beheer afdekt.

Implementatiestrategie en Best Practices

Gebruik PowerShell-script hsm-configuration.ps1 (functie Invoke-Implementation) – Valideert en implementeert HSM-configuratie controles.

De implementatie van HSM-configuratie in Azure begint met het selecteren van de juiste HSM-oplossing op basis van de specifieke behoeften van de organisatie, compliance-vereisten en operationele vereisten. Azure biedt drie primaire HSM-oplossingen: Azure Key Vault Premium met HSM-backed keys voor organisaties die een eenvoudige en kosteneffectieve HSM-oplossing nodig hebben, Azure Managed HSM voor organisaties die volledige controle over HSM-clusters vereisen zonder de complexiteit van fysieke hardware, en Azure Dedicated HSM voor organisaties die volledige fysieke controle over de hardware vereisen voor de meest strenge compliance-vereisten. De keuze tussen deze oplossingen hangt af van factoren zoals de gevoeligheid van de gegevens, de compliance-vereisten, de operationele voorkeuren, en de beschikbaarheid van resources voor beheer en onderhoud.

Azure Key Vault Premium met HSM-backed keys is de meest toegankelijke HSM-oplossing en is geschikt voor de meeste organisaties die HSM-bescherming nodig hebben zonder de complexiteit van dedicated HSM-clusters. Deze oplossing maakt gebruik van FIPS 140-2 Level 2 gecertificeerde HSM's die worden beheerd door Microsoft, waarbij cryptografische sleutels worden gegenereerd en opgeslagen binnen de HSM-hardware zonder dat de sleutels ooit in software worden blootgesteld. De implementatie begint met het upgraden van bestaande Key Vault instanties naar Premium tier, gevolgd door het configureren van HSM-backed keys in plaats van software-gebaseerde sleutels. Voor nieuwe Key Vault instanties kunnen HSM-backed keys direct worden geconfigureerd tijdens de creatie, waarbij organisaties kunnen kiezen tussen verschillende key types zoals RSA, ECC en post-quantum cryptografische algoritmen. De configuratie omvat ook het instellen van toegangscontrole via RBAC of access policies, netwerkisolatie via private endpoints of firewallregels, en logging en monitoring voor audit doeleinden.

Azure Managed HSM biedt een volledig beheerde HSM-service die organisaties volledige controle geeft over HSM-clusters zonder de complexiteit van fysieke hardware. Deze oplossing maakt gebruik van FIPS 140-2 Level 3 gecertificeerde HSM's die worden beheerd door Microsoft, waarbij organisaties volledige controle hebben over key management operaties, toegangscontrole en netwerkconfiguratie. De implementatie begint met het deployen van een Managed HSM cluster in de gewenste Azure-regio, gevolgd door het configureren van toegangscontrole via Managed HSM RBAC, netwerkisolatie via private endpoints, en logging en monitoring. Managed HSM ondersteunt ook geavanceerde functies zoals HSM-clustering voor high availability, key backup en recovery, en integratie met Azure Key Vault voor een uniforme key management ervaring. De configuratie vereist specifieke kennis van Managed HSM management APIs en RBAC-modellen, waarbij organisaties moeten beschikken over expertise in HSM-cluster beheer en key lifecycle management.

Azure Dedicated HSM biedt de hoogste mate van controle en is geschikt voor organisaties die volledige fysieke controle over de hardware vereisen voor de meest strenge compliance-vereisten. Deze oplossing maakt gebruik van fysieke HSM-apparaten die worden gehost in Azure-datacenters, waarbij organisaties volledige controle hebben over de hardware, firmware en configuratie. De implementatie begint met het aanvragen van Azure Dedicated HSM instanties via de Azure-portal of Azure CLI, gevolgd door het configureren van de fysieke HSM-apparaten volgens de specificaties van de organisatie. Dedicated HSM vereist aanzienlijke expertise in HSM-hardware beheer, firmware configuratie en key lifecycle management, waarbij organisaties verantwoordelijk zijn voor het beheren van de hardware, het configureren van netwerkconnectiviteit, en het implementeren van backup en recovery procedures. Deze oplossing is het meest geschikt voor organisaties met zeer strenge compliance-vereisten die expliciet eisen dat cryptografische materialen worden beheerd via fysieke hardware die volledig onder controle staat van de organisatie.

Ongeacht welke HSM-oplossing wordt gekozen, moeten organisaties aandacht besteden aan netwerkisolatie, toegangscontrole en monitoring. Netwerkisolatie wordt geïmplementeerd via Azure Private Link voor private endpoints, waarbij HSM-clusters alleen toegankelijk zijn via privénetwerken, of via firewallregels voor IP-whitelisting. Toegangscontrole wordt geïmplementeerd via RBAC voor Key Vault Premium en Managed HSM, of via access policies voor Key Vault Premium, waarbij organisaties het principe van least privilege moeten toepassen door gebruikers en services alleen de minimale toegang te geven die nodig is voor hun specifieke taken. Monitoring wordt geïmplementeerd via Azure Monitor voor logging en alerting, waarbij alle HSM-operaties worden vastgelegd voor audit doeleinden en waarschuwingen worden gegenereerd voor verdachte of ongebruikelijke activiteiten. Deze beveiligingsmaatregelen moeten worden gecombineerd met andere Azure beveiligingsfuncties zoals Azure Policy voor governance en compliance, en Azure Security Center voor threat detection en response, om een complete beveiligingsstrategie te ontwikkelen die alle aspecten van HSM-beheer afdekt.

Monitoring en Verificatie

Gebruik PowerShell-script hsm-configuration.ps1 (functie Invoke-Monitoring) – Monitort de status van alle HSM-configuratie controles.

Het monitoren van HSM-configuratie in Azure vormt een essentieel onderdeel van een robuust cryptografisch beveiligingsbeleid. Organisaties moeten regelmatig verificatie uitvoeren om te waarborgen dat alle HSM-clusters correct zijn geconfigureerd volgens beveiligingsbest practices, waarbij de focus ligt op zowel nieuw geconfigureerde als bestaande HSM-clusters die mogelijk configuratie-aanpassingen vereisen. Effectieve monitoring van HSM-configuratie vereist een proactieve aanpak waarbij organisaties niet alleen reageren op geïdentificeerde problemen, maar ook preventief controleren of nieuwe HSM-clusters voldoen aan de beveiligingsvereisten voordat ze in productie worden genomen. Dit betekent dat monitoring procedures moeten worden geïntegreerd in de volledige levenscyclus van HSM-beheer, van initiële configuratie tot continue operationele verificatie.

De verificatieprocedure begint met het inventariseren van alle HSM-clusters binnen de organisatie, waarbij beheerders zowel Key Vault Premium instanties met HSM-backed keys als Managed HSM clusters en Dedicated HSM instanties moeten identificeren. Voor elke HSM-cluster dient de configuratie te worden gecontroleerd via Azure Portal, Azure CLI of PowerShell, waarbij expliciet moet worden geverifieerd of essentiële beveiligingsinstellingen correct zijn geconfigureerd, zoals het gebruik van HSM-backed keys in plaats van software-gebaseerde sleutels, netwerkisolatie via private endpoints of firewallregels, toegangscontrole via RBAC of access policies, en logging en monitoring voor audit doeleinden. Het inventarisatieproces moet systematisch worden uitgevoerd voor alle Azure-abonnementen en resourcegroepen waar de organisatie toegang toe heeft, waarbij gebruik wordt gemaakt van Azure Resource Graph queries of geautomatiseerde inventarisatiescripts om een compleet overzicht te verkrijgen van alle HSM-clusters. Deze inventarisatie moet regelmatig worden herhaald, bij voorkeur wekelijks voor productieomgevingen, om ervoor te zorgen dat nieuwe HSM-clusters die zijn geconfigureerd tussen verificatiecycli ook worden gecontroleerd.

Geautomatiseerde monitoring scripts gebruiken de Azure Resource Manager API of HSM-specifieke management APIs om programmatisch de HSM-configuratiestatus te controleren voor alle HSM-clusters binnen een abonnement of resourcegroep. Deze scripts kunnen worden geïntegreerd in bestaande monitoring frameworks en compliance tooling, waardoor organisaties continu zicht hebben op de naleving van HSM-beveiligingsvereisten. Het is aanbevolen om wekelijkse verificaties uit te voeren voor productieomgevingen, waarbij eventuele afwijkingen direct worden geëscaleerd naar beveiligingsteams voor remediatie. Geavanceerde monitoring oplossingen kunnen ook gebruik maken van Azure Policy compliance evaluaties, die automatisch de HSM-configuratiestatus van alle HSM-clusters controleren en rapporten genereren die aangeven welke clusters niet voldoen aan de beveiligingsvereisten. Deze geautomatiseerde aanpak vermindert niet alleen de werklast voor beheerders, maar zorgt ook voor consistente en betrouwbare verificatieprocedures die niet afhankelijk zijn van handmatige interventie.

Naast het monitoren van de HSM-configuratie zelf, moeten organisaties ook aandacht besteden aan de operationele status en beschikbaarheid van HSM-clusters. Monitoring omvat tevens het bijhouden van HSM-operaties, zodat beheerders inzicht hebben in wanneer en door wie cryptografische sleutels worden gebruikt, welke operaties worden uitgevoerd en of er verdachte of ongebruikelijke patronen worden gedetecteerd. Het monitoren van HSM-operaties is belangrijk omdat ongebruikelijke access patterns kunnen wijzen op beveiligingsproblemen zoals gecompromitteerde accounts, insider threats of onjuiste configuraties. Organisaties moeten regelmatig evalueren of HSM-clusters correct functioneren en of er geen toegangsproblemen optreden die kunnen leiden tot uitval van applicaties en services die afhankelijk zijn van HSM-backed keys. Deze evaluatie moet worden uitgevoerd in overleg met de eigenaren van de HSM-clusters en de toepassingen die gebruik maken van HSM-backed keys.

Voor verschillende HSM-oplossingen gelden enigszins afwijkende verificatieprocedures, omdat Key Vault Premium, Managed HSM en Dedicated HSM verschillende management APIs gebruiken en verschillende configuratieopties bieden. Beheerders moeten specifieke PowerShell cmdlets of Azure CLI commando's gebruiken die zijn ontworpen voor elke HSM-oplossing, waarbij de HSM-configuratie wordt gecontroleerd via de dedicated management endpoints. Het is essentieel dat monitoring procedures alle HSM-oplossingen adequaat afdekken om volledige dekking te waarborgen binnen de organisatie. Managed HSM en Dedicated HSM bieden aanvullende beveiligingsfuncties zoals FIPS 140-2 Level 3 certificering en volledige controle over de hardware, maar vereisen ook specifieke kennis en tools voor effectief beheer. Organisaties die gebruik maken van Managed HSM of Dedicated HSM moeten ervoor zorgen dat hun monitoring scripts en procedures correct zijn geconfigureerd om deze specifieke HSM-oplossingen te ondersteunen, waarbij gebruik wordt gemaakt van de juiste management endpoints en authenticatiemethoden.

Het implementeren van effectieve monitoring voor HSM-configuratie vereist ook aandacht voor logging en audit trails. Alle verificatieactiviteiten moeten worden vastgelegd in Azure Monitor logs of externe SIEM systemen, waarbij informatie wordt bijgehouden over wanneer verificaties zijn uitgevoerd, welke HSM-clusters zijn gecontroleerd, en welke afwijkingen zijn geïdentificeerd. Deze audit logs zijn niet alleen belangrijk voor compliance doeleinden, maar bieden ook waardevolle informatie voor het analyseren van trends en het identificeren van patronen in configuratiefouten. Organisaties moeten alerting mechanismen implementeren die beheerders waarschuwen wanneer nieuwe HSM-clusters worden geconfigureerd zonder de juiste beveiligingsinstellingen, of wanneer bestaande HSM-clusters worden gewijzigd op een manier die de beveiligingsinstellingen beïnvloedt. Deze proactieve alerting zorgt ervoor dat beveiligingsafwijkingen snel worden geïdentificeerd en gecorrigeerd, voordat ze kunnen leiden tot beveiligingsincidenten of compliance-problemen.

Compliance en Auditing

De implementatie van HSM-configuratie vormt een kritieke component van compliance met meerdere beveiligingskaders die van toepassing zijn op Nederlandse overheidsorganisaties en publieke sector instellingen. Deze beveiligingsmaatregel adresseert specifieke vereisten uit diverse internationale en nationale standaarden die gericht zijn op het beschermen van cryptografische materialen en het waarborgen van veilige key management procedures via hardware-gebaseerde beveiliging.

Binnen het CIS Microsoft Azure Foundations Benchmark framework worden HSM-configuratie practices expliciet aanbevolen via meerdere controles, waarbij de nadruk ligt op het implementeren van hardware-gebaseerde cryptografische beveiliging voor gevoelige workloads. CIS Benchmarks benadrukken het belang van defense-in-depth strategieën en het voorkomen van onbevoegde toegang tot cryptografische materialen door het implementeren van meerdere beveiligingslagen, waarbij HSM's de hoogste beveiligingslaag vormen voor cryptografische sleutelbeheer. Deze controles behoren tot Level 1 vereisten voor services die gevoelige of geclassificeerde gegevens bevatten, wat betekent dat deze als basisbeveiligingsmaatregel worden beschouwd voor productieomgevingen met hoge beveiligingsvereisten.

De Baseline Informatiebeveiliging Overheid, beter bekend als BIO, eist via controle 10.01 dat organisaties beschikken over adequate mechanismen voor cryptografische sleutelbeheer en volledige controle over cryptografische materialen. BIO 10.01 legt de nadruk op het waarborgen van controle en beheerbaarheid van beveiligingscomponenten, waarbij HSM-configuratie een directe bijdrage levert aan deze doelstellingen door cryptografische sleutels te beheren via gecertificeerde hardware security modules. Nederlandse overheidsorganisaties die werken met geclassificeerde gegevens of kritieke infrastructuur moeten aantonen dat zij beschikken over procedures en technische maatregelen die het mogelijk maken om cryptografische sleutels volledig te beheren via HSM's, inclusief key generation, key rotation en key recovery procedures. HSM-configuratie voldoet aan deze vereisten door organisaties volledige controle te geven over de cryptografische sleutels die worden gebruikt voor versleuteling, terwijl tegelijkertijd wordt voldaan aan beveiligings- en compliance-vereisten die expliciet eisen dat cryptografische materialen worden beheerd via gecertificeerde hardware.

ISO 27001:2022 controle A.8.24 behandelt cryptografie en eist dat organisaties passende cryptografische controles implementeren voor de bescherming van informatie, inclusief mechanismen voor het beheren van cryptografische sleutels gedurende hun volledige levenscyclus. HSM-configuratie draagt bij aan deze vereiste door te waarborgen dat organisaties volledige controle hebben over cryptografische sleutels via hardware-gebaseerde beveiliging en kunnen voldoen aan de ISO 27001 eis voor adequaat key lifecycle management. De controle vereist tevens dat organisaties beschikken over procedures voor key generation, key distribution, key storage, key rotation en key destruction, waarbij een goed geconfigureerde HSM-implementatie de technische basis vormt voor dergelijke procedures. Voor organisaties die werken met zeer gevoelige gegevens of die moeten voldoen aan strenge compliance-vereisten, kan ISO 27001 ook eisen dat cryptografische materialen worden beheerd via gecertificeerde hardware security modules die voldoen aan internationale beveiligingsstandaarden zoals FIPS 140-2.

Voor audit doeleinden moeten organisaties documentatie bijhouden die aantoont dat alle HSM-clusters correct zijn geconfigureerd met de juiste beveiligingsinstellingen, inclusief verificatieresultaten en eventuele afwijkingen die zijn geïdentificeerd en gecorrigeerd. Deze audit evidence dient minimaal zeven jaar te worden bewaard conform algemene archiveringsvereisten voor beveiligingsconfiguraties, waarbij organisaties kunnen gebruik maken van Azure Policy compliance rapporten, Azure Monitor logs of externe compliance tooling om deze documentatie te genereren en te onderhouden. Daarnaast moeten organisaties documentatie bijhouden over HSM-configuratie procedures, inclusief Infrastructure as Code templates, configuratiescripts en key lifecycle management procedures, om aan te tonen dat HSM-clusters op een gecontroleerde en gedocumenteerde manier worden beheerd. Voor organisaties die gebruik maken van FIPS 140-2 gecertificeerde HSM's moet ook documentatie worden bijgehouden over de certificeringsstatus en compliance met FIPS-vereisten, waarbij regelmatige verificatie wordt uitgevoerd om te waarborgen dat HSM-clusters blijven voldoen aan certificeringsvereisten.

Remediatie en Herstel

Gebruik PowerShell-script hsm-configuration.ps1 (functie Invoke-Remediation) – Herstelt de HSM-configuratie naar de gewenste staat.

Wanneer monitoring activiteiten aantonen dat HSM-clusters niet correct zijn geconfigureerd of niet voldoen aan HSM-beveiligingsvereisten, dienen organisaties onmiddellijk remediatiestappen te ondernemen om deze beveiligingsafwijking te corrigeren. De remediatieprocedure varieert afhankelijk van het type configuratiefout en de huidige HSM-configuratie, waarbij beheerders rekening moeten houden met mogelijke impact op bestaande workloads en toegankelijkheid van cryptografische materialen tijdens het configuratieproces. Het is belangrijk om te begrijpen dat remediatie niet alleen bestaat uit het technisch corrigeren van configuratiefouten, maar ook uit het waarborgen dat de wijziging correct wordt geïmplementeerd zonder negatieve gevolgen voor bestaande systemen en applicaties die afhankelijk zijn van HSM-backed keys.

Voor nieuwe HSM-clusters die nog geen cryptografische sleutels bevatten, is de remediatie relatief eenvoudig: beheerders kunnen de HSM-configuratie direct aanpassen via Azure Portal door naar de betreffende HSM-cluster eigenschappen te navigeren en de HSM-instellingen te wijzigen. Voor Key Vault Premium instanties kunnen HSM-backed keys worden geconfigureerd in plaats van software-gebaseerde sleutels, voor Managed HSM clusters kunnen toegangscontrole en netwerkconfiguratie worden aangepast, en voor Dedicated HSM instanties kunnen hardware-configuraties worden gewijzigd. PowerShell gebruikers kunnen service-specifieke cmdlets gebruiken, terwijl Azure CLI gebruikers de bijbehorende opdrachten kunnen uitvoeren. Deze eenvoudige remediatieprocedure is ideaal voor development of test omgevingen waar HSM-clusters nog niet in productie gebruik zijn, of voor nieuwe HSM-clusters die net zijn geconfigureerd maar nog geen cryptografische sleutels bevatten.

Bestaande HSM-clusters die reeds in gebruik zijn met productie cryptografische sleutels, vereisen een meer zorgvuldige aanpak voor remediatie. In deze gevallen moeten beheerders eerst verifiëren dat geen kritieke operaties afhankelijk zijn van de huidige HSM-configuratie, waarna HSM-instellingen kunnen worden aangepast zonder onderbreking van services. Het is belangrijk om te begrijpen dat sommige HSM-configuratiewijzigingen, zoals het migreren van software-gebaseerde sleutels naar HSM-backed keys of het wijzigen van netwerkconfiguratie, impact kunnen hebben op de toegankelijkheid van HSM-clusters voor applicaties en services. Deze impactanalyse moet alle applicaties en services identificeren die gebruik maken van HSM-backed keys, de kritiekheid van deze afhankelijkheden beoordelen, en een plan opstellen voor het testen van de gewijzigde configuratie voordat deze in productie wordt geactiveerd. Organisaties moeten ook rekening houden met mogelijke wijzigingen in het gedrag van applicaties na het aanpassen van HSM-configuraties, hoewel in de praktijk de meeste applicaties geen wijzigingen vereisen wanneer HSM-instellingen worden verbeterd, zolang de API-interfaces consistent blijven.

De remediatieprocedure begint met het identificeren van de specifieke configuratiefouten die moeten worden gecorrigeerd, waarbij gebruik wordt gemaakt van monitoring scripts of Azure Policy compliance evaluaties om een compleet overzicht te verkrijgen van alle afwijkingen. Vervolgens moeten beheerders prioriteit toekennen aan de verschillende remediatieacties op basis van de ernst van de beveiligingsrisico's en de impact op bestaande workloads. Kritieke beveiligingsafwijkingen, zoals het ontbreken van HSM-backed keys voor gevoelige workloads of onjuiste netwerkconfiguratie, moeten onmiddellijk worden aangepakt, terwijl minder kritieke afwijkingen kunnen worden gepland voor reguliere onderhoudsvensters. Na het prioriteren van remediatieacties moeten beheerders gedetailleerde remediatieplannen opstellen die alle benodigde configuratiewijzigingen beschrijven, de verwachte impact op bestaande workloads, en de verificatieprocedures die zullen worden gebruikt om te bevestigen dat de remediatie succesvol is.

Na het opstellen van remediatieplannen kunnen beheerders de configuratiewijzigingen implementeren via Azure Portal, PowerShell of Azure CLI, afhankelijk van de voorkeur en expertise van de organisatie. Voor grootschalige omgevingen met meerdere HSM-clusters is het aanbevolen om geautomatiseerde remediatie scripts te gebruiken die de configuratiewijzigingen consistent toepassen op alle relevante HSM-clusters. Na succesvolle implementatie moeten organisaties verificatieprocedures uitvoeren om te bevestigen dat de HSM-configuraties correct zijn geïmplementeerd, bijvoorbeeld door te verifiëren dat HSM-backed keys correct werken, dat netwerkisolatie de verwachte beperkingen afdwingt, en dat logging alle relevante activiteiten vastlegt. Deze verificatieprocedure is essentieel om te waarborgen dat de remediatie daadwerkelijk werkt zoals verwacht, en om eventuele problemen te identificeren voordat kritieke cryptografische materialen worden beïnvloed.

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 Hardware Security Module (HSM) Configuratie in Azure .DESCRIPTION CIS Azure Foundations Benchmark - Control 8.1 Controleert of Azure-services HSM-configuratie ondersteunen en correct zijn geconfigureerd. Ondersteunt Key Vault Premium met HSM-backed keys, Azure Managed HSM en Azure Dedicated HSM. .NOTES Filename: hsm-configuration.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Control: 8.1 Related JSON: content/azure/security/hsm-configuration.json #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.KeyVault, Az.Resources [CmdletBinding()] param( [Parameter()] [switch]$Monitoring ) $ErrorActionPreference = 'Stop' $PolicyName = "HSM Configuratie" function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-KeyVaultHSMConfiguration { param([Parameter(Mandatory=$true)]$KeyVault) $result = @{ Name = $KeyVault.VaultName ResourceGroup = $KeyVault.ResourceGroupName PremiumTier = $false HSMBackedKeys = $false HSMKeysCount = 0 SoftwareKeysCount = 0 ComplianceScore = 0 TotalChecks = 2 } try { $vaultDetail = Get-AzKeyVault -VaultName $KeyVault.VaultName -ResourceGroupName $KeyVault.ResourceGroupName -ErrorAction SilentlyContinue if ($vaultDetail) { # Check if vault is Premium tier (required for HSM-backed keys) if ($vaultDetail.Sku -eq 'Premium') { $result.PremiumTier = $true $result.ComplianceScore++ } # Check for HSM-backed keys $keys = Get-AzKeyVaultKey -VaultName $KeyVault.VaultName -ErrorAction SilentlyContinue if ($keys) { foreach ($key in $keys) { $keyDetail = Get-AzKeyVaultKey -VaultName $KeyVault.VaultName -Name $key.Name -ErrorAction SilentlyContinue if ($keyDetail) { if ($keyDetail.Attributes.HsmProtected) { $result.HSMBackedKeys = $true $result.HSMKeysCount++ } else { $result.SoftwareKeysCount++ } } } # If at least one HSM-backed key exists, consider compliant if ($result.HSMBackedKeys) { $result.ComplianceScore++ } } } } catch { Write-Warning "Error checking Key Vault $($KeyVault.VaultName): $_" } return $result } function Test-ManagedHSMConfiguration { param([Parameter(Mandatory=$true)]$ManagedHSM) $result = @{ Name = $ManagedHSM.Name ResourceGroup = $ManagedHSM.ResourceGroupName Status = "Unknown" PrivateEndpointConfigured = $false RBACEnabled = $false ComplianceScore = 0 TotalChecks = 3 } try { $hsmDetail = Get-AzKeyVaultManagedHsm -Name $ManagedHSM.Name -ResourceGroupName $ManagedHSM.ResourceGroupName -ErrorAction SilentlyContinue if ($hsmDetail) { # Check HSM status if ($hsmDetail.Properties.StatusMessage -eq 'The managed HSM is available.') { $result.Status = "Available" $result.ComplianceScore++ } # Check for private endpoints (simplified check) if ($hsmDetail.Properties.NetworkAcls) { $result.PrivateEndpointConfigured = $true $result.ComplianceScore++ } # Check for RBAC (Managed HSM uses RBAC by default) if ($hsmDetail.Properties.EnablePurgeProtection) { $result.RBACEnabled = $true $result.ComplianceScore++ } } } catch { Write-Warning "Error checking Managed HSM $($ManagedHSM.Name): $_" } return $result } function Test-Compliance { $result = @{ TotalKeyVaults = 0 TotalManagedHSMs = 0 CompliantResources = 0 PartiallyCompliant = 0 NonCompliant = 0 ResourceDetails = @() } try { # Check Key Vaults for HSM-backed keys $vaults = Get-AzKeyVault -ErrorAction SilentlyContinue $result.TotalKeyVaults = $vaults.Count foreach ($vault in $vaults) { $vaultResult = Test-KeyVaultHSMConfiguration -KeyVault $vault $result.ResourceDetails += $vaultResult $compliancePercentage = ($vaultResult.ComplianceScore / $vaultResult.TotalChecks) * 100 if ($compliancePercentage -eq 100) { $result.CompliantResources++ } elseif ($compliancePercentage -ge 50) { $result.PartiallyCompliant++ } else { $result.NonCompliant++ } } # Check Managed HSM instances try { $managedHSMs = Get-AzKeyVaultManagedHsm -ErrorAction SilentlyContinue if ($managedHSMs) { $result.TotalManagedHSMs = $managedHSMs.Count foreach ($hsm in $managedHSMs) { $hsmResult = Test-ManagedHSMConfiguration -ManagedHSM $hsm $result.ResourceDetails += $hsmResult $compliancePercentage = ($hsmResult.ComplianceScore / $hsmResult.TotalChecks) * 100 if ($compliancePercentage -eq 100) { $result.CompliantResources++ } elseif ($compliancePercentage -ge 70) { $result.PartiallyCompliant++ } else { $result.NonCompliant++ } } } } catch { Write-Verbose "Managed HSM check not available: $_" } return $result } catch { Write-Warning "Error during compliance check: $_" 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 Resources:" -ForegroundColor White Write-Host " Key Vaults: $($r.TotalKeyVaults)" -ForegroundColor White Write-Host " Managed HSM: $($r.TotalManagedHSMs)" -ForegroundColor White Write-Host "`nCompliance Status:" -ForegroundColor White Write-Host " Compliant: $($r.CompliantResources)" -ForegroundColor Green Write-Host " Partially Compliant: $($r.PartiallyCompliant)" -ForegroundColor Yellow Write-Host " Non-Compliant: $($r.NonCompliant)" -ForegroundColor Red if ($r.ResourceDetails.Count -gt 0) { Write-Host "`nDetailed Results:" -ForegroundColor Cyan foreach ($resource in $r.ResourceDetails) { $compliancePercentage = [math]::Round(($resource.ComplianceScore / $resource.TotalChecks) * 100, 2) $statusColor = if ($compliancePercentage -eq 100) { 'Green' } elseif ($compliancePercentage -ge 50) { 'Yellow' } else { 'Red' } Write-Host "`n Resource: $($resource.Name) ($($resource.ResourceGroup))" -ForegroundColor White Write-Host " Compliance: $compliancePercentage%" -ForegroundColor $statusColor if ($resource.PSObject.Properties.Name -contains 'PremiumTier') { Write-Host " Premium Tier: $(if ($resource.PremiumTier) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.PremiumTier) { 'Green' } else { 'Red' }) } if ($resource.PSObject.Properties.Name -contains 'HSMBackedKeys') { Write-Host " HSM-Backed Keys: $(if ($resource.HSMBackedKeys) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.HSMBackedKeys) { 'Green' } else { 'Red' }) if ($resource.HSMKeysCount -gt 0) { Write-Host " HSM Keys Count: $($resource.HSMKeysCount)" -ForegroundColor Green } if ($resource.SoftwareKeysCount -gt 0) { Write-Host " Software Keys Count: $($resource.SoftwareKeysCount)" -ForegroundColor Yellow } } if ($resource.PSObject.Properties.Name -contains 'Status') { Write-Host " Status: $($resource.Status)" -ForegroundColor $(if ($resource.Status -eq 'Available') { 'Green' } else { 'Yellow' }) } if ($resource.PSObject.Properties.Name -contains 'PrivateEndpointConfigured') { Write-Host " Private Endpoint: $(if ($resource.PrivateEndpointConfigured) { 'Configured' } else { 'Not Configured' })" -ForegroundColor $(if ($resource.PrivateEndpointConfigured) { 'Green' } else { 'Yellow' }) } if ($resource.PSObject.Properties.Name -contains 'RBACEnabled') { Write-Host " RBAC Enabled: $(if ($resource.RBACEnabled) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.RBACEnabled) { 'Green' } else { 'Yellow' }) } } } } else { $r = Test-Compliance Write-Host "`nHSM Configuration Status:" -ForegroundColor Cyan Write-Host "Total Resources: $($r.TotalKeyVaults + $r.TotalManagedHSMs)" Write-Host "Compliant: $($r.CompliantResources)" Write-Host "Partially Compliant: $($r.PartiallyCompliant)" Write-Host "Non-Compliant: $($r.NonCompliant)" } } catch { Write-Error $_; exit 1 } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de HSM-configuratie #> [CmdletBinding()] param() Invoke-Remediation } function Invoke-Monitoring { <# .SYNOPSIS Controleert de huidige HSM-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 Resources:" -ForegroundColor White Write-Host " Key Vaults: $($r.TotalKeyVaults)" -ForegroundColor White Write-Host " Managed HSM: $($r.TotalManagedHSMs)" -ForegroundColor White Write-Host "`nCompliance Status:" -ForegroundColor White Write-Host " Compliant: $($r.CompliantResources)" -ForegroundColor Green Write-Host " Partially Compliant: $($r.PartiallyCompliant)" -ForegroundColor Yellow Write-Host " Non-Compliant: $($r.NonCompliant)" -ForegroundColor Red if ($r.ResourceDetails.Count -gt 0) { Write-Host "`nDetailed Results:" -ForegroundColor Cyan foreach ($resource in $r.ResourceDetails) { $compliancePercentage = [math]::Round(($resource.ComplianceScore / $resource.TotalChecks) * 100, 2) $statusColor = if ($compliancePercentage -eq 100) { 'Green' } elseif ($compliancePercentage -ge 50) { 'Yellow' } else { 'Red' } Write-Host "`n Resource: $($resource.Name) ($($resource.ResourceGroup))" -ForegroundColor White Write-Host " Compliance: $compliancePercentage%" -ForegroundColor $statusColor if ($resource.PSObject.Properties.Name -contains 'PremiumTier') { Write-Host " Premium Tier: $(if ($resource.PremiumTier) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.PremiumTier) { 'Green' } else { 'Red' }) } if ($resource.PSObject.Properties.Name -contains 'HSMBackedKeys') { Write-Host " HSM-Backed Keys: $(if ($resource.HSMBackedKeys) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.HSMBackedKeys) { 'Green' } else { 'Red' }) if ($resource.HSMKeysCount -gt 0) { Write-Host " HSM Keys Count: $($resource.HSMKeysCount)" -ForegroundColor Green } if ($resource.SoftwareKeysCount -gt 0) { Write-Host " Software Keys Count: $($resource.SoftwareKeysCount)" -ForegroundColor Yellow } } if ($resource.PSObject.Properties.Name -contains 'Status') { Write-Host " Status: $($resource.Status)" -ForegroundColor $(if ($resource.Status -eq 'Available') { 'Green' } else { 'Yellow' }) } if ($resource.PSObject.Properties.Name -contains 'PrivateEndpointConfigured') { Write-Host " Private Endpoint: $(if ($resource.PrivateEndpointConfigured) { 'Configured' } else { 'Not Configured' })" -ForegroundColor $(if ($resource.PrivateEndpointConfigured) { 'Green' } else { 'Yellow' }) } if ($resource.PSObject.Properties.Name -contains 'RBACEnabled') { Write-Host " RBAC Enabled: $(if ($resource.RBACEnabled) { 'Yes' } else { 'No' })" -ForegroundColor $(if ($resource.RBACEnabled) { 'Green' } else { 'Yellow' }) } } } } else { $r = Test-Compliance Write-Host "`nHSM Configuration Status:" -ForegroundColor Cyan Write-Host "Total Resources: $($r.TotalKeyVaults + $r.TotalManagedHSMs)" Write-Host "Compliant: $($r.CompliantResources)" Write-Host "Partially Compliant: $($r.PartiallyCompliant)" Write-Host "Non-Compliant: $($r.NonCompliant)" } } catch { Write-Error $_; exit 1 } } function Invoke-Remediation { <# .SYNOPSIS Herstelt de HSM-configuratie naar de gewenste staat .DESCRIPTION Configureert Azure-services met HSM-configuratie best practices. Let op: Deze functie vereist handmatige configuratie via Azure Portal of specifieke service cmdlets. #> [CmdletBinding()] param() Write-Host "[INFO] HSM-configuratie vereist handmatige stappen" -ForegroundColor Yellow Write-Host "[INFO] Gebruik Azure Portal of Infrastructure as Code templates" -ForegroundColor Yellow Write-Host "[INFO] Best practices:" -ForegroundColor Cyan Write-Host " - Upgrade Key Vault naar Premium tier voor HSM-backed keys" -ForegroundColor Cyan Write-Host " - Configureer HSM-backed keys in plaats van software-gebaseerde sleutels" -ForegroundColor Cyan Write-Host " - Overweeg Azure Managed HSM voor volledige controle over HSM-clusters" -ForegroundColor Cyan Write-Host " - Configureer netwerkisolatie via private endpoints" -ForegroundColor Cyan Write-Host " - Implementeer RBAC voor toegangscontrole" -ForegroundColor Cyan Write-Host " - Schakel logging en monitoring in voor audit doeleinden" -ForegroundColor Cyan Write-Host "[INFO] Running monitoring check..." -ForegroundColor Cyan Invoke-Monitoring }

Risico zonder implementatie

Risico zonder implementatie
High: Gebrek aan HSM-configuratie kan leiden tot blootstelling van cryptografische sleutels aan software-gebaseerde bedreigingen, compromittering van versleutelde gegevens, en niet-naleving van compliance-vereisten die expliciet eisen dat cryptografische materialen worden beheerd via gecertificeerde hardware. Compliance: CIS 8.1, BIO 10.01, ISO 27001 A.8.24, NIS2 Artikel 21. Het risico is kritiek - beveiligings- en compliance-risico's voor geclassificeerde gegevens.

Management Samenvatting

HSM-configuratie: Implementeer hardware security modules voor cryptografische sleutelbeheer, inclusief Key Vault Premium met HSM-backed keys, Managed HSM of Dedicated HSM. Configuratie: Portal of Infrastructure as Code. Verificatie: 4-6 uur. Verplicht voor geclassificeerde gegevens en kritieke infrastructuur - CIS 8.1, BIO 10.01.