Развертывание виртуальной машины 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.
- Установите PowerShell для Azure Stack Hub.
- Настройте среду PowerShell.
Ниже описано, как создать виртуальную машину путем извлечения пароля, хранящегося в Key Vault:
- Создание секрета хранилища ключей.
- Обновите файл
azuredeploy.parameters.json
. - Разверните шаблон.
Примечание
Эти шаги можно выполнить из Пакета средств разработки 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>"
При успешном развертывании шаблона выводятся следующие выходные данные:
Дальнейшие действия
- Sample application that uses keys and secrets stored in a key vault (Пример приложения, использующего ключи и секреты из хранилища ключей)
- Create a virtual machine and include certificate retrieved from a key vault (Создание виртуальной машины с сертификатом хранилища ключей)