Wdrażanie maszyny wirtualnej usługi Azure Stack Hub przy użyciu hasła przechowywanego w Key Vault
W tym artykule opisano kroki wdrażania maszyny wirtualnej z systemem Windows Server przy użyciu hasła przechowywanego w usłudze Azure Stack Hub Key Vault. Używanie hasła magazynu kluczy jest bezpieczniejsze niż przekazywanie hasła w postaci zwykłego tekstu.
Omówienie
Wartości takie jak hasło można przechowywać jako wpis tajny w magazynie kluczy usługi Azure Stack Hub. Po utworzeniu wpisu tajnego możesz odwoływać się do niego w szablonach usługi Azure Resource Manager. Korzystanie z wpisów tajnych z Resource Manager zapewnia następujące korzyści:
- Nie musisz ręcznie wprowadzać wpisu tajnego za każdym razem, gdy wdrażasz zasób.
- Możesz określić, którzy użytkownicy lub jednostki usługi mogą uzyskiwać dostęp do wpisu tajnego.
Wymagania wstępne
- Musisz zasubskrybować ofertę obejmującą usługę Key Vault.
- Zainstaluj program PowerShell dla usługi Azure Stack Hub.
- Skonfiguruj środowisko programu PowerShell.
W poniższych krokach opisano proces wymagany do utworzenia maszyny wirtualnej przez pobranie hasła przechowywanego w Key Vault:
- Utwórz wpis tajny Key Vault.
-
azuredeploy.parameters.json
Zaktualizuj plik. - Wdrażanie szablonu.
Uwaga
Możesz użyć tych kroków z zestawu Azure Stack Development Kit (ASDK) lub z klienta zewnętrznego, jeśli masz połączenie za pośrednictwem sieci VPN.
Tworzenie wpisu tajnego Key Vault
Poniższy skrypt tworzy magazyn kluczy i przechowuje hasło w magazynie kluczy jako wpis tajny. Użyj parametru -EnabledForDeployment
podczas tworzenia magazynu kluczy. Ten parametr zapewnia, że można odwoływać się do magazynu kluczy z szablonów usługi Azure Resource Manager.
$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
Po uruchomieniu poprzedniego skryptu dane wyjściowe zawierają tajny identyfikator URI (uniform Resource Identifier). Zanotuj ten identyfikator URI. Należy odwołać się do niej w szablonie Wdrażanie maszyny wirtualnej z systemem Windows z hasłem w magazynie kluczy . Pobierz folder 101-vm-secure-password na komputer deweloperów. Ten folder zawiera azuredeploy.json
pliki i azuredeploy.parameters.json
, które będą potrzebne w następnych krokach.
Zmodyfikuj azuredeploy.parameters.json
plik zgodnie z wartościami środowiska. Parametry o szczególnym znaczeniu to nazwa magazynu, grupa zasobów magazynu i identyfikator URI wpisu tajnego (wygenerowany przez poprzedni skrypt). Poniższy plik jest przykładem pliku parametrów.
Aktualizowanie pliku azuredeploy.parameters.json
Zaktualizuj plik przy azuredeploy.parameters.json
użyciu identyfikatora URI usługi KeyVault, secretName, adminUsername wartości maszyny wirtualnej zgodnie ze swoim środowiskiem. Poniższy plik JSON przedstawia przykładowy plik parametrów szablonu:
{
"$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"
}
}
}
Wdrażanie na podstawie szablonu
Teraz wdróż szablon przy użyciu następującego skryptu programu PowerShell:
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>"
Po pomyślnym wdrożeniu szablonu zostaną zwrócone następujące dane wyjściowe: