Implementar um Azure Stack Hub VM usando uma palavra-passe armazenada no Cofre de ChavesDeploy an Azure Stack Hub VM using a password stored in Key Vault

Este artigo passa pela implementação de uma máquina virtual do Windows Server (VM) utilizando uma palavra-passe armazenada no Cofre da Chave hub do Azure Stack.This article steps through deploying a Windows Server virtual machine (VM) using a password stored in Azure Stack Hub Key Vault. Usar uma palavra-passe do cofre é mais seguro do que passar uma senha de texto simples.Using a key vault password is more secure than passing a plain text password.

Descrição geralOverview

Pode armazenar valores como uma palavra-passe como um segredo num cofre de chaves Azure Stack Hub.You can store values such as a password as a secret in an Azure Stack Hub key vault. Depois de criar um segredo, pode fazê-lo referenciar nos modelos do Gestor de Recursos Azure.After you create a secret, you can reference it in Azure Resource Manager templates. A utilização de segredos com o Gestor de Recursos fornece os seguintes benefícios:Using secrets with Resource Manager provides the following benefits:

  • Não tens de entrar manualmente em segredo cada vez que implementas um recurso.You don't have to manually enter secret each time you deploy a resource.
  • Pode especificar quais os utilizadores ou diretores de serviço que podem aceder a um segredo.You can specify which users or service principals can access a secret.

Pré-requisitosPrerequisites

Os seguintes passos descrevem o processo necessário para criar um VM recuperando a palavra-passe armazenada num Cofre de Chaves:The following steps describe the process required to create a VM by retrieving the password stored in a Key Vault:

  1. Criar um segredo do Cofre da Chave.Create a Key Vault secret.
  2. Atualize o azuredeploy.parameters.json ficheiro.Update the azuredeploy.parameters.json file.
  3. Implemente o modelo.Deploy the template.

Nota

Pode utilizar estes passos a partir do Kit de Desenvolvimento da Pilha de Azure (ASDK), ou de um cliente externo se estiver conectado através da VPN.You can use these steps from the Azure Stack Development Kit (ASDK), or from an external client if you're connected through VPN.

Criar um segredo do Cofre de ChavesCreate a Key Vault secret

O seguinte script cria um cofre chave e armazena uma senha no cofre de chaves como um segredo.The following script creates a key vault and stores a password in the key vault as a secret. Usa o -EnabledForDeployment parâmetro quando estiveres a criar o cofre das chaves.Use the -EnabledForDeployment parameter when you're creating the key vault. Este parâmetro garante que o cofre da chave pode ser referenciado a partir dos modelos do Gestor de Recursos Azure.This parameter makes sure that the key vault can be referenced from Azure Resource Manager templates.


$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 executou o script anterior, a saída inclui o URI secreto (Identificador de Recursos Uniformes).When you run the previous script, the output includes the secret URI (Uniform Resource Identifier). Tome nota deste URI.Make a note of this URI. Tem de o fazer referência no VM do Windows com palavra-passe no modelo do cofre de chaves.You have to reference it in the Deploy Windows VM with password in key vault template. Descarregue a pasta de senha de 101 vm-secure-password para o seu computador de desenvolvimento.Download the 101-vm-secure-password folder onto your development computer. Esta pasta contém os azuredeploy.json ficheiros e azuredeploy.parameters.json ficheiros, que necessitará nos próximos passos.This folder contains the azuredeploy.json and azuredeploy.parameters.json files, which you'll need in the next steps.

Modifique o azuredeploy.parameters.json ficheiro de acordo com os valores ambientais.Modify the azuredeploy.parameters.json file according to your environment values. Os parâmetros de interesse especial são o nome do cofre, o grupo de recursos do cofre, e o URI secreto (como gerado pelo script anterior).The parameters of special interest are the vault name, the vault resource group, and the secret URI (as generated by the previous script). O ficheiro abaixo é um exemplo de um ficheiro de parâmetro.The file below is an example of a parameter file.

Atualizar o azuredeploy.parameters.jsno ficheiroUpdate the azuredeploy.parameters.json file

Atualize o azuredeploy.parameters.json ficheiro com o KeyVault URI, nome secreto, adminUsername dos valores VM de acordo com o seu ambiente.Update the azuredeploy.parameters.json file with the KeyVault URI, secretName, adminUsername of the VM values as per your environment. O seguinte ficheiro JSON mostra um exemplo do ficheiro de parâmetros do modelo:The following JSON file shows an example of the template parameters file:

{
    "$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 modelosTemplate deployment

Agora implemente o modelo utilizando o seguinte script PowerShell:Now deploy the template by using the following PowerShell script:

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 sucesso, resulta na seguinte saída:When the template is deployed successfully, it results in the following output:

Saída de implantação

Passos seguintesNext steps