Distribuera en virtuell Azure Stack Hub-dator med ett lösenord som lagras i Key Vault

Den här artikeln beskriver hur du distribuerar en virtuell Windows Server-dator (VM) med ett lösenord som lagras i Azure Stack Hub Key Vault. Det är säkrare att använda ett nyckelvalvslösenord än att skicka ett lösenord för oformaterad text.

Översikt

Du kan lagra värden som ett lösenord som en hemlighet i ett Azure Stack Hub-nyckelvalv. När du har skapat en hemlighet kan du referera till den i Azure Resource Manager mallar. Att använda hemligheter med Resource Manager ger följande fördelar:

  • Du behöver inte ange hemlighet manuellt varje gång du distribuerar en resurs.
  • Du kan ange vilka användare eller tjänstens huvudnamn som ska ha åtkomst till en hemlighet.

Förutsättningar

Följande steg beskriver den process som krävs för att skapa en virtuell dator genom att hämta lösenordet som lagras i en Key Vault:

  1. Skapa en Key Vault hemlighet.
  2. azuredeploy.parameters.json Uppdatera filen.
  3. Distribuera mallen.

Anteckning

Du kan använda de här stegen från Azure Stack Development Kit (ASDK) eller från en extern klient om du är ansluten via VPN.

Skapa en Key Vault hemlighet

Följande skript skapar ett nyckelvalv och lagrar ett lösenord i nyckelvalvet som en hemlighet. Använd parametern -EnabledForDeployment när du skapar nyckelvalvet. Den här parametern ser till att nyckelvalvet kan refereras från Azure Resource Manager-mallar.


$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

När du kör föregående skript innehåller utdata den hemliga URI:n (Uniform Resource Identifier). Anteckna den här URI:n. Du måste referera till den i mallen Deploy Windows VM with password in key vault (Distribuera Windows virtuell dator med lösenord i key vault). Ladda ned mappen 101-vm-secure-password till utvecklingsdatorn. Den här mappen innehåller azuredeploy.json filerna och azuredeploy.parameters.json som du behöver i nästa steg.

azuredeploy.parameters.json Ändra filen enligt dina miljövärden. Parametrarna av särskilt intresse är valvnamnet, valvresursgruppen och den hemliga URI:n (som genererades av föregående skript). Filen nedan är ett exempel på en parameterfil.

Uppdatera filen azuredeploy.parameters.json

azuredeploy.parameters.json Uppdatera filen med KeyVault URI, secretName, adminUsername för de virtuella datorvärdena enligt din miljö. Följande JSON-fil visar ett exempel på filen med mallparametrar:

{
    "$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"
        }
    }
}

Malldistribution

Distribuera nu mallen med hjälp av följande PowerShell-skript:

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>"

När mallen har distribuerats resulterar den i följande utdata:

Deployment output

Nästa steg