Implantar uma VM do Azure Stack Hub usando uma senha armazenada no Cofre da Chave
Este artigo descreve a implantação de uma máquina virtual (VM) do Windows Server utilizando uma palavra-passe guardada no Key Vault do Azure Stack Hub. Usar uma senha de cofre de chaves é mais seguro do que passar uma senha de texto simples.
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 fazer referência a ele nos modelos do Azure Resource Manager. Usar segredos com o Resource Manager oferece os seguintes benefícios:
- Não é necessário inserir manualmente o segredo cada vez que implanta um recurso.
- Você pode especificar quais usuários ou entidades de serviço podem acessar um segredo.
Pré-requisitos
- Tem de subscrever uma oferta que inclua o serviço Key Vault.
- Instale 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 Cofre de Chaves:
- Crie um segredo do Cofre da Chave.
- Atualize o arquivo
azuredeploy.parameters.json
. - Implante o modelo.
Observação
Pode utilizar estes passos a partir do Azure Stack Development Kit (ASDK) ou de um cliente externo se estiver ligado através de VPN.
Criar um segredo do Cofre da Chave
O script a seguir cria um cofre de chaves e armazena uma senha no cofre de chaves como um segredo. Use o parâmetro -EnabledForDeployment
ao criar o cofre de chaves. Este parâmetro garante que o cofre de chaves possa ser referenciado a partir de modelos do Gestor de Recursos 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 secreto (Uniform Resource Identifier). Anote este URI. Você precisa referenciar no modelo Implantar VM do Windows com senha no cofre de chaves. Transfira a pasta 101-vm-secure-password para o seu computador de desenvolvimento. Esta pasta contém os arquivos azuredeploy.json
e azuredeploy.parameters.json
, que você precisará nas próximas etapas.
Modifique o arquivo azuredeploy.parameters.json
de acordo com os valores do seu ambiente. Os parâmetros de interesse especial são o nome do vault, o grupo de recursos do vault e o URI secreto (conforme gerado pelo script anterior). O arquivo abaixo é um exemplo de um arquivo de parâmetro.
Atualizar o arquivo azuredeploy.parameters.json
Atualize o arquivo azuredeploy.parameters.json
com o URI KeyVault, secretName, adminUsername dos valores da VM de acordo com seu ambiente. O seguinte arquivo JSON 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: