Implantar uma VM do Azure Stack Hub usando uma senha armazenada no Key Vault
Este artigo percorre a implantação de uma VM (máquina virtual) do Windows Server usando uma senha armazenada no Azure Stack Hub Key Vault. Usar uma senha do cofre de chaves é mais seguro do que passar uma senha de texto sem formatação.
Visão geral
Você pode armazenar valores como uma senha como um segredo em um cofre de chaves do Azure Stack Hub. Depois de criar um segredo, você pode referenciá-lo em modelos de Resource Manager do Azure. O uso de segredos com Resource Manager oferece os seguintes benefícios:
- Você não precisa inserir manualmente o segredo sempre que implantar um recurso.
- Você pode especificar quais usuários ou entidades de serviço podem acessar um segredo.
Pré-requisitos
- Você deve assinar uma oferta que inclua o serviço Key Vault.
- Instalar o PowerShell para Azure Stack Hub.
- Configure seu ambiente do PowerShell.
As etapas a seguir descrevem o processo necessário para criar uma VM recuperando a senha armazenada em um Key Vault:
- Crie um segredo Key Vault.
- Atualize o arquivo
azuredeploy.parameters.json
. - Implante o modelo.
Observação
Você pode usar essas etapas do ASDK (Azure Stack Development Kit) ou de um cliente externo se estiver conectado por meio de VPN.
Criar um segredo Key Vault
O script a seguir cria um cofre de chaves e armazena uma senha no cofre de chaves como um segredo. Use o -EnabledForDeployment
parâmetro ao criar o cofre de chaves. Esse parâmetro garante que o cofre de chaves possa ser referenciado nos modelos de Resource Manager do Azure.
$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
Quando você executa o script anterior, a saída inclui o URI do segredo (Uniform Resource Identifier). Anote esse URI. Você precisa referenciá-la no modelo Implantar VM do Windows com senha no cofre de chaves. Baixe a pasta 101-vm-secure-password no computador de desenvolvimento. Essa pasta contém os azuredeploy.json
arquivos e azuredeploy.parameters.json
, que você precisará nas próximas etapas.
Modifique o azuredeploy.parameters.json
arquivo de acordo com os valores de ambiente. Os parâmetros de interesse especial são o nome do cofre, o grupo de recursos do cofre e o URI do segredo (conforme gerado pelo script anterior). O arquivo abaixo é um exemplo de um arquivo de parâmetro.
Atualizar o arquivo azuredeploy.parameters.json
Atualize o azuredeploy.parameters.json
arquivo com o URI do KeyVault, secretName, adminUsername dos valores da VM de acordo com seu ambiente. O arquivo JSON a seguir mostra um exemplo do arquivo de parâmetros de modelo:
{
"$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"
}
}
}
Implantação de modelo
Agora, implante o modelo usando o seguinte script do 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>"
Quando o modelo é implantado com êxito, ele resulta na seguinte saída: