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

W poniższych krokach opisano proces wymagany do utworzenia maszyny wirtualnej przez pobranie hasła przechowywanego w Key Vault:

  1. Utwórz wpis tajny Key Vault.
  2. azuredeploy.parameters.json Zaktualizuj plik.
  3. 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:

Dane wyjściowe wdrożenia

Następne kroki