Key Vault 저장된 암호를 사용하여 Azure Stack Hub VM 배포

이 문서에서는 Azure Stack Hub Key Vault 저장된 암호를 사용하여 Windows Server VM(가상 머신)을 배포하는 단계를 안내합니다. 키 자격 증명 모음 암호를 사용하는 것은 일반 텍스트 암호를 전달하는 것보다 더 안전합니다.

개요

암호와 같은 값을 Azure Stack Hub 키 자격 증명 모음에 비밀로 저장할 수 있습니다. 비밀을 만든 후 Azure Resource Manager 템플릿에서 참조할 수 있습니다. Resource Manager 비밀을 사용하면 다음과 같은 이점이 있습니다.

  • 리소스를 배포할 때마다 비밀을 수동으로 입력할 필요가 없습니다.
  • 비밀에 액세스할 수 있는 사용자 또는 서비스 주체를 지정할 수 있습니다.

사전 요구 사항

다음 단계에서는 Key Vault 저장된 암호를 검색하여 VM을 만드는 데 필요한 프로세스를 설명합니다.

  1. Key Vault 비밀을 만듭니다.
  2. azuredeploy.parameters.json 파일을 업데이트합니다.
  3. 템플릿을 배포합니다.

참고

VPN을 통해 연결된 경우 ASDK(Azure Stack Development Kit) 또는 외부 클라이언트에서 이러한 단계를 사용할 수 있습니다.

Key Vault 비밀 만들기

다음 스크립트는 키 자격 증명 모음을 만들고 키 자격 증명 모음에 암호를 비밀로 저장합니다. 키 자격 증명 모음을 -EnabledForDeployment 만들 때 매개 변수를 사용합니다. 이 매개 변수는 Azure Resource Manager 템플릿에서 키 자격 증명 모음을 참조할 수 있도록 합니다.


$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

이전 스크립트를 실행하면 출력에 비밀 URI(Uniform Resource Identifier)가 포함됩니다. 이 URI를 기록해 두세요. 키 자격 증명 모음 템플릿에서 암호를 사용하여 Windows VM 배포 템플릿에서 참조해야 합니다. 개발 컴퓨터에 101-vm-secure-password 폴더를 다운로드합니다. 이 폴더에는 azuredeploy.json 다음 단계에서 필요한 및 azuredeploy.parameters.json 파일이 포함되어 있습니다.

환경 값에 azuredeploy.parameters.json 따라 파일을 수정합니다. 특별한 관심의 매개 변수는 자격 증명 모음 이름, 자격 증명 모음 리소스 그룹 및 비밀 URI(이전 스크립트에서 생성된)입니다. 아래 파일은 매개 변수 파일의 예입니다.

azuredeploy.parameters.json 파일 업데이트

azuredeploy.parameters.json 환경에 따라 VM 값의 KeyVault URI, secretName, adminUsername으로 파일을 업데이트합니다. 다음 JSON 파일은 템플릿 매개 변수 파일의 예를 보여줍니다.

{
    "$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"
        }
    }
}

템플릿 배포

이제 다음 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>"

템플릿이 성공적으로 배포되면 다음과 같은 출력이 생성됩니다.

배포 출력

다음 단계