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
- Du måste prenumerera på ett erbjudande som innehåller Key Vault-tjänsten.
- Installera PowerShell för Azure Stack Hub.
- Konfigurera Din PowerShell-miljö.
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:
- Skapa en Key Vault hemlighet.
-
azuredeploy.parameters.json
Uppdatera filen. - 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 Distribuera virtuell Windows-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: