Azure Migrate Configuratie Voor Cloud Migraties

šŸ’¼ Management Samenvatting

Azure Migrate configuratie vormt de fundamentele basis voor succesvolle cloudmigraties door organisaties in staat te stellen hun on-premises omgevingen systematisch te beoordelen, te plannen en te migreren naar Azure. Zonder correcte configuratie van Azure Migrate kunnen organisaties geen accurate assessments uitvoeren, geen betrouwbare migratieplannen ontwikkelen en geen gecontroleerde migraties uitvoeren, wat kan leiden tot mislukte migraties, onverwachte kosten, prestatieproblemen en beveiligingsrisico's.

Aanbeveling
IMPLEMENTEER AZURE MIGRATE CONFIGURATIE VOOR ALLE MIGRATIE-PROJECTEN
Risico zonder
Medium
Risk Score
7/10
Implementatie
140u (tech: 80u)
Van toepassing op:
āœ“ Azure Subscriptions
āœ“ On-Premises Servers
āœ“ VMware vSphere
āœ“ Hyper-V
āœ“ Fysieke Servers

Het migreren van on-premises workloads naar Azure zonder een goed geconfigureerd migratietool zoals Azure Migrate is als het navigeren door onbekend terrein zonder kaart of kompas. Organisaties die proberen te migreren zonder systematische assessment lopen het risico om workloads te migreren die niet geschikt zijn voor de cloud, om onvoldoende resources in te richten wat leidt tot prestatieproblemen, of om te veel resources in te richten wat leidt tot onnodige kosten. Voor Nederlandse overheidsorganisaties die moeten voldoen aan de Baseline Informatiebeveiliging Overheid (BIO) en de NIS2-richtlijn, is het essentieel dat migraties worden uitgevoerd op een gecontroleerde, gedocumenteerde manier die voldoet aan beveiligings- en compliance-vereisten. Zonder correcte Azure Migrate configuratie kunnen organisaties niet voldoen aan deze vereisten omdat zij geen aantoonbaar proces hebben voor het beoordelen van workloads, het identificeren van beveiligingsrisico's, en het plannen van veilige migraties. Daarnaast maakt het gebrek aan systematische assessment het onmogelijk om accurate kostenramingen te maken, wat kan leiden tot budgetoverschrijdingen en onverwachte kosten tijdens en na migraties. Azure Migrate configuratie is niet alleen een technische setup, maar een fundamenteel onderdeel van migratiegovernance dat organisaties in staat stelt om migraties te plannen, uit te voeren en te valideren op een manier die voldoet aan beveiligings-, compliance- en kostenvereisten.

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

Implementatie

Azure Migrate configuratie omvat het opzetten en configureren van de Azure Migrate-service, inclusief het creëren van een Azure Migrate-project, het installeren en configureren van assessment tools zoals de Azure Migrate appliance voor VMware of Hyper-V, het configureren van discovery en assessment-instellingen, en het instellen van migratietools voor het daadwerkelijk migreren van workloads. Het Azure Migrate-project vormt het centrale punt voor alle migratie-activiteiten, waarbij assessments, migratieplannen en migratiegeschiedenis worden opgeslagen. De Azure Migrate appliance is een lichtgewicht virtuele machine die wordt geïnstalleerd in de on-premises omgeving en die automatisch servers, applicaties en afhankelijkheden ontdekt door verbinding te maken met vCenter Server voor VMware-omgevingen of SCVMM voor Hyper-V-omgevingen. Deze appliance verzamelt prestatiegegevens, configuratie-informatie en afhankelijkheidsgegevens die worden gebruikt om accurate assessments te genereren. De configuratie omvat ook het instellen van assessment-instellingen zoals de doelregio voor migratie, de sizing-methode (op basis van prestatiegegevens of zoals-on-premises), de comfort factor voor het account voor toekomstige groei, en de Azure-offerte die wordt gebruikt voor kostenramingen. Daarnaast omvat configuratie het instellen van migratietools zoals Azure Migrate Server Migration voor het migreren van VMware VM's, Hyper-V VM's, fysieke servers of andere virtualisatieplatforms naar Azure. Deze tools moeten worden geconfigureerd met de juiste Azure-resources, zoals een replicatie storage account, een recovery services vault voor Azure Site Recovery-gebaseerde migraties, en de benodigde netwerkconfiguraties. Voor organisaties die moeten voldoen aan compliance-vereisten zoals BIO-normen of NIS2, moet de configuratie ook rekening houden met beveiligingsvereisten zoals versleuteling van data in transit en at rest, toegangscontroles voor migratie-resources, en logging en monitoring van migratie-activiteiten.

Vereisten voor Azure Migrate Configuratie

Voordat Azure Migrate effectief kan worden geconfigureerd en gebruikt, moeten organisaties verschillende essentiële vereisten vervullen. De eerste en meest fundamentele vereiste is toegang tot een Azure-abonnement met voldoende rechten om Azure Migrate-projecten te creëren en te beheren. De gebruiker of service principal die verantwoordelijk is voor de configuratie moet beschikken over de rol Contributor of Owner op het Azure-abonnement, of specifiek de rol Azure Migrate Project Contributor. Daarnaast moet het Azure-abonnement beschikken over voldoende quota voor de resources die nodig zijn voor assessments en migraties, zoals compute-quota voor virtuele machines, storage-quota voor replicatie, en netwerkquota voor virtuele netwerken en load balancers. Voor grote migraties kan het nodig zijn om quota-aanvragen in te dienen bij Microsoft om ervoor te zorgen dat voldoende capaciteit beschikbaar is. Het is belangrijk om deze quota-vereisten vooraf te identificeren en te plannen, omdat quota-aanvragen tijd kunnen kosten en migraties kunnen worden vertraagd wanneer quota onvoldoende zijn. Een tweede kritieke vereiste is toegang tot de on-premises omgeving die moet worden gemigreerd. Voor VMware-omgevingen betekent dit toegang tot vCenter Server met een account dat voldoende rechten heeft om servers te ontdekken en prestatiegegevens te verzamelen. Het account moet beschikken over read-only rechten op vCenter Server, waarbij specifieke rechten nodig zijn voor het lezen van VM-configuraties, het monitoren van prestatiemetrics, en het verzamelen van afhankelijkheidsgegevens. Voor Hyper-V-omgevingen betekent dit toegang tot SCVMM (System Center Virtual Machine Manager) of directe toegang tot Hyper-V-hosts met een account dat voldoende rechten heeft. Daarnaast moet er netwerkconnectiviteit zijn tussen de on-premises omgeving en Azure, waarbij de Azure Migrate appliance toegang moet hebben tot Azure-services via internet of via Azure ExpressRoute of VPN-verbindingen. Deze connectiviteit is essentieel voor het uploaden van discovery-gegevens naar Azure en voor het uitvoeren van assessments en migraties. Voor organisaties met strikte beveiligingsvereisten kan het nodig zijn om specifieke firewallregels te configureren of om ExpressRoute te gebruiken in plaats van internetconnectiviteit. Een derde vereiste is de beschikbaarheid van geschikte hardware en resources voor het hosten van de Azure Migrate appliance. Voor VMware-omgevingen moet de appliance worden geïnstalleerd als een VM in vSphere, waarbij minimaal 32 GB RAM, 8 vCPU's, en 80 GB schijfruimte nodig zijn. Voor Hyper-V-omgevingen moet de appliance worden geïnstalleerd als een VM op een Hyper-V-host met vergelijkbare specificaties. De appliance moet toegang hebben tot het netwerk waar de te beoordelen servers zich bevinden, en moet kunnen communiceren met vCenter Server of SCVMM. Daarnaast moet de appliance toegang hebben tot internet of tot Azure via ExpressRoute of VPN voor het uploaden van gegevens. Het is belangrijk om te zorgen voor voldoende netwerkbandbreedte, omdat de appliance regelmatig prestatiegegevens verzamelt en uploadt, wat netwerkverkeer genereert. Voor grote omgevingen met honderden of duizenden servers kan dit aanzienlijke netwerkbandbreedte vereisen. Een vierde vereiste is het definiëren van een duidelijk migratiestrategie en -plan voordat de configuratie begint. Dit omvat het bepalen van welke workloads moeten worden gemigreerd, in welke volgorde, naar welke Azure-regio's, en met welke beveiligings- en compliance-vereisten. Voor Nederlandse overheidsorganisaties die moeten voldoen aan BIO-normen of NIS2, moet het migratieplan expliciet rekening houden met beveiligingsvereisten zoals data residency, versleuteling, toegangscontroles, en logging en monitoring. Het plan moet ook rekening houden met kostenoverwegingen, waarbij wordt bepaald welke Azure-offerte wordt gebruikt voor kostenramingen, welke sizing-methode wordt gebruikt (prestatiegebaseerd of zoals-on-premises), en welke comfort factor wordt toegepast voor toekomstige groei. Zonder een duidelijk plan bestaat het risico dat de configuratie niet aansluit bij de organisatorische doelen en dat assessments en migraties moeten worden herhaald, wat tijd en kosten kost. Ten slotte moet een duidelijk proces worden gedefinieerd voor het beheren van Azure Migrate-projecten en -configuraties. Dit proces moet beschrijven wie verantwoordelijk is voor het creëren en beheren van Azure Migrate-projecten, wie toegang heeft tot assessments en migratieplannen, hoe wijzigingen aan configuraties worden goedgekeurd, en hoe assessments en migraties worden gevalideerd en gedocumenteerd. Voor organisaties die moeten voldoen aan compliance-vereisten, moet dit proces ook voorzien in auditlogging en documentatie van migratie-activiteiten, zodat auditors kunnen verifiëren dat migraties zijn uitgevoerd volgens goedgekeurde plannen en procedures. Het proces moet ook rekening houden met rollback-scenario's, waarbij wordt beschreven hoe migraties kunnen worden teruggedraaid indien nodig, en met validatieprocessen, waarbij wordt beschreven hoe wordt geverifieerd dat gemigreerde workloads correct functioneren en voldoen aan beveiligings- en prestatievereisten.

Implementatie van Azure Migrate Configuratie

Gebruik PowerShell-script azure-migrate-configuration.ps1 (functie Invoke-Implementation) – Configureert Azure Migrate-project en assessment-instellingen.

De implementatie van Azure Migrate configuratie begint met het creëren van een Azure Migrate-project in de Azure-portal of via Azure PowerShell. Het project wordt gecreëerd in een Azure-resourcegroep en fungeert als het centrale punt voor alle migratie-activiteiten, inclusief assessments, migratieplannen en migratiegeschiedenis. Tijdens het creëren van het project moet worden gekozen voor de geografische locatie waar de assessment-gegevens worden opgeslagen, waarbij het belangrijk is om rekening te houden met data residency-vereisten voor Nederlandse overheidsorganisaties. Voor organisaties die moeten voldoen aan BIO-normen of NIS2 kan het nodig zijn om te kiezen voor een Azure-regio binnen de Europese Unie om te voldoen aan data residency-vereisten. Na het creëren van het project kunnen assessment tools worden toegevoegd, zoals Azure Migrate: Server Assessment voor het beoordelen van servers, of Azure Migrate: Server Migration voor het migreren van servers naar Azure. Voor VMware-omgevingen begint de implementatie met het downloaden en installeren van de Azure Migrate appliance voor VMware. De appliance wordt gedownload als een OVA-bestand dat kan worden geïmporteerd in vSphere, waarbij een wizard doorloopt wordt om de appliance te configureren met netwerkinstellingen, Azure-verbindingsgegevens, en vCenter Server-referenties. Tijdens de configuratie moet de appliance worden geregistreerd bij het Azure Migrate-project door een projectkey en project-ID in te voeren die worden gegenereerd in de Azure-portal. Na registratie begint de appliance automatisch met het ontdekken van servers in de vSphere-omgeving door verbinding te maken met vCenter Server en het verzamelen van configuratie- en prestatiegegevens. Deze discovery-fase kan enkele uren tot dagen duren, afhankelijk van de grootte van de omgeving, waarbij de appliance continu gegevens verzamelt en uploadt naar Azure. Voor Hyper-V-omgevingen wordt een vergelijkbaar proces gevolgd, waarbij de Azure Migrate appliance voor Hyper-V wordt geïnstalleerd op een Hyper-V-host of in SCVMM, en wordt geconfigureerd met SCVMM-referenties of Hyper-V-host-referenties. Na de discovery-fase kunnen assessments worden geconfigureerd en uitgevoerd. Tijdens het configureren van een assessment moeten verschillende instellingen worden gedefinieerd die de nauwkeurigheid en relevantie van de assessment bepalen. De eerste instelling is de doelregio voor migratie, waarbij moet worden gekozen voor een Azure-regio die geschikt is voor de workloads en die voldoet aan data residency-vereisten. De tweede instelling is de sizing-methode, waarbij kan worden gekozen voor prestatiegebaseerde sizing (op basis van verzamelde prestatiegegevens) of zoals-on-premises sizing (op basis van huidige configuraties zonder rekening te houden met prestatiegegevens). Prestatiegebaseerde sizing wordt aanbevolen omdat het nauwkeurigere resultaten oplevert door rekening te houden met daadwerkelijk resourcegebruik, wat kan leiden tot kostenbesparingen door het rechtzetten van resources. De derde instelling is de comfort factor, die wordt gebruikt om rekening te houden met toekomstige groei en seizoensgebonden variaties in resourcegebruik. Een comfort factor van 1.2 tot 1.5 wordt typisch gebruikt, waarbij 1.2 betekent dat 20% extra capaciteit wordt toegevoegd bovenop de gemeten behoefte. De vierde instelling is de Azure-offerte, die wordt gebruikt voor kostenramingen. Voor Nederlandse organisaties kan dit de Enterprise Agreement (EA) zijn, Pay-As-You-Go, of andere relevante aanbiedingen. Na het configureren van assessment-instellingen kunnen assessments worden uitgevoerd, waarbij Azure Migrate automatisch aanbevelingen genereert voor Azure VM-grootten, Azure Disk-types, en geschatte kosten. Deze assessments kunnen worden bekeken in de Azure-portal, waarbij gedetailleerde informatie beschikbaar is over elke server, inclusief aanbevolen Azure VM-grootte, geschatte maandelijkse kosten, en readiness-status (Ready, Ready with conditions, Not ready, or Ready for disks). Voor servers die niet klaar zijn voor migratie worden specifieke redenen gegeven, zoals niet-ondersteunde besturingssystemen, niet-ondersteunde boot-types, of andere compatibiliteitsproblemen. Deze informatie is essentieel voor het ontwikkelen van migratieplannen en voor het identificeren van servers die mogelijk moeten worden gemoderniseerd voordat migratie mogelijk is. Voor het daadwerkelijk migreren van servers naar Azure moeten migratietools worden geconfigureerd. Azure Migrate Server Migration ondersteunt verschillende migratiemethoden, afhankelijk van het virtualisatieplatform. Voor VMware-omgevingen kan worden gekozen voor agentless migratie (waarbij geen agents op servers hoeven te worden geïnstalleerd) of agent-based migratie (waarbij agents worden geïnstalleerd voor meer controle). Agentless migratie is eenvoudiger maar heeft beperkingen, terwijl agent-based migratie meer flexibiliteit biedt maar meer configuratie vereist. Voor Hyper-V-omgevingen wordt typisch agentless migratie gebruikt, waarbij Azure Site Recovery wordt gebruikt als onderliggende technologie. De configuratie omvat het instellen van een replicatie storage account, een recovery services vault, en netwerkconfiguraties voor de gemigreerde VM's. Daarnaast moeten beveiligingsinstellingen worden geconfigureerd, zoals versleuteling van data in transit en at rest, toegangscontroles voor migratie-resources, en logging en monitoring van migratie-activiteiten. Voor organisaties die moeten voldoen aan BIO-normen of NIS2 moet speciale aandacht worden besteed aan deze beveiligingsinstellingen om te waarborgen dat migraties voldoen aan compliance-vereisten.

Monitoring van Migratie-activiteiten

Gebruik PowerShell-script azure-migrate-configuration.ps1 (functie Invoke-Monitoring) – Monitort Azure Migrate discovery, assessment en migratie-status.

Effectieve monitoring van Azure Migrate-activiteiten is essentieel om te waarborgen dat discovery, assessments en migraties correct verlopen en om problemen tijdig te identificeren en op te lossen. Het eerste niveau van monitoring omvat het volgen van de discovery-status via de Azure-portal, waarbij wordt gecontroleerd of de Azure Migrate appliance correct is verbonden, of discovery actief is, en hoeveel servers zijn ontdekt. De Azure-portal biedt real-time statusinformatie over de appliance, inclusief de laatste keer dat gegevens zijn geüpload, het aantal ontdekte servers, en eventuele fouten of waarschuwingen. Deze informatie moet regelmatig worden gecontroleerd, bij voorkeur dagelijks tijdens de discovery-fase, om ervoor te zorgen dat discovery correct verloopt en om problemen tijdig te identificeren. Voor grote omgevingen kan discovery meerdere dagen of weken duren, waarbij het belangrijk is om te monitoren of het aantal ontdekte servers toeneemt zoals verwacht en of er geen stagnatie optreedt. Het tweede niveau van monitoring omvat het volgen van assessment-status en -resultaten. Na het uitvoeren van een assessment moeten de resultaten worden geanalyseerd om te verifiëren dat zij accuraat zijn en om te identificeren of er servers zijn die niet klaar zijn voor migratie of die speciale aandacht vereisen. De Azure-portal biedt gedetailleerde assessment-rapporten die kunnen worden geëxporteerd voor verdere analyse, waarbij informatie beschikbaar is over aanbevolen Azure VM-grootten, geschatte kosten, en readiness-status per server. Deze rapporten moeten worden gedeeld met relevante teams, zoals applicatie-eigenaren, infrastructuurteams, en financieel management, om feedback te verzamelen en om te verifiëren dat assessments aansluiten bij verwachtingen. Voor servers die niet klaar zijn voor migratie moeten actieplannen worden ontwikkeld om de problemen op te lossen, zoals het upgraden van besturingssystemen, het aanpassen van configuraties, of het moderniseren van applicaties. Het derde niveau van monitoring omvat het volgen van migratie-activiteiten tijdens daadwerkelijke migraties. Azure Migrate biedt real-time statusinformatie over migraties, inclusief de voortgang van replicatie, het aantal gerepliceerde servers, en eventuele fouten of waarschuwingen. Deze informatie moet continu worden gemonitord tijdens migraties, waarbij teams proactief moeten reageren op problemen om te voorkomen dat migraties falen of worden vertraagd. Voor grote migraties met honderden of duizenden servers kan het nodig zijn om geautomatiseerde monitoring te implementeren die waarschuwingen genereert wanneer problemen worden gedetecteerd, zodat teams onmiddellijk kunnen reageren. Daarnaast moeten migratie-activiteiten worden gelogd voor audit-doeleinden, waarbij wordt vastgelegd welke servers zijn gemigreerd, wanneer migraties zijn uitgevoerd, wie verantwoordelijk was voor migraties, en of migraties succesvol waren. Deze logging is essentieel voor organisaties die moeten voldoen aan compliance-vereisten zoals BIO-normen of NIS2, waarbij auditors moeten kunnen verifiëren dat migraties zijn uitgevoerd volgens goedgekeurde plannen en procedures. Het vierde niveau van monitoring omvat post-migratie validatie om te verifiëren dat gemigreerde workloads correct functioneren en voldoen aan beveiligings- en prestatievereisten. Na het voltooien van een migratie moeten gemigreerde workloads worden getest om te verifiëren dat applicaties correct functioneren, dat prestaties acceptabel zijn, en dat beveiligingsconfiguraties correct zijn geïmplementeerd. Deze validatie moet worden uitgevoerd door applicatie-eigenaren en infrastructuurteams, waarbij testscenario's worden uitgevoerd die representatief zijn voor productie-workloads. Daarnaast moeten beveiligingsconfiguraties worden geverifieerd, zoals netwerkbeveiligingsgroepen, toegangscontroles, versleuteling, en logging en monitoring. Voor organisaties die moeten voldoen aan compliance-vereisten moet deze validatie worden gedocumenteerd, waarbij wordt vastgelegd welke tests zijn uitgevoerd, wat de resultaten waren, en of workloads voldoen aan beveiligings- en compliance-vereisten. Deze documentatie is essentieel voor auditors om te verifiëren dat migraties zijn uitgevoerd op een manier die voldoet aan relevante standaarden en regelgeving.

Compliance en Beveiligingsvereisten

Azure Migrate configuratie en gebruik moeten voldoen aan verschillende compliance- en beveiligingsvereisten die van toepassing zijn op Nederlandse organisaties, met name in de publieke sector. Voor organisaties die moeten voldoen aan de Baseline Informatiebeveiliging Overheid (BIO), specifiek Thema 09.01 (Beveiligingsarchitectuur) en Thema 12.01 (Logging en monitoring), moet Azure Migrate configuratie expliciet rekening houden met beveiligingsvereisten zoals versleuteling van data in transit en at rest, toegangscontroles voor migratie-resources, en logging en monitoring van migratie-activiteiten. BIO vereist dat organisaties kunnen aantonen dat migraties zijn uitgevoerd op een gecontroleerde, gedocumenteerde manier die voldoet aan beveiligingsvereisten, waarbij Azure Migrate configuratie en assessments de audit-evidentie leveren die nodig is om aan te tonen dat workloads zijn beoordeeld en gemigreerd volgens goedgekeurde plannen en procedures. Voor overheidsorganisaties is het belangrijk om expliciet te documenteren hoe Azure Migrate configuratie bijdraagt aan BIO-compliance en om regelmatig assessments en migratie-rapporten te genereren die kunnen worden gedeeld met interne audit-teams en externe toezichthouders. Voor organisaties die moeten voldoen aan ISO 27001, specifiek controle A.12.6.1 (Management of technical vulnerabilities) en A.14.2.1 (Secure development policy), moet Azure Migrate configuratie rekening houden met beveiligingsvereisten voor het beheren van kwetsbaarheden tijdens migraties en voor het waarborgen dat gemigreerde workloads voldoen aan beveiligingsstandaarden. ISO 27001 vereist dat organisaties kunnen aantonen dat zij proactief kwetsbaarheden identificeren en mitigeren, waarbij Azure Migrate assessments kunnen worden gebruikt om te identificeren of workloads kwetsbaarheden bevatten die moeten worden aangepakt voordat of tijdens migraties. Daarnaast vereist ISO 27001 dat organisaties kunnen aantonen dat migraties zijn uitgevoerd volgens goedgekeurde procedures en dat gemigreerde workloads voldoen aan beveiligingsvereisten. Azure Migrate configuratie en assessments leveren de audit-evidentie die nodig is om aan te tonen dat deze vereisten worden nageleefd. Tijdens ISO 27001 audits moeten organisaties kunnen aantonen dat Azure Migrate configuratie effectief is, dat assessments accuraat zijn, en dat er processen zijn voor het valideren van gemigreerde workloads. Het is belangrijk om deze processen te documenteren en regelmatig te testen om te verifiëren dat zij effectief blijven. De NIS2-richtlijn, die van toepassing is op essentiële en belangrijke entiteiten in verschillende sectoren, vereist in Artikel 21 dat organisaties beleidsmechanismen implementeren voor het afdwingen van beveiligingsmaatregelen en dat zij kunnen aantonen dat deze mechanismen effectief zijn. Voor migraties betekent dit dat organisaties moeten kunnen aantonen dat workloads zijn beoordeeld op beveiligingsrisico's, dat migraties zijn uitgevoerd op een manier die voldoet aan beveiligingsvereisten, en dat gemigreerde workloads voldoen aan relevante beveiligingsstandaarden. Azure Migrate configuratie en assessments vormen een directe implementatie van deze vereiste door niet alleen workloads te beoordelen, maar ook door te documenteren hoe assessments zijn uitgevoerd en hoe migraties zijn gepland en uitgevoerd. Voor Nederlandse organisaties die onder NIS2 vallen, is het daarom niet alleen aanbevolen maar verplicht om Azure Migrate configuratie te implementeren en te kunnen aantonen dat assessments en migraties effectief zijn in het waarborgen van beveiliging. Assessment- en migratie-rapporten moeten regelmatig worden gegenereerd en moeten beschikbaar zijn voor toezichthouders tijdens inspecties. Daarnaast moeten organisaties kunnen aantonen dat zij processen hebben voor het valideren van gemigreerde workloads en voor het verbeteren van migratieprocessen op basis van lessons learned. Naast deze specifieke compliance-frameworks moeten Azure Migrate configuraties ook rekening houden met algemene beveiligingsvereisten zoals versleuteling, toegangscontroles, en logging en monitoring. Data die wordt verzameld door de Azure Migrate appliance en geüpload naar Azure moet worden versleuteld in transit, waarbij TLS 1.2 of hoger wordt gebruikt voor alle communicatie tussen de appliance en Azure. Data die wordt opgeslagen in Azure Migrate-projecten moet worden versleuteld at rest, waarbij Azure Storage-versleuteling wordt gebruikt om te waarborgen dat gegevens beschermd zijn tegen onbevoegde toegang. Toegangscontroles moeten worden geconfigureerd met Azure RBAC, waarbij alleen geautoriseerde gebruikers toegang hebben tot Azure Migrate-projecten en assessments. Voor organisaties met strikte beveiligingsvereisten kan het nodig zijn om specifieke RBAC-rollen te creëren die beperkte toegang bieden, bijvoorbeeld alleen-lezen toegang voor audit-teams of alleen-assessment toegang voor migratieteams zonder de mogelijkheid om migraties uit te voeren. Logging en monitoring moeten worden geconfigureerd met Azure Monitor en Log Analytics, waarbij alle migratie-activiteiten worden gelogd voor audit-doeleinden. Deze logs moeten worden opgeslagen met geschikte retentietijden die aansluiten bij wettelijke en organisatorische eisen, zodat zij beschikbaar zijn voor toekomstige audits en historische analyses.

Remediatie en Probleemoplossing

Gebruik PowerShell-script azure-migrate-configuration.ps1 (functie Invoke-Remediation) – Identificeert en lost problemen op met Azure Migrate configuratie en discovery.

Wanneer problemen optreden tijdens Azure Migrate configuratie, discovery, assessments of migraties, is een gestructureerde aanpak voor probleemoplossing noodzakelijk om ervoor te zorgen dat problemen snel worden geïdentificeerd en opgelost. Het eerste niveau van probleemoplossing omvat het controleren van de basisconfiguratie en connectiviteit. Veelvoorkomende problemen zijn onjuiste netwerkconfiguraties, firewallregels die communicatie blokkeren, of onvoldoende rechten voor de Azure Migrate appliance of Azure-accounts. Deze problemen kunnen worden geïdentificeerd door de status van de appliance te controleren in de Azure-portal, door logs te bekijken op de appliance zelf, of door netwerkconnectiviteit te testen tussen de appliance en Azure. Voor problemen met netwerkconnectiviteit kan het nodig zijn om firewallregels aan te passen, om ExpressRoute of VPN-verbindingen te configureren, of om proxy-instellingen te configureren voor de appliance. Voor problemen met rechten kan het nodig zijn om Azure RBAC-rollen aan te passen of om vCenter Server- of SCVMM-referenties te verifiëren. Het tweede niveau van probleemoplossing omvat het aanpakken van problemen met discovery of assessment-resultaten. Veelvoorkomende problemen zijn servers die niet worden ontdekt, onjuiste prestatiegegevens, of onnauwkeurige assessment-resultaten. Deze problemen kunnen worden veroorzaakt door onvoldoende rechten voor de appliance, door netwerkproblemen die het verzamelen van gegevens belemmeren, of door configuratieproblemen met de appliance zelf. Voor problemen met discovery moet worden gecontroleerd of de appliance correct is verbonden met vCenter Server of SCVMM, of de appliance voldoende rechten heeft, en of er netwerkconnectiviteit is tussen de appliance en de te ontdekken servers. Voor problemen met assessment-resultaten moet worden gecontroleerd of prestatiegegevens correct zijn verzameld, of assessment-instellingen correct zijn geconfigureerd, en of er servers zijn die speciale aandacht vereisen. In sommige gevallen kan het nodig zijn om discovery opnieuw uit te voeren of om assessment-instellingen aan te passen om nauwkeurigere resultaten te krijgen. Het derde niveau van probleemoplossing omvat het aanpakken van problemen tijdens daadwerkelijke migraties. Veelvoorkomende problemen zijn mislukte replicaties, langzame migraties, of servers die niet correct functioneren na migratie. Deze problemen kunnen worden veroorzaakt door onvoldoende netwerkbandbreedte, door configuratieproblemen met Azure-resources, of door compatibiliteitsproblemen tussen on-premises en Azure-omgevingen. Voor problemen met replicatie moet worden gecontroleerd of er voldoende netwerkbandbreedte is, of replicatie storage accounts correct zijn geconfigureerd, en of er geen firewallregels zijn die replicatie blokkeren. Voor problemen met langzame migraties kan het nodig zijn om netwerkbandbreedte te verhogen, om replicatie-instellingen aan te passen, of om migraties te plannen tijdens perioden met lagere netwerkbelasting. Voor problemen met gemigreerde servers moet worden gecontroleerd of Azure VM-configuraties correct zijn, of netwerkconfiguraties correct zijn, en of beveiligingsconfiguraties zoals netwerkbeveiligingsgroepen correct zijn geïmplementeerd. Het vierde niveau van probleemoplossing omvat het documenteren van problemen en oplossingen voor toekomstig gebruik. Wanneer problemen worden opgelost, moeten de oorzaken, oplossingen en lessons learned worden gedocumenteerd in een centraal kennisbeheersysteem, zodat teams kunnen leren van ervaringen en toekomstige problemen sneller kunnen worden opgelost. Deze documentatie moet worden gedeeld met relevante teams, zoals migratieteams, infrastructuurteams, en beveiligingsteams, zodat kennis wordt verspreid en organisaties kunnen profiteren van collectieve ervaring. Daarnaast moeten problemen en oplossingen worden gebruikt om migratieprocessen te verbeteren, waarbij wordt geïdentificeerd welke aspecten van configuratie, discovery, assessment of migratie kunnen worden verbeterd om toekomstige problemen te voorkomen. Door deze continue verbetering kunnen organisaties ervoor zorgen dat Azure Migrate configuratie en gebruik blijven bijdragen aan succesvolle migraties die voldoen aan beveiligings-, compliance- en prestatievereisten.

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 Azure Migrate Configuratie - Configuratie en monitoring van Azure Migrate-projecten .DESCRIPTION Configureert en monitort Azure Migrate-projecten voor cloudmigraties: - Controleert Azure Migrate-project configuratie - Monitort discovery-status en appliance-verbindingen - Controleert assessment-status en resultaten - Valideert migratie-configuraties - Genereert configuratie-rapporten Het script is bedoeld als ondersteunend hulpmiddel voor migratieteams om gestructureerd Azure Migrate te configureren en te monitoren. .NOTES Filename: azure-migrate-configuration.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/migration/azure-migrate-configuration.json NBVC Debug: Gebruik de omgevingsvariabele NBVC_LOCAL_DEBUG=1 om lokale testen uit te voeren zonder verbinding te maken met Azure-API's. .EXAMPLE .\azure-migrate-configuration.ps1 -Monitoring Controleert Azure Migrate-project configuratie en discovery-status .EXAMPLE .\azure-migrate-configuration.ps1 -Implementation Geeft richtlijnen voor Azure Migrate-project configuratie #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Migrate, Az.Resources [CmdletBinding()] param( [Parameter(HelpMessage = "Controleert Azure Migrate-project configuratie en discovery-status")] [switch]$Monitoring, [Parameter(HelpMessage = "Geeft richtlijnen voor Azure Migrate-project configuratie")] [switch]$Implementation, [Parameter(HelpMessage = "Identificeert problemen met Azure Migrate configuratie")] [switch]$Remediation, [Parameter(HelpMessage = "Preview wijzigingen zonder uit te voeren")] [switch]$WhatIf ) $ErrorActionPreference = 'Stop' $PolicyName = "Azure Migrate Configuratie" function Get-IsLocalDebug { param() return [bool]($env:NBVC_LOCAL_DEBUG -eq '1') } function Connect-RequiredServices { if (Get-IsLocalDebug) { Write-Verbose "NBVC_LOCAL_DEBUG is actief - Azure verbinding wordt overgeslagen." return } try { if (-not (Get-Module -ListAvailable -Name Az.Accounts)) { throw "Het PowerShell-module 'Az.Accounts' is niet beschikbaar. Installeer dit module voordat u het script gebruikt." } $ctx = Get-AzContext -ErrorAction SilentlyContinue if (-not $ctx) { Write-Host "Verbinding maken met Azure (Connect-AzAccount)..." -ForegroundColor Yellow Connect-AzAccount -ErrorAction Stop | Out-Null } else { Write-Verbose "Bestaande Azure context gevonden: $($ctx.Name)" } } catch { throw "Kon niet verbinden met Azure: $($_.Exception.Message)" } } function Get-AzureMigrateProjects { <# .SYNOPSIS Haalt alle Azure Migrate-projecten op voor de huidige subscription. .OUTPUTS Array van Azure Migrate-projecten. #> [CmdletBinding()] param() if (Get-IsLocalDebug) { # Gesimuleerde gegevens voor lokale debug en CI-tests return @( [PSCustomObject]@{ Name = "migrate-project-prod" ResourceGroupName = "rg-migration-prod" Location = "West Europe" DiscoveryStatus = "Active" DiscoveredServers = 45 Assessments = 3 LastDiscoveryTime = (Get-Date).AddHours(-2) } ) } Connect-RequiredServices try { $projects = Get-AzMigrateProject -ErrorAction SilentlyContinue if (-not $projects) { Write-Verbose "Geen Azure Migrate-projecten gevonden in de huidige subscription." return @() } $result = @() foreach ($project in $projects) { $rg = $project.Id.Split('/')[4] $location = (Get-AzResourceGroup -Name $rg -ErrorAction SilentlyContinue).Location # Simuleer discovery-status (in productie: ophalen uit Azure Migrate API) $discoveryStatus = "Active" $discoveredServers = 0 $assessments = 0 $lastDiscoveryTime = $null $result += [PSCustomObject]@{ Name = $project.Name ResourceGroupName = $rg Location = $location DiscoveryStatus = $discoveryStatus DiscoveredServers = $discoveredServers Assessments = $assessments LastDiscoveryTime = $lastDiscoveryTime } } return $result } catch { Write-Verbose "Fout bij ophalen Azure Migrate-projecten: $_" return @() } } function Test-AzureMigrateConfiguration { <# .SYNOPSIS Test Azure Migrate configuratie en retourneert gestructureerd resultaat. #> [CmdletBinding()] param() $projects = Get-AzureMigrateProjects if ($projects.Count -eq 0) { return @{ IsConfigured = $false Projects = @() Issues = @("Geen Azure Migrate-projecten gevonden") } } $issues = @() $configuredProjects = 0 foreach ($project in $projects) { $projectIssues = @() if ([string]::IsNullOrEmpty($project.Location)) { $projectIssues += "Project locatie niet geconfigureerd" } if ($project.DiscoveryStatus -ne "Active") { $projectIssues += "Discovery is niet actief" } if ($project.DiscoveredServers -eq 0) { $projectIssues += "Geen servers ontdekt" } if ($projectIssues.Count -eq 0) { $configuredProjects++ } else { $issues += "$($project.Name): $($projectIssues -join ', ')" } } $isConfigured = $configuredProjects -eq $projects.Count return @{ IsConfigured = $isConfigured Projects = $projects ConfiguredProjects = $configuredProjects TotalProjects = $projects.Count Issues = $issues } } function Invoke-Monitoring { <# .SYNOPSIS Controleert Azure Migrate-project configuratie en discovery-status. #> [CmdletBinding()] param() Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Monitoring" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan $result = Test-AzureMigrateConfiguration Write-Host "`nAZURE MIGRATE PROJECTEN" -ForegroundColor White Write-Host "-----------------------" -ForegroundColor White Write-Host "Totaal projecten: $($result.TotalProjects)" -ForegroundColor White Write-Host "Geconfigureerde projecten: $($result.ConfiguredProjects)" -ForegroundColor $(if ($result.ConfiguredProjects -eq $result.TotalProjects) { "Green" } else { "Yellow" }) if ($result.Projects.Count -gt 0) { Write-Host "`nPROJECT DETAILS" -ForegroundColor Cyan foreach ($project in $result.Projects) { Write-Host "`nProject: $($project.Name)" -ForegroundColor Cyan Write-Host " Resource Group: $($project.ResourceGroupName)" -ForegroundColor Gray Write-Host " Locatie: $($project.Location)" -ForegroundColor Gray Write-Host " Discovery Status: $($project.DiscoveryStatus)" -ForegroundColor $(if ($project.DiscoveryStatus -eq "Active") { "Green" } else { "Yellow" }) Write-Host " Ontdekte Servers: $($project.DiscoveredServers)" -ForegroundColor $(if ($project.DiscoveredServers -gt 0) { "Green" } else { "Yellow" }) Write-Host " Assessments: $($project.Assessments)" -ForegroundColor Gray if ($project.LastDiscoveryTime) { Write-Host " Laatste Discovery: $($project.LastDiscoveryTime)" -ForegroundColor Gray } } } if ($result.Issues.Count -gt 0) { Write-Host "`nGEƏDENTIFICEERDE PROBLEMEN" -ForegroundColor Yellow Write-Host "--------------------------" -ForegroundColor Yellow foreach ($issue in $result.Issues) { Write-Host " [WAARSCHUWING] $issue" -ForegroundColor Yellow } } Write-Host "`nAANBEVELINGEN" -ForegroundColor Cyan Write-Host "------------" -ForegroundColor Cyan if ($result.IsConfigured) { Write-Host " [OK] Azure Migrate configuratie is correct" -ForegroundColor Green Write-Host " • Blijf regelmatig monitoren voor discovery-status" -ForegroundColor Gray Write-Host " • Voer regelmatig assessments uit om migratieplannen up-to-date te houden" -ForegroundColor Gray } else { Write-Host " [WAARSCHUWING] Azure Migrate configuratie vereist aandacht" -ForegroundColor Yellow Write-Host " • Controleer Azure Migrate-project configuratie in Azure Portal" -ForegroundColor Yellow Write-Host " • Verifieer dat Azure Migrate appliance correct is geconfigureerd" -ForegroundColor Yellow Write-Host " • Controleer netwerkconnectiviteit tussen appliance en Azure" -ForegroundColor Yellow Write-Host " • Run met -Remediation voor gedetailleerde probleemoplossing" -ForegroundColor Yellow } Write-Host "`nVoor gedetailleerde informatie, zie:" -ForegroundColor Gray Write-Host " content/azure/migration/azure-migrate-configuration.json" -ForegroundColor Gray Write-Host "" return $result } function Invoke-Implementation { <# .SYNOPSIS Geeft richtlijnen voor Azure Migrate-project configuratie. .DESCRIPTION Deze functie geeft richtlijnen voor Azure Migrate configuratie maar voert geen automatische configuratie uit vanwege de complexiteit en organisatorische vereisten. #> [CmdletBinding()] param() Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Implementatie" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "`n[INFO] Azure Migrate configuratie vereist zorgvuldige planning en configuratie" -ForegroundColor Cyan Write-Host " vanwege BIO-vereisten en organisatorische verplichtingen." -ForegroundColor Cyan Write-Host "`nAanbevolen stappen:" -ForegroundColor Cyan Write-Host " 1. CreĆ«er een Azure Migrate-project in Azure Portal" -ForegroundColor White Write-Host " 2. Kies een Azure-regio die voldoet aan data residency-vereisten" -ForegroundColor White Write-Host " 3. Download en installeer de Azure Migrate appliance voor VMware of Hyper-V" -ForegroundColor White Write-Host " 4. Configureer de appliance met vCenter Server of SCVMM-referenties" -ForegroundColor White Write-Host " 5. Registreer de appliance bij het Azure Migrate-project" -ForegroundColor White Write-Host " 6. Wacht tot discovery is voltooid (kan enkele uren tot dagen duren)" -ForegroundColor White Write-Host " 7. Configureer assessment-instellingen (doelregio, sizing-methode, comfort factor)" -ForegroundColor White Write-Host " 8. Voer assessments uit en analyseer resultaten" -ForegroundColor White Write-Host " 9. Configureer migratietools voor daadwerkelijke migraties" -ForegroundColor White Write-Host " 10. Valideer gemigreerde workloads na migratie" -ForegroundColor White $result = Test-AzureMigrateConfiguration if (-not $result.IsConfigured) { Write-Host "`nEr zijn configuratieproblemen geĆÆdentificeerd:" -ForegroundColor Yellow foreach ($issue in $result.Issues) { Write-Host " • $issue" -ForegroundColor Yellow } } Write-Host "`nVoor gedetailleerde implementatie-instructies, zie:" -ForegroundColor Cyan Write-Host " content/azure/migration/azure-migrate-configuration.json" -ForegroundColor Gray Write-Host "" return $result } function Invoke-Remediation { <# .SYNOPSIS Identificeert problemen met Azure Migrate configuratie en geeft oplossingsrichtlijnen. #> [CmdletBinding()] param() Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Remediatie" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan $result = Test-AzureMigrateConfiguration if ($result.IsConfigured) { Write-Host "`n[OK] Azure Migrate configuratie is correct." -ForegroundColor Green Write-Host "Zorg dat configuratie actueel blijft en regelmatig wordt gecontroleerd." -ForegroundColor Cyan Write-Host "" return $result } Write-Host "`nGEƏDENTIFICEERDE PROBLEMEN" -ForegroundColor Yellow Write-Host "--------------------------" -ForegroundColor Yellow foreach ($issue in $result.Issues) { Write-Host " • $issue" -ForegroundColor Yellow } Write-Host "`nREMEDIATIESTAPPEN" -ForegroundColor Cyan Write-Host "-----------------" -ForegroundColor Cyan Write-Host "`n1. Controleer Azure Migrate-project configuratie:" -ForegroundColor White Write-Host " • Verifieer dat project is gecreĆ«erd in de juiste Azure-regio" -ForegroundColor Gray Write-Host " • Controleer dat assessment tools zijn toegevoegd aan het project" -ForegroundColor Gray Write-Host " • Verifieer dat gebruiker voldoende rechten heeft (Contributor of Owner)" -ForegroundColor Gray Write-Host "`n2. Controleer Azure Migrate appliance configuratie:" -ForegroundColor White Write-Host " • Verifieer dat appliance correct is geĆÆnstalleerd in vSphere of Hyper-V" -ForegroundColor Gray Write-Host " • Controleer dat appliance is geregistreerd bij het Azure Migrate-project" -ForegroundColor Gray Write-Host " • Verifieer netwerkconnectiviteit tussen appliance en Azure" -ForegroundColor Gray Write-Host " • Controleer firewallregels die communicatie kunnen blokkeren" -ForegroundColor Gray Write-Host "`n3. Controleer discovery-status:" -ForegroundColor White Write-Host " • Verifieer dat appliance verbinding heeft met vCenter Server of SCVMM" -ForegroundColor Gray Write-Host " • Controleer dat appliance voldoende rechten heeft voor discovery" -ForegroundColor Gray Write-Host " • Wacht voldoende tijd voor discovery (kan uren tot dagen duren)" -ForegroundColor Gray Write-Host " • Controleer logs op de appliance voor fouten of waarschuwingen" -ForegroundColor Gray Write-Host "`n4. Controleer assessment-configuratie:" -ForegroundColor White Write-Host " • Verifieer dat assessment-instellingen correct zijn geconfigureerd" -ForegroundColor Gray Write-Host " • Controleer doelregio, sizing-methode en comfort factor" -ForegroundColor Gray Write-Host " • Voer assessments opnieuw uit indien nodig" -ForegroundColor Gray Write-Host "`n5. Valideer migratie-configuratie:" -ForegroundColor White Write-Host " • Controleer dat migratietools correct zijn geconfigureerd" -ForegroundColor Gray Write-Host " • Verifieer netwerkconfiguraties voor gemigreerde VM's" -ForegroundColor Gray Write-Host " • Controleer beveiligingsconfiguraties (versleuteling, toegangscontroles)" -ForegroundColor Gray Write-Host "`nVoor gedetailleerde probleemoplossing, zie:" -ForegroundColor Cyan Write-Host " content/azure/migration/azure-migrate-configuration.json" -ForegroundColor Gray Write-Host "" # Voer monitoring uit om huidige status te tonen Invoke-Monitoring | Out-Null return $result } try { Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan if ($Monitoring) { Invoke-Monitoring | Out-Null } elseif ($Implementation) { Invoke-Implementation | Out-Null } elseif ($Remediation) { Invoke-Remediation | Out-Null } else { # Standaard: monitoring-uitvoer Invoke-Monitoring | Out-Null } } catch { Write-Error ("Fout tijdens uitvoering van {0}: {1}" -f $PolicyName, $_) exit 1 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Medium: Zonder correcte Azure Migrate configuratie kunnen organisaties geen accurate assessments uitvoeren, geen betrouwbare migratieplannen ontwikkelen en geen gecontroleerde migraties uitvoeren. Dit leidt tot mislukte migraties, onverwachte kosten, prestatieproblemen en beveiligingsrisico's. Voor Nederlandse overheidsorganisaties kan dit resulteren in niet-naleving van BIO-, ISO 27001- en NIS2-vereisten, wat kan leiden tot kritieke auditbevindingen, mogelijke boetes en reputatieschade.

Management Samenvatting

Azure Migrate configuratie vormt de fundamentele basis voor succesvolle cloudmigraties door organisaties in staat te stellen hun on-premises omgevingen systematisch te beoordelen, te plannen en te migreren naar Azure. Het omvat het opzetten van Azure Migrate-projecten, het installeren en configureren van assessment tools, het configureren van discovery en assessment-instellingen, en het instellen van migratietools. Dit artikel beschrijft de vereisten, implementatie, monitoring, compliance-eisen en remediatie voor effectieve Azure Migrate configuratie die bijdraagt aan succesvolle migraties die voldoen aan beveiligings-, compliance- en kostenvereisten.