Развертывание виртуальной машины Azure Stack Hub с помощью пароля, хранящегося в Key Vault

В этой статье описано, как развернуть виртуальную машину Windows Server с помощью пароля, хранящегося в Key Vault в Azure Stack Hub. Использовать пароль из Key Vault безопаснее, чем передавать незашифрованный пароль.

Общие сведения

Такие значения, как пароль, можно хранить в Key Vault Azure Stack Hub в виде секрета. После создания секрета на него можно ссылаться в шаблонах Azure Resource Manager. Использование секретов в Resource Manager обеспечивает следующие преимущества:

  • не нужно вручную вводить секрет при каждом развертывании ресурса;
  • можно указать, какие пользователи или субъекты-службы могут получить доступ к секрету.

Предварительные требования

Ниже описано, как создать виртуальную машину путем извлечения пароля, хранящегося в Key Vault:

  1. Создание секрета хранилища ключей.
  2. Обновите файл azuredeploy.parameters.json.
  3. Разверните шаблон.

Примечание

Эти шаги можно выполнить из Пакета средств разработки Azure Stack (ASDK) или из внешнего клиента при подключении через VPN.

Создание секрета хранилища ключей

Следующий скрипт создает хранилище ключей и сохраняет в нем пароль в виде секрета. Используйте параметр -EnabledForDeployment при создании хранилища ключей. Благодаря этому параметру на хранилище ключей можно ссылаться из шаблонов 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

Выполнение предыдущего скрипта возвращает URI секрета. Запишите его. Вам нужно связать его с шаблоном Развертывание виртуальной машины Windows с помощью пароля, хранящегося в хранилище ключей. Скачайте папку 101-vm-secure-password на компьютер разработчика. Эта папка содержит файлы azuredeploy.json и azuredeploy.parameters.json, которые понадобятся далее.

Измените файл azuredeploy.parameters.json, указав значения для своей среды. Особый интерес представляют параметры имени хранилища, группы ресурсов хранилища и URI секрета (сгенерированный предыдущим скриптом). Ниже приведен пример файла параметров:

Обновление файла azuredeploy.parameters.json

В файле azuredeploy.parameters.json укажите значения URI KeyVault, secretName, adminUsername для виртуальной машины с учетом среды. Ниже приведен пример JSON-файла параметров шаблона:

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

Развертывание шаблона

Теперь разверните шаблон с помощью следующего скрипта 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>"

При успешном развертывании шаблона выводятся следующие выходные данные:

Выходные данные развертывания

Дальнейшие действия