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 Windows Virtuele 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 geen geheim handmatig in te voeren telkens wanneer u een resource implementeert.
- U kunt opgeven welke gebruikers of service-principals toegang hebben tot een geheim.
Vereisten
- U moet zich abonneren op een aanbieding die de Key Vault-service bevat.
- Installeer PowerShell voor Azure Stack Hub.
- Configureer uw PowerShell-omgeving.
In de volgende stappen wordt het proces beschreven dat is vereist voor het maken van een virtuele machine door het wachtwoord op te halen dat is opgeslagen in een Key Vault:
- Maak een Key Vault geheim.
- Werk het
azuredeploy.parameters.jsonbestand bij. - De sjabloon implementeren.
Notitie
U kunt deze stappen van de Azure Stack Development Kit (ASDK) of van een externe client gebruiken als u via VPN bent verbonden.
Een Key Vault geheim maken
Met het volgende script maakt u een sleutelkluis en slaat u een wachtwoord op in de sleutelkluis als geheim. Gebruik de -EnabledForDeployment parameter wanneer u de sleutelkluis maakt. Deze parameter zorgt ervoor dat de sleutelkluis kan worden verwezen vanuit Azure Resource Manager-sjablonen.
$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 vm Implementeren Windows met een wachtwoord in de sleutelkluissjabloon. Download de map 101-vm-secure-password op uw ontwikkelcomputer. Deze map bevat de azuredeploy.json bestanden en azuredeploy.parameters.json de bestanden die u nodig hebt in de volgende stappen.
Wijzig het azuredeploy.parameters.json bestand op basis van uw omgevingswaarden. De parameters van speciaal 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 nu de sjabloon 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:
