Implementar uma VM do Azure Stack Hub com uma palavra-passe armazenada no Key Vault
Este artigo explica como implementar uma máquina virtual (VM) do Windows Server com uma palavra-passe armazenada no Azure Stack Hub Key Vault. Utilizar uma palavra-passe do cofre de chaves é mais seguro do que transmitir uma palavra-passe de texto simples.
Descrição Geral
Pode armazenar valores como uma palavra-passe como um segredo num cofre de chaves do Azure Stack Hub. Depois de criar um segredo, pode referenciá-lo no Azure Resource Manager modelos. A utilização de segredos com Resource Manager fornece as seguintes vantagens:
- Não tem de introduzir manualmente o segredo sempre que implementar um recurso.
- Pode especificar que utilizadores ou principais de serviço podem aceder a um segredo.
Pré-requisitos
- Tem de subscrever uma oferta que inclua o serviço Key Vault.
- Instale o PowerShell para o Azure Stack Hub.
- Configure o ambiente do PowerShell.
Os passos seguintes descrevem o processo necessário para criar uma VM ao obter a palavra-passe armazenada num Key Vault:
- Crie um segredo Key Vault.
- Atualize o
azuredeploy.parameters.json
ficheiro. - Implemente o modelo.
Nota
Pode utilizar estes passos do Azure Stack Development Kit (ASDK) ou de um cliente externo se estiver ligado através de VPN.
Criar um segredo de Key Vault
O script seguinte cria um cofre de chaves e armazena uma palavra-passe no cofre de chaves como segredo. Utilize o -EnabledForDeployment
parâmetro quando estiver a criar o cofre de chaves. Este parâmetro garante que o cofre de chaves pode ser referenciado a partir de 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 executa o script anterior, o resultado inclui o URI secreto (Uniform Resource Identifier). Tome nota deste URI. Tem de referenciá-la no modelo Implementar VM do Windows com palavra-passe no cofre de chaves . Transfira a pasta 101-vm-secure-password para o seu computador de desenvolvimento. Esta pasta contém os azuredeploy.json
ficheiros e azuredeploy.parameters.json
que irá precisar nos próximos passos.
Modifique o azuredeploy.parameters.json
ficheiro de acordo com os valores do seu ambiente. Os parâmetros de interesse especial são o nome do cofre, o grupo de recursos do cofre e o URI secreto (tal como gerado pelo script anterior). O ficheiro abaixo é um exemplo de um ficheiro de parâmetros.
Atualizar o ficheiro azuredeploy.parameters.json
Atualize o azuredeploy.parameters.json
ficheiro com o URI do KeyVault, secretName, adminUsername dos valores da VM de acordo com o seu ambiente. O seguinte ficheiro JSON mostra um exemplo do ficheiro de parâmetros do 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"
}
}
}
Implementação de modelos
Agora, implemente o modelo com 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 é implementado com êxito, resulta no seguinte resultado: