Freigeben über


Bereitstellen einer Azure Stack Hub-VM mithilfe eines kennworts, das im Key Vault gespeichert ist

In diesem Artikel wird die Bereitstellung eines virtuellen Windows Server-Computers (VM) mithilfe eines kennworts ausgeführt, das in Azure Stack Hub Key Vault gespeichert ist. Die Verwendung eines Schlüsseltresorkennworts ist sicherer als das Übergeben eines Nur-Text-Kennworts.

Überblick

Sie können Werte wie ein Kennwort als geheimer Schlüssel in einem Azure Stack Hub-Schlüsseltresor speichern. Nachdem Sie einen geheimen Schlüssel erstellt haben, können Sie ihn in Azure Resource Manager-Vorlagen referenzieren. Die Verwendung von geheimen Schlüsseln mit dem Ressourcen-Manager bietet die folgenden Vorteile:

  • Sie müssen nicht jedes Mal, wenn Sie eine Ressource bereitstellen, manuell geheim eingeben.
  • Sie können angeben, welche Benutzer oder Dienstprinzipale auf einen geheimen Schlüssel zugreifen können.

Voraussetzungen

In den folgenden Schritten wird der Prozess beschrieben, der zum Erstellen eines virtuellen Computers erforderlich ist, indem das in einem Key Vault gespeicherte Kennwort abgerufen wird:

  1. Erstellen Sie einen Schlüsseltresorschlüssel.
  2. Aktualisieren Sie die azuredeploy.parameters.json-Datei.
  3. Stellen Sie die Vorlage bereit.

Hinweis

Sie können diese Schritte aus dem Azure Stack Development Kit (ASDK) oder von einem externen Client ausführen, wenn Sie über VPN verbunden sind.

Erstellen eines Schlüsseltresorschlüssels

Das folgende Skript erstellt einen Schlüsseltresor und speichert ein Kennwort im Schlüsseltresor als geheim. Verwenden Sie den -EnabledForDeployment Parameter, wenn Sie den Schlüsseltresor erstellen. Dieser Parameter stellt sicher, dass der Schlüsseltresor aus Azure Resource Manager-Vorlagen referenziert werden kann.


$vaultName = "contosovault"
$resourceGroup = "contosovaultrg"
$location = "local"
$secretName = "MySecret"

New-AzResourceGroup `
  -Name $resourceGroup `
  -Location $location

New-AzKeyVault `
  -VaultName $vaultName `
  -ResourceGroupName $resourceGroup `
  -Location $location
  -EnabledForTemplateDeployment

$secretValue = ConvertTo-SecureString -String '<Password for your virtual machine>' -AsPlainText -Force

Set-AzureKeyVaultSecret `
  -VaultName $vaultName `
  -Name $secretName `
  -SecretValue $secretValue

Wenn Sie das vorherige Skript ausführen, enthält die Ausgabe den geheimen URI (Uniform Resource Identifier). Notieren Sie sich diesen URI. Sie müssen in der Vorlage " Bereitstellen von Windows-VM mit Kennwort" in der Schlüsseltresorvorlage darauf verweisen. Laden Sie den Ordner "101-vm-secure-password" auf Ihren Entwicklungscomputer herunter. Dieser Ordner enthält die azuredeploy.json dateien, azuredeploy.parameters.json die Sie in den nächsten Schritten benötigen.

Ändern Sie die azuredeploy.parameters.json Datei entsprechend ihren Umgebungswerten. Die Parameter von besonderem Interesse sind der Tresorname, die Tresorressourcengruppe und der geheime URI (wie vom vorherigen Skript generiert). Die folgende Datei ist ein Beispiel für eine Parameterdatei.

Aktualisieren der azuredeploy.parameters.json-Datei

Aktualisieren Sie die azuredeploy.parameters.json Datei mit dem KeyVault-URI, "secretName", "adminUsername" der VM-Werte gemäß Ihrer Umgebung. Die folgende JSON-Datei zeigt ein Beispiel für die Vorlagenparameterdatei:

{
    "$schema":  "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion":  "1.0.0.0",
    "parameters":  {
       "adminUsername":  {
         "value":  "demouser"
          },
       "adminPassword":  {
         "reference":  {
            "keyVault":  {
              "id":  "/subscriptions/xxxxxx/resourceGroups/RgKvPwd/providers/Microsoft.KeyVault/vaults/KvPwd"
              },
            "secretName":  "MySecret"
         }
       },
       "dnsLabelPrefix":  {
          "value":  "mydns123456"
        },
        "windowsOSVersion":  {
          "value":  "2016-Datacenter"
        }
    }
}

Bereitstellung von Vorlagen

Stellen Sie nun die Vorlage mithilfe des folgenden PowerShell-Skripts bereit:

New-AzResourceGroupDeployment `
  -Name KVPwdDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateFile "<Fully qualified path to the azuredeploy.json file>" `
  -TemplateParameterFile "<Fully qualified path to the azuredeploy.parameters.json file>"

Wenn die Vorlage erfolgreich bereitgestellt wird, führt sie zur folgenden Ausgabe:

Bereitstellungsausgabe

Nächste Schritte