Tutorial: Bereitstellen von HSMs in einem vorhandenen virtuellen Netzwerk mithilfe von PowerShell
Der Azure-Dienst für dedizierte HSMs stellt ein physisches Gerät für die Verwendung durch einen Kunden mit umfassender administrativer Kontrolle und vollständiger Verwaltungsverantwortung bereit. Da es sich hierbei um physische Hardware handelt, muss Microsoft die Zuordnung dieser Geräte steuern, um eine effektive Kapazitätsverwaltung zu gewährleisten. Deshalb steht der Dedicated HSM-Dienst innerhalb eines Azure-Abonnements standardmäßig nicht für die Ressourcenbereitstellung zur Verfügung. Azure-Kunden, die Zugriff auf den Dedicated HSM-Dienst benötigen, müssen bei ihrem Microsoft-Kundenbetreuer die Registrierung für den Dedicated HSM-Dienst beantragen. Die Bereitstellung ist erst nach erfolgreichem Abschluss dieses Prozesses möglich.
Dieses Tutorial zeigt einen typischen Bereitstellungsprozess mit folgenden Kriterien:
- Ein Kunde verfügt bereits über ein virtuelles Netzwerk.
- Der Kunde verfügt über einen virtuellen Computer.
- Der Kunde muss seiner vorhandenen Umgebung HSM-Ressourcen hinzufügen.
Eine typische Bereitstellungsarchitektur mit Hochverfügbarkeit in mehreren Regionen sieht wie folgt aus:
Dieses Tutorial konzentriert sich auf die Integration eines HSM-Paars und des erforderlichen ExpressRoute-Gateways („Subnet 1“ in der obigen Abbildung) in ein vorhandenes virtuelles Netzwerk („VNET 1“ in der obigen Abbildung). Alle anderen Ressourcen sind Azure-Standardressourcen. Der gleiche Integrationsprozess kann auch für HSMs in „Subnet 4“ für „VNET 3“ (ebenfalls in der obigen Abbildung) verwendet werden.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Voraussetzungen
Da Azure Dedicated HSM derzeit nicht im Azure-Portal verfügbar ist, erfolgt die gesamte Interaktion mit dem Dienst über die Befehlszeile oder mithilfe von PowerShell. In diesem Tutorial wird PowerShell in Azure Cloud Shell verwendet. Sollten Sie noch nicht mit PowerShell vertraut sein, informieren Sie sich hier über die ersten Schritte mit Azure PowerShell.
Voraussetzungen:
- Sie müssen über einen zugewiesenen Microsoft-Konto-Manager verfügen und die geldpolitische Anforderung von fünf Millionen USD oder höher in der gesamt engagierten Azure-Umsätze jährlich erfüllen, um sich für das Onboarding und die Verwendung von Azure Dedicated HSM zu qualifizieren.
- Sie haben den Registrierungsprozess für Azure Dedicated HSM durchlaufen und sind zur Verwendung des Diensts berechtigt. Wenden Sie sich andernfalls an Ihren Microsoft-Kontobeauftragten.
- Sie haben eine Ressourcengruppe für diese Ressourcen und für die neuen Ressourcen erstellt, die in diesem Tutorial bereitgestellt werden.
- Sie haben bereits das erforderliche virtuelle Netzwerk und das Subnetz sowie VMs erstellt und möchten nun zwei HSMs in diese Bereitstellung integrieren.
Bei allen weiteren Schritten wird davon ausgegangen, dass Sie bereits zum Azure-Portal navigiert sind und Cloud Shell geöffnet haben (durch Auswählen von „>_“ rechts oben im Portal).
Bereitstellen eines dedizierten HSM
Die Bereitstellung der HSMs und die Integration in ein vorhandenes virtuelles Netzwerk über ein ExpressRoute-Gateway wird mithilfe des Befehlszeilentools SSH überprüft, um sicherzustellen, dass das HSM-Gerät für weitere Konfigurationsaktivitäten erreichbar und grundsätzlich verfügbar ist. In den folgenden Befehlen werden unter Verwendung einer Resource Manager-Vorlage HSM-Ressourcen und entsprechende Netzwerkressourcen erstellt.
Überprüfen der Featureregistrierung
Der Dedicated HSM-Dienst muss wie bereits erwähnt für Ihr Abonnement registriert sein, um Bereitstellungsaktivitäten ausführen zu können. Vergewissern Sie sich, dass diese Anforderung erfüllt ist, indem Sie im Azure-Portal den folgenden PowerShell-Befehl in Cloud Shell ausführen.
Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm
Fahren Sie erst mit den weiteren Schritten fort, wenn der Befehl der Status „Registriert“ zurückgibt, wie in der folgenden Abbildung gezeigt. Falls Sie noch nicht für diesen Dienst registriert sind, wenden Sie sich an Ihren Microsoft-Kundenbetreuer.
Erstellen von HSM-Ressourcen
Ein HSM-Gerät wird in einem virtuellen Netzwerk eines Kunden bereitgestellt, das ein Subnetz erfordert. Um die Kommunikation zwischen dem virtuellen Netzwerk und dem physischen Gerät zu ermöglichen, benötigt das HSM ein ExpressRoute-Gateway. Und schließlich wird noch ein virtueller Computer benötigt, um unter Verwendung der Thales-Clientsoftware auf das HSM-Gerät zugreifen zu können.
Sie können eine Dedicated HSM-Ressource mithilfe einer ARM-Vorlage erstellen, die auf dem folgenden Beispiel basiert. Sie müssen die Parameter aktualisieren, indem Sie die Zeilen mit „"value":""“ durch Ihre Ressourcennamen ersetzen.
namingInfix
: Präfix für Namen von HSM-RessourcenExistingVirtualNetworkName
: Name des für die HSMs verwendeten virtuellen NetzwerksDedicatedHsmResourceName1
: Name der HSM-Ressource im Rechenzentrum 1DedicatedHsmResourceName2
: Name der HSM-Ressource im Rechenzentrum 2hsmSubnetRange
: Subnetz-IP-Adressbereich für HSMsERSubnetRange
: Subnetz-IP-Adressbereich für das VNET-Gateway
Beispiel für diese Änderungen:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
"namingInfix": {
"value": "MyHSM"
},
"ExistingVirtualNetworkName": {
"value": "MyHSM-vnet"
},
"DedicatedHsmResourceName1": {
"value": "HSM1"
},
"DedicatedHsmResourceName2": {
"value": "HSM2"
},
"hsmSubnetRange": {
"value": "10.0.2.0/24"
},
"ERSubnetRange": {
"value": "10.0.255.0/26"
},
}
}
Die zugeordnete Resource Manager-Vorlagendatei erstellt sechs Ressourcen mit folgenden Informationen:
- Ein Subnetz für die HSMs im angegebenen VNET
- Ein Subnetz für das Gateway für virtuelle Netzwerke
- Ein Gateway für virtuelle Netzwerke, das das VNET mit den HSM-Geräten verbindet
- Eine öffentliche IP-Adresse für das Gateway
- Ein HSM im Rechenzentrum 1
- Ein HSM im Rechenzentrum 2
Nach dem Festlegen der Parameterwerte müssen die Dateien in die Cloud Shell-Dateifreigabe des Azure-Portals hochgeladen werden. Wählen Sie im Azure-Portal rechts oben das Cloud Shell-Symbol („>_“) aus. Dadurch wird der untere Teil des Bildschirms zu einer Befehlsumgebung. Sie haben dabei die Wahl zwischen Bash und PowerShell. Vergewissern Sie sich, dass „Bash“ ausgewählt ist.
Wählen Sie auf der Symbolleiste die Option „Hochladen/Herunterladen“ aus, um die Vorlagen- und Parameterdateien in Ihre Dateifreigabe hochzuladen:
Nach dem Hochladen der Dateien können Sie mit der Ressourcenerstellung beginnen.
Für das Erstellen einer neuen HSM-Ressourcen müssen einige Voraussetzungen erfüllt sein. Sie benötigen ein virtuelles Netzwerk mit Subnetzbereichen für Compute, HSMs und Gateway. Die folgenden Beispielbefehle zeigen, wie Sie ein solches virtuelles Netzwerk erstellen:
$compute = New-AzVirtualNetworkSubnetConfig `
-Name compute `
-AddressPrefix 10.2.0.0/24
$delegation = New-AzDelegation `
-Name "myDelegation" `
-ServiceName "Microsoft.HardwareSecurityModules/dedicatedHSMs"
$hsmsubnet = New-AzVirtualNetworkSubnetConfig `
-Name hsmsubnet `
-AddressPrefix 10.2.1.0/24 `
-Delegation $delegation
$gwsubnet= New-AzVirtualNetworkSubnetConfig `
-Name GatewaySubnet `
-AddressPrefix 10.2.255.0/26
New-AzVirtualNetwork `
-Name myHSM-vnet `
-ResourceGroupName myRG `
-Location westus `
-AddressPrefix 10.2.0.0/16 `
-Subnet $compute, $hsmsubnet, $gwsubnet
Hinweis
Bei der Konfiguration für das virtuelle Netzwerk ist insbesondere darauf zu achten, dass Delegierungen für das Subnetz des HSM-Geräts auf „Microsoft.HardwareSecurityModules/dedicatedHSMs“ festgelegt sind. Andernfalls funktioniert die HSM-Bereitstellung nicht.
Wenn alle Voraussetzungen erfüllt sind und die Resource Manager-Vorlage mit Ihren eindeutigen Namen aktualisiert wurde (mindestens der Ressourcengruppenname), führen Sie den folgenden Befehl aus:
New-AzResourceGroupDeployment -ResourceGroupName myRG `
-TemplateFile .\Deploy-2HSM-toVNET-Template.json `
-TemplateParameterFile .\Deploy-2HSM-toVNET-Params.json `
-Name HSMdeploy -Verbose
Die Ausführung dieses Befehls dauert etwa 20 Minuten. Die Option „-verbose“ sorgt dafür, dass der Status kontinuierlich angezeigt wird.
Nach erfolgreichem Abschluss des Vorgangs ("provisioningState": "Succeeded") können Sie sich auf Ihrer vorhandenen VM anmelden und sich per SSH vergewissern, dass das HSM-Gerät verfügbar ist.
Überprüfen der Bereitstellung
Führen Sie die folgenden Befehle aus, um sich zu vergewissern, dass die Geräte bereitgestellt wurden, und um die Geräteattribute anzuzeigen. Achten Sie darauf, dass die Ressourcengruppe korrekt festgelegt ist und der Ressourcenname exakt der Angabe in der Parameterdatei entspricht.
$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSM1"
Get-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName
Die Ressource wird nun auch im Azure-Ressourcen-Explorer angezeigt. Erweitern Sie im Explorer auf der linken Seite nacheinander die Option „Abonnements“, das Abonnement für dedizierte HSMs, die Option „Ressourcengruppen“ und die verwendete Ressourcengruppe, und wählen Sie anschließend das Element „Ressourcen“ aus.
Testen der Bereitstellung
Zum Testen der Bereitstellung wird zunächst eine Verbindung mit einer VM, die auf die HSMs Zugriff hat, und anschließend eine direkte Verbindung mit dem HSM-Gerät hergestellt. Dadurch wird überprüft, ob das HSM erreichbar ist. Die Verbindung mit dem virtuellen Computer wird mithilfe des ssh-Tools hergestellt. Der Befehl sieht in etwa wie folgt aus (allerdings mit dem Administratornamen und dem DNS-Namen aus dem Parameter):
ssh adminuser@hsmlinuxvm.westus.cloudapp.azure.com
Als Kennwort muss das Kennwort aus der Parameterdatei verwendet werden. Nach der Anmeldung auf der Linux-VM können Sie sich unter Verwendung der privaten IP-Adresse, die im Portal für die Ressource „<prefix>hsm_vnic“ angegeben ist, beim HSM anmelden.
(Get-AzResource -ResourceGroupName myRG -Name HSMdeploy -ExpandProperties).Properties.networkProfile.networkInterfaces.privateIpAddress
Wenn Sie die IP-Adresse ermittelt haben, führen Sie den folgenden Befehl aus:
ssh tenantadmin@<ip address of HSM>
Ist der Vorgang erfolgreich, werden Sie zur Eingabe eines Kennworts aufgefordert. Das Standardkennwort lautet „PASSWORD“. Das HSM fordert Sie zur Änderung des Kennworts auf. Legen Sie ein sicheres Kennwort fest, und verwenden Sie die von Ihrer Organisation bevorzugte Vorgehensweise, um es zu speichern und sicher aufzubewahren.
Wichtig
Sollte das Kennwort verloren gehen, muss das HSM zurückgesetzt werden, wodurch auch Ihre Schlüssel verloren gehen.
Führen Sie nach dem Herstellen der SSH-Verbindung mit dem HSM-Gerät den folgenden Befehl aus, um sich zu vergewissern, dass das HSM betriebsbereit ist.
hsm show
Die Ausgabe sollte in etwa wie folgt aussehen:
Sie haben nun alle Ressourcen für eine hoch verfügbare Bereitstellung mit zwei HSMs zugeordnet und den Zugriff sowie die Betriebsbereitschaft geprüft. Die weiteren Konfigurations-/Testschritte erfordern eine intensivere Interaktion mit dem eigentlichen HSM-Gerät. Gehen Sie hierzu gemäß der Anleitung in Kapitel 7 des Administratorhandbuchs für Thales Luna 7 HSM vor, um das HSM zu initialisieren und Partitionen zu erstellen. Die gesamte Dokumentation und Software kann direkt von Thales heruntergeladen werden, nachdem Sie sich beim Kundensupportportal von Thales registriert und eine Kunden-ID erhalten haben. Laden Sie die Version 7.2 der Clientsoftware herunter, um alle erforderlichen Komponenten zu erhalten.
Löschen oder Bereinigen von Ressourcen
Wenn Sie das HSM-Gerät nicht mehr benötigen, kann es als Ressource gelöscht und wieder dem freien Pool zugeführt werden. Ein wichtiger Aspekt bei diesem Schritt sind natürlich vertrauliche Kundendaten, die sich ggf. auf dem Gerät befinden. Ein Gerät lässt sich am besten durch dreimalige Falscheingabe des HSM-Administratorkennworts nullen. (Hinweis: Hierbei handelt es sich um das Kennwort des HSM-Administrators, nicht um das des Applianceadministrators.) Als Sicherheitsmaßnahme zum Schutz der Schlüsseldaten kann das Gerät erst als Azure-Ressource gelöscht werden, wenn es sich im genullten Zustand befindet.
Hinweis
Wenden Sie sich bei Problemen mit der Thales-Gerätekonfiguration an den Thales-Kundensupport.
Wenn Sie die HSM-Ressource in Azure entfernen möchten, können Sie den folgenden Befehl verwenden. Ersetzen Sie dabei die „$“-Variablen durch Ihre eindeutigen Parameter:
$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSMdeploy"
Remove-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName
Nächste Schritte
Nach Abschluss dieses Tutorials verfügen Sie über bereitgestellte dedizierte HSM-Ressourcen, die in Ihrem virtuellen Netzwerk verfügbar sind. Diese Bereitstellung kann nun nach Bedarf mit weiteren Ressourcen für Ihre bevorzugte Bereitstellungsarchitektur ergänzt werden. Weitere hilfreiche Informationen für die Bereitstellungsplanung finden Sie in den Konzeptdokumenten. Es empfiehlt sich, zwei HSMs in einer primären Region (für die Verfügbarkeit auf Rackebene) und zwei HSMs in einer sekundären Region (für die regionale Verfügbarkeit) zu verwenden. Die Vorlagendatei aus diesem Tutorial kann problemlos als Grundlage für eine Bereitstellung mit zwei HSMs verwendet werden. Dabei müssen allerdings die Parameter an Ihre individuellen Anforderungen angepasst werden.