Erstellen einer abgeschirmten VM mithilfe von PowerShellCreate a shielded VM using PowerShell

Gilt für: Windows Server 2019, Windows Server (halbjährlicher Kanal), Windows Server 2016Applies to: Windows Server 2019, Windows Server (Semi-Annual Channel), Windows Server 2016

In der Produktionsumgebung verwenden Sie in der Regel einen Fabric-Manager (z. b. VMM), um abgeschirmte VMS bereitzustellen.In production, you would typically use a fabric manager (e.g. VMM) to deploy shielded VMs. Die unten dargestellten Schritte ermöglichen Ihnen jedoch, das gesamte Szenario ohne Fabric-Manager bereitzustellen und zu überprüfen.However, the steps illustrated below allow you to deploy and validate the entire scenario without a fabric manager.

Kurz gesagt, erstellen Sie einen Vorlagen Datenträger, eine geschützte Datendatei, eine Antwortdatei für die unbeaufsichtigte Installation und andere Sicherheits Artefakte auf einem beliebigen Computer. Kopieren Sie diese Dateien dann auf einen überwachten Host, und stellen Sie die abgeschirmte VM bereit.In a nutshell, you will create a template disk, a shielding data file, an unattended installation answer file and other security artifacts on any machine, then copy these files to a guarded host and provision the shielded VM.

Erstellen einer signierten Vorlagen FestplatteCreate a signed template disk

Zum Erstellen einer neuen abgeschirmten VM benötigen Sie zunächst einen abgeschirmten VM-Vorlagen Datenträger, der mit dem zugehörigen Betriebssystem Volume (bzw. Start-und Stamm Partitionen unter Linux) vorverschlüsselt ist.To create a new shielded VM, you first need a shielded VM template disk that is pre-encrypted with its OS volume (or boot and root partitions on Linux) signed. Befolgen Sie die nachstehenden Links, um weitere Informationen zum Erstellen eines Vorlagen Datenträgers zu finden.Follow the links below for more information on how to create a template disk.

Außerdem benötigen Sie eine Kopie des volumesignaturkatalogs des Datenträgers, um die Schutz Datendatei zu erstellen.You will also need a copy of the disk's volume signature catalog to create the shielding data file. Zum Speichern dieser Datei führen Sie den folgenden Befehl auf dem Computer aus, auf dem Sie den Vorlagen Datenträger erstellt haben:To save this file, run the following command on the machine where you created the template disk:

Save-VolumeSignatureCatalog -TemplateDiskPath "C:\temp\MyTemplateDisk.vhdx" -VolumeSignatureCatalogPath "C:\temp\MyTemplateDiskCatalog.vsc"

Überwachungs Metadaten herunterladenDownload guardian metadata

Für jedes virtualisierungsfabrics, in dem Sie Ihre abgeschirmte VM ausführen möchten, müssen Sie die Überwachungs Metadaten für die HGS-Cluster des Fabrics abrufen.For each of the virtualization fabrics where you wish to run your shielded VM, you will need to obtain guardian metadata for the fabrics' HGS clusters. Ihr Hostinganbieter sollte diese Informationen für Sie bereitstellen können.Your hosting provider should be able to provide this information for you.

Wenn Sie sich in einer Unternehmensumgebung befinden und mit dem HGS-Server kommunizieren können, finden Sie die Überwachungs Metadaten unter http://<hgsclustername>/KeyProtection/Service/Metadata/2014-07/Metadata.XMLIf you are in an enterprise environment and can communicate with the HGS server, the guardian metadata is available at http://<HGSCLUSTERNAME>/KeyProtection/service/metadata/2014-07/metadata.xml

Erstellen einer Datei mit geschützten Daten (PDK)Create Shielding Data (PDK) file

Geschützte Daten werden erstellt und im Besitz von Mandanten-VM-Besitzern. Sie enthalten Geheimnisse, die zum Erstellen von abgeschirmten VMS erforderlich sind, die vor dem Fabric-Administrator geschützt werden müssen, z. b. das Administrator KennwortShielding Data is created and owned by tenant VM owners and contains secrets needed to create shielded VMs that must be protected from the fabric admin, such as the shielded VM's administrator password. Geschützte Daten werden so verschlüsselt, dass Sie nur von den HGS-Servern und dem Mandanten entschlüsselt werden können.Shielding Data is encrypted such that only the HGS servers and tenant can decrypt it. Nachdem Sie vom Mandanten/VM-Besitzer erstellt wurde, muss die resultierende PDK-Datei in das geschützte Fabric kopiert werden.Once created by the tenant/VM owner, the resulting PDK file must be copied to the guarded fabric. Weitere Informationen finden Sie unter Was sind geschützte Daten und warum ist es erforderlich?.For more information, see What is shielding data and why is it necessary?.

Außerdem benötigen Sie eine Antwortdatei für die unbeaufsichtigte Installation (Unattend. XML für Windows, variiert für Linux).In addition, you will need an unattended installation answer file (unattend.xml for Windows, varies for Linux). Eine Anleitung zum Einbeziehen der Antwortdatei finden Sie unter Erstellen einer Antwortdatei .See Create an answer file for guidance on what to include in the answer file.

Führen Sie die folgenden Cmdlets auf einem Computer aus, auf dem die Remoteserver-Verwaltungstools für abgeschirmte VMS installiert ist.Run the following cmdlets on a machine with the Remote Server Administration Tools for Shielded VMs installed. Wenn Sie ein PDK für eine Linux-VM erstellen, müssen Sie dies auf einem Server ausführen, auf dem Windows Server, Version 1709 oder höher, ausgeführt wird.If you are creating a PDK for a Linux VM, you must do this on a server running Windows Server, version 1709 or later.

# Create owner certificate, don't lose this!
# The certificate is stored at Cert:\LocalMachine\Shielded VM Local Certificates
$Owner = New-HgsGuardian –Name 'Owner' –GenerateCertificates
 
# Import the HGS guardian for each fabric you want to run your shielded VM
$Guardian = Import-HgsGuardian -Path C:\HGSGuardian.xml -Name 'TestFabric'
 
# Create the PDK file
# The "Policy" parameter describes whether the admin can see the VM's console or not
# Use "EncryptionSupported" if you are testing out shielded VMs and want to debug any issues during the specialization process
New-ShieldingDataFile -ShieldingDataFilePath 'C:\temp\Contoso.pdk' -Owner $Owner –Guardian $guardian –VolumeIDQualifier (New-VolumeIDQualifier -VolumeSignatureCatalogFilePath 'C:\temp\MyTemplateDiskCatalog.vsc' -VersionRule Equals) -WindowsUnattendFile 'C:\unattend.xml' -Policy Shielded

Bereitstellen einer abgeschirmten VM auf einem überwachten HostProvision shielded VM on a guarded host

Kopieren Sie die Vorlagen Datenträger-Datei (serveros. vhdx) und die PDK-Datei (". PDK") auf den überwachten Host, um die Bereitstellung vorzubereiten.Copy the template disk file (ServerOS.vhdx) and the PDK file (contoso.pdk) to the guarded host to get ready for deployment.

Installieren Sie auf dem überwachten Host das PowerShell-Modul für geschützte Fabric-Tools, das das Cmdlet New-shieldedvm enthält, um den Bereitstellungs Prozess zu vereinfachen.On the guarded host, install the Guarded Fabric Tools PowerShell module, which contains the New-ShieldedVM cmdlet to simplify the provisioning process. Wenn der überwachte Host auf das Internet zugreifen kann, führen Sie den folgenden Befehl aus:If your guarded host has access to the Internet, run the following command:

Install-Module GuardedFabricTools -Repository PSGallery -MinimumVersion 1.0.0

Sie können das Modul auch auf einen anderen Computer herunterladen, der über Internet Zugriff verfügt, und das resultierende Modul in C:\Program Files\WindowsPowerShell\Modules auf dem überwachten Host kopieren.You can also download the module on another computer that has Internet access and copy the resulting module to C:\Program Files\WindowsPowerShell\Modules on the guarded host.

Save-Module GuardedFabricTools -Repository PSGallery -MinimumVersion 1.0.0 -Path C:\temp\

Nachdem das Modul installiert wurde, können Sie den abgeschirmten virtuellen Computer bereitstellen.Once the module is installed, you're ready to provision your shielded VM.

New-ShieldedVM -Name 'MyShieldedVM' -TemplateDiskPath 'C:\temp\MyTemplateDisk.vhdx' -ShieldingDataFilePath 'C:\temp\Contoso.pdk' -Wait

Wenn die Antwortdatei für die Schutz Daten Spezialisierungs Werte enthält, können Sie die Ersatzwerte für New-shieldedvm bereitstellen.If your shielding data answer file includes specialization values, you can provide the replacement values to New-ShieldedVM. In diesem Beispiel wird die Antwortdatei mit Platzhalterwerten für eine statische IPv4-Adresse konfiguriert.In this example, the answer file is configured with placeholder values for a static IPv4 address.

$specializationValues = @{
    "@IP4Addr-1@" = "192.168.1.10"
    "@MacAddr-1@" = "Ethernet"
    "@Prefix-1-1@" = "192.168.1.0/24"
    "@NextHop-1-1@" = "192.168.1.254"
}
New-ShieldedVM -Name 'MyStaticIPVM' -TemplateDiskPath 'C:\temp\MyTemplateDisk.vhdx' -ShieldingDataFilePath 'C:\temp\Contoso.pdk' -SpecializationValues $specializationValues -Wait

Wenn Ihr Vorlagen Datenträger ein Linux-basiertes Betriebssystem enthält, schließen Sie beim Ausführen des Befehls das -Linux-Flag ein:If your template disk contains a Linux-based OS, include the -Linux flag when running the command:

New-ShieldedVM -Name 'MyLinuxVM' -TemplateDiskPath 'C:\temp\MyTemplateDisk.vhdx' -ShieldingDataFilePath 'C:\temp\Contoso.pdk' -Wait -Linux

Überprüfen Sie den Hilfe Inhalt mithilfe Get-Help New-ShieldedVM -Full, um mehr über andere Optionen zu erfahren, die Sie an das Cmdlet übergeben können.Check the help content using Get-Help New-ShieldedVM -Full to learn more about other options you can pass to the cmdlet.

Nachdem die Bereitstellung des virtuellen Computers abgeschlossen ist, wird er in die betriebssystemspezifische Spezialisierungs Phase eingegeben, in der er zur Verwendung bereit ist.Once the VM finishes provisioning, it will enter the OS-specific specialization phase, after which it will be ready for use. Stellen Sie sicher, dass Sie die VM mit einem gültigen Netzwerk verbinden, damit Sie eine Verbindung mit dem virtuellen Computer herstellen können, sobald er ausgeführt wird (mithilfe von RDP, PowerShell, SSH oder Ihrem bevorzugten Verwaltungs Tool).Be sure to connect the VM to a valid network so you can connect to it once it is running (using RDP, PowerShell, SSH, or your preferred management tool).

Ausführen von abgeschirmten VMS auf einem Hyper-V-ClusterRunning Shielded VMs on a Hyper-V cluster

Wenn Sie versuchen, abgeschirmte VMS auf geclusterten überwachten Hosts (mithilfe eines Windows-Failoverclusters) bereitzustellen, können Sie den abgeschirmten virtuellen Computer mit dem folgenden Cmdlet so konfigurieren, dass er hoch verfügbar ist:If you are trying to deploy shielded VMs on clustered guarded hosts (using a Windows Failover Cluster), you can configure the shielded VM to be highly available using the following cmdlet:

Add-ClusterVirtualMachineRole -VMName 'MyShieldedVM' -Cluster <Hyper-V cluster name>

Der abgeschirmte virtuelle Computer kann nun im Cluster Live migriert werden.The shielded VM can now be live migrated within the cluster.

Nächster SchrittNext step