Partilhar via


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

Os passos seguintes descrevem o processo necessário para criar uma VM ao obter a palavra-passe armazenada num Key Vault:

  1. Crie um segredo Key Vault.
  2. Atualize o azuredeploy.parameters.json ficheiro.
  3. 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:

Saída da implementação

Passos seguintes