Een Azure Stack Hub-VM implementeren met behulp van een wachtwoord dat is opgeslagen in Key Vault

In dit artikel wordt stapsgewijs uitgelegd hoe u een virtuele Windows Server-machine (VM) implementeert met behulp van een wachtwoord dat is opgeslagen in Azure Stack Hub Key Vault. Het gebruik van een sleutelkluiswachtwoord is veiliger dan het doorgeven van een wachtwoord voor tekst zonder opmaak.

Overzicht

U kunt waarden zoals een wachtwoord opslaan als een geheim in een Azure Stack Hub-sleutelkluis. Nadat u een geheim hebt gemaakt, kunt u ernaar verwijzen in Azure Resource Manager-sjablonen. Het gebruik van geheimen met Resource Manager biedt de volgende voordelen:

  • U hoeft het geheim niet telkens handmatig in te voeren wanneer u een resource implementeert.
  • U kunt opgeven welke gebruikers of service-principals toegang hebben tot een geheim.

Vereisten

In de volgende stappen wordt het proces beschreven dat nodig is voor het maken van een virtuele machine door het wachtwoord op te halen dat is opgeslagen in een Key Vault:

  1. Maak een Key Vault geheim.
  2. Werk het bestand bij azuredeploy.parameters.json .
  3. De sjabloon implementeren.

Notitie

U kunt deze stappen gebruiken vanuit de Azure Stack Development Kit (ASDK) of vanuit een externe client als u verbinding hebt via VPN.

Een Key Vault geheim maken

Met het volgende script wordt een sleutelkluis gemaakt en wordt een wachtwoord als geheim opgeslagen in de sleutelkluis. Gebruik de -EnabledForDeployment parameter bij het maken van de sleutelkluis. Deze parameter zorgt ervoor dat er vanuit Azure Resource Manager-sjablonen naar de sleutelkluis kan worden verwezen.


$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

Wanneer u het vorige script uitvoert, bevat de uitvoer de geheime URI (Uniform Resource Identifier). Noteer deze URI. U moet ernaar verwijzen in de sjabloon Windows-VM met wachtwoord implementeren in sleutelkluis . Download de map 101-vm-secure-password naar uw ontwikkelcomputer. Deze map bevat de azuredeploy.json bestanden en azuredeploy.parameters.json , die u nodig hebt in de volgende stappen.

Wijzig het azuredeploy.parameters.json bestand op basis van uw omgevingswaarden. De parameters van bijzonder belang zijn de kluisnaam, de kluisresourcegroep en de geheime URI (zoals gegenereerd door het vorige script). Het onderstaande bestand is een voorbeeld van een parameterbestand.

Het bestand azuredeploy.parameters.json bijwerken

Werk het azuredeploy.parameters.json bestand bij met de KeyVault-URI, secretName, adminUsername van de VM-waarden volgens uw omgeving. In het volgende JSON-bestand ziet u een voorbeeld van het sjabloonparametersbestand:

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

Sjabloonimplementatie

Implementeer de sjabloon nu met behulp van het volgende PowerShell-script:

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

Wanneer de sjabloon is geïmplementeerd, resulteert dit in de volgende uitvoer:

Implementatie-uitvoer

Volgende stappen