자습서: Resource Manager 템플릿 배포에 Azure Key Vault 통합Tutorial: Integrate Azure Key Vault in Resource Manager Template deployment

Azure Key Vault에서 비밀을 검색하여 Resource Manager 배포 중에 비밀을 매개 변수로 전달하는 방법을 알아봅니다.Learn how to retrieve secrets from Azure Key Vault and pass the secrets as parameters during Resource Manager deployment. 해당 Key Vault ID만 참조하므로 이 값은 절대 노출되지 않습니다.The value is never exposed because you only reference its key vault ID. 자세한 내용은 Azure Key Vault를 사용하여 배포 중에 보안 매개 변수 값 전달을 참조하세요.For more information, see Use Azure Key Vault to pass secure parameter value during deployment

리소스 배포 순서 설정 자습서에서는 가상 머신, 가상 네트워크 및 기타 종속 리소스를 만듭니다.In the Set resource deployment order tutorial, you create a virtual machine, a virtual network, and some other dependent resources. 이 자습서에서는 키 자격 증명 모음에서 가상 머신 관리자 암호를 검색하도록 템플릿을 사용자 지정합니다.In this tutorial, you customize the template to retrieve the virtual machine administrator password from a key vault.

Resource Manager 템플릿 Key Vault 통합 다이어그램

이 자습서에서 다루는 작업은 다음과 같습니다.This tutorial covers the following tasks:

  • 키 자격 증명 모음 준비Prepare a key vault
  • 빠른 시작 템플릿 열기Open a QuickStart template
  • 매개 변수 파일 편집Edit the parameters file
  • 템플릿 배포Deploy the template
  • 배포 유효성 검사Validate the deployment
  • 리소스 정리Clean up resources

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.If you don't have an Azure subscription, create a free account before you begin.

참고

이 문서는 새 Azure PowerShell Az 모듈을 사용하도록 업데이트되었습니다.This article has been updated to use the new Azure PowerShell Az module. AzureRM 모듈은 적어도 2020년 12월까지 버그 수정을 수신할 예정이므로 계속 사용하셔도 됩니다.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. 새 Az 모듈 및 AzureRM 호환성에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az 모듈 설치 지침은 Azure PowerShell 설치를 참조하세요.For Az module installation instructions, see Install Azure PowerShell.

필수 조건Prerequisites

이 문서를 완료하려면 다음이 필요합니다.To complete this article, you need:

키 자격 증명 모음 준비Prepare a key vault

이 섹션에서는 Resource Manager 템플릿을 사용하여 키 자격 증명 모음 및 비밀을 만듭니다.In this section, you use a Resource Manager template to create a key vault and a secret. 이 템플릿은:This template does:

  • enabledForTemplateDeployment 속성이 활성화된 키 자격 증명 모음을 만듭니다.Create a key vault with the enabledForTemplateDeployment property enables. 템플릿 배포 프로세스가 이 키 자격 증명 모음에 정의된 비밀에 액세스할 수 있으려면 이 속성이 true여야 합니다.This property must be true before the template deployment process can access the secrets defined in this key vault.
  • 키 자격 증명 모음에 비밀 추가Add a secret to the key vault. 비밀에는 가상 머신 관리자 암호가 저장됩니다.The secret stores the virtual machine administrator password.

가상 머신 템플릿을 배포하는 사용자가 키 자격 증명 모음의 소유자나 기여자가 아닌 경우에는 키 자격 증명 모음의 소유자나 기여자가 키 자격 증명 모음에 대한 Microsoft.KeyVault/vaults/deploy/action 권한에 대한 액세스를 해당 사용자에게 부여해야 합니다.If you (as the user to deploy the virtual machine template) are not the owner or the contributor of the key vault, the Owner or a Contributor of the key vault must grant you the access to the Microsoft.KeyVault/vaults/deploy/action permission for the key vault. 자세한 내용은 Azure Key Vault를 사용하여 배포 중에 보안 매개 변수 값 전달을 참조하세요.For more information, see Use Azure Key Vault to pass secure parameter value during deployment

권한을 구성하려면 템플릿에 Azure AD 사용자 개체 ID가 필요합니다.Your Azure AD user object ID is needed by the template to configure permissions. 다음 절차는 개체 ID(GUID)를 가져옵니다.The following procedure gets the object ID (GUID).

  1. 다음 Azure PowerShell 또는 Azure CLI 명령을 실행합니다.Run the following Azure PowerShell or Azure CLI command.

    echo "Enter your email address that is associated with your Azure subscription):" &&
    read upn &&
    az ad user show --upn-or-object-id $upn --query "objectId" &&
    
  2. 개체 ID를 기록해 둡니다.Write down the object ID. 자습서의 뒷부분에서 필요합니다.You need it later in the tutorial.

키 자격 증명 모음을 만들려면:To create a key vault:

  1. 다음 이미지를 선택하고 Azure에 로그인하여 템플릿을 엽니다.Select the following image to sign in to Azure and open a template. 템플릿에서 키 자격 증명 모음 및 비밀이 생성됩니다.The template creates a key vault and a secret.

    deploy to azure

  2. 다음 값을 선택하거나 입력합니다.Select or enter the following values. 값을 입력한 후에 구매를 선택하지 마십시오.Don't select Purchase after you enter the values.

    Resource Manager 템플릿 Key Vault 통합 배포 포털

    • 구독: Azure 구독을 선택합니다.Subscription: select an Azure subscription.
    • 리소스 그룹: 고유 이름을 지정합니다.Resource group: assign a unique name. 이 이름을 적어두십시오. 동일한 리소스 그룹을 사용하여 다음 세션에서 가상 머신을 배포하게 됩니다.Write down this name, you use the same resource group to deploy the virtual machine in the next session. 동일한 리소스 그룹에 키 자격 증명 모음과 가상 머신을 둘 다 배치하면 자습서의 끝 부분에서 리소스를 정리하기 쉽습니다.Placing both the key vault and the virtual machine in the same resource group makes it easier to clean up the resource at the end of the tutorial.
    • 위치: 위치를 선택합니다.Location: select a location. 기본 위치는 미국 중부입니다.The default location is Central US.
    • Key Vault 이름: 고유한 이름을 지정합니다.Key Vault Name: assign a unique name.
    • 테넌트 ID: 템플릿 함수가 자동으로 검색한 테넌트 ID입니다. 기본값을 변경하지 마십시오.Tenant Id: the template function automatically retrieve your tenant id. Don't change the default value
    • AD 사용자 ID: 마지막 절차에서 검색한 Azure AD 사용자 개체 ID를 입력합니다.Ad User Id: enter your Azure AD user object ID that you retrieved from the last procedure.
    • 비밀 이름: 기본 이름은 vmAdminPassword입니다.Secret Name: The default name is vmAdminPassword. 여기에서 비밀 이름을 변경하면 가상 머신을 배포할 때 비밀 이름을 업데이트해야 합니다.If you change the secret name here, you need to update the secret name when you deploy the virtual machine.
    • 비밀 값: 비밀을 입력합니다.Secret Value: Enter your secret. 비밀은 가상 머신에 로그인할 때 사용되는 암호입니다.The secret is the password used to sign in to the virtual machine. 마지막 절차에서 만든 생성된 암호를 사용하는 것이 좋습니다.It is recommended to use the generated password you created in the last procedure.
    • 위에 명시된 사용 약관에 동의함: 선택합니다.I agree to the terms and conditions state above: Select.
  3. 맨 위에서 매개 변수 편집을 선택하여 템플릿을 살펴봅니다.Select Edit parameters from the top to take a look of the template.

  4. 템플릿 JSON 파일의 28번 줄로 이동합니다.Browse to line 28 of the template JSON file. 이것이 키 자격 증명 모음 리소스 정의입니다.This is the key vault resource definition.

  5. 35번 줄로 이동합니다.Browse to line 35:

    "enabledForTemplateDeployment": true,
    

    enabledForTemplateDeployment는 Key Vault 속성입니다.enabledForTemplateDeployment is a Key Vault property. 배포하는 동안 이 키 자격 증명 모음에서 비밀을 검색할 수 있으려면 이 속성이 true여야 합니다.This property must be true before you can retrieve the secrets from this key vault during deployment.

  6. 89번 줄로 이동합니다.Browse to line 89. Key Vault 비밀 정의입니다.This is the Key Vault secret definition.

  7. 페이지 아래쪽에서 삭제를 선택합니다.Select Discard from the bottom of the page. 변경은 하지 않습니다.You didn't make any changes.

  8. 이전 스크린샷과 같이 모든 값을 입력했는지 확인한 다음, 페이지 맨 아래에서 구매를 클릭합니다.Verify you have provided all the values as shown in the previous screenshot, and then click Purchase at the bottom of the page.

  9. 페이지 상단에서 벨 아이콘(알림)을 선택하여 알림 창을 엽니다.Select the bell icon (notification) from the top of the page to open the Notifications pane. 리소스 배포가 완료될 때까지 기다립니다.Wait until the resource is deployed successfully.

  10. 알림 창에서 리소스 그룹으로 이동을 선택합니다.Select Go to resource group from the Notifications pane.

  11. 키 자격 증명 모음 이름을 선택하여 엽니다.Select the key vault name to open it.

  12. 왼쪽 창에서 비밀을 선택합니다.Select Secrets from the left pane. vmAdminPassword가 나열됩니다.vmAdminPassword shall be listed there.

  13. 왼쪽 창에서 액세스 정책을 선택합니다.Select Access policies from the left pane. 내 이름(Active Directory)이 나열되어야 하며, 그렇지 않으면 키 저장소에 액세스할 수 있는 권한이 없습니다.Your name (Active Directory) shall be listed, otherwise you don't have the permission to access the key vault.

  14. 클릭하여 고급 액세스 정책 표시를 선택합니다.Select Click to show advanced access policies. 템플릿 배포를 위해 Azure Resource Manager에 대한 액세스 사용이 선택되어 있는지 확인합니다.Notice Enable access to Azure Resource Manager for template deployment is selected. 이 설정은 키 자격 증명 모음 통합이 작동하기 위한 또 다른 조건입니다.This setting is another condition to make the Key Vault integration to work.

    Resource Manager 템플릿 Key Vault 통합 액세스 정책

  15. 왼쪽 창에서 속성을 선택합니다.Select Properties from the left pane.

  16. 리소스 ID의 복사본을 만들어 둡니다.Make a copy of Resource ID. 이 ID는 가상 머신을 배포할 때 필요합니다.You need this ID when you deploy the virtual machine. 리소스 ID 형식은 다음가 같습니다.The Resource ID format is:

    /subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>
    

빠른 시작 템플릿 열기Open a Quickstart template

Azure 퀵 스타트 템플릿은 Resource Manager 템플릿용 저장소입니다.Azure QuickStart Templates is a repository for Resource Manager templates. 템플릿을 처음부터 새로 만드는 대신 샘플 템플릿을 찾아서 사용자 지정할 수 있습니다.Instead of creating a template from scratch, you can find a sample template and customize it. 이 자습서에 사용되는 템플릿의 이름은 Deploy a simple Windows VM입니다.The template used in this tutorial is called Deploy a simple Windows VM.

  1. Visual Studio Code에서 파일>파일 열기를 차례로 선택합니다.From Visual Studio Code, select File>Open File.

  2. 파일 이름에서 다음 URL을 붙여넣습니다.In File name, paste the following URL:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json
    
  3. 열기를 선택하여 파일을 엽니다.Select Open to open the file. 자습서: 종속 리소스가 있는 Azure Resource Manager 템플릿 만들기에 사용된 시나리오와 동일한 시나리오입니다.It is the same scenario used in Tutorial: create Azure Resource Manager templates with dependent resources.

  4. 템플릿에 5개 리소스가 정의되어 있습니다.There are five resources defined by the template:

    • Microsoft.Storage/storageAccounts.Microsoft.Storage/storageAccounts. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/publicIPAddresses.Microsoft.Network/publicIPAddresses. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/virtualNetworks.Microsoft.Network/virtualNetworks. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Network/networkInterfaces.Microsoft.Network/networkInterfaces. 템플릿 참조를 참조하세요.See the template reference.

    • Microsoft.Compute/virtualMachines.Microsoft.Compute/virtualMachines. 템플릿 참조를 참조하세요.See the template reference.

      템플릿을 사용자 지정하기 전에 템플릿의 몇 가지 기본적인 내용을 이해하면 유용합니다.It is helpful to get some basic understanding of the template before customizing it.

  5. 파일>다른 이름으로 저장을 선택하여 파일 복사본을 로컬 컴퓨터에 azuredeploy.json이라는 이름으로 저장합니다.Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

  6. 1~4단계를 반복하여 다음 URL을 연 다음 파일을 azuredeploy.parameters.json으로 저장합니다.Repeat steps 1-4 to open the following URL, and then save the file as azuredeploy.parameters.json.

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json
    

매개 변수 파일 편집Edit the parameters file

템플릿 파일은 변경하지 않아도 됩니다.You don't need to make any changes to the template file.

  1. 열려 있지 않은 경우 Visual Studio Code에서 azuredeploy.parameters.json을 엽니다.Open azuredeploy.parameters.json in Visual Studio Code if it is not opened.

  2. adminPassword 매개 변수를 다음으로 업데이트합니다.Update the adminPassword parameter to:

    "adminPassword": {
        "reference": {
            "keyVault": {
            "id": "/subscriptions/<SubscriptionID>/resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/<KeyVaultName>"
            },
            "secretName": "vmAdminPassword"
        }
    },
    

    id를 마지막 절차에서 만든 키 자격 증명 모음의 리소스 ID로 바꿉니다.Replace the id with the resource ID of your key vault created in the last procedure.

    키 자격 증명 모음과 Resource Manager 템플릿 가상 머신 배포 매개 변수 파일 통합

  3. 다음 항목에 대한 값을 제공합니다.Give the values to:

    • adminUsername: 가상 머신 관리자 계정의 이름을 지정합니다.adminUsername: name the virtual machine administrator account.
    • dnsLabelPrefix: dnsLabelPrefix의 이름을 지정합니다.dnsLabelPrefix: name the dnsLabelPrefix.
  4. 변경 내용을 저장합니다.Save the changes.

템플릿 배포Deploy the template

템플릿 배포의 지침에 따라 템플릿을 배포합니다.Follow the instructions in Deploy the template to deploy the template. azuredeploy.jsonazuredeploy.parameters.json을 둘 다 Cloud Shell에 업로드한 후, 다음 PowerShell 스크립트를 사용하여 템플릿을 배포합니다.You need to upload both azuredeploy.json and azuredeploy.parameters.json to the Cloud shell, and then use the following PowerShell script to deploy the template:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -TemplateFile "$HOME/azuredeploy.json" `
    -TemplateParameterFile "$HOME/azuredeploy.parameters.json"

템플릿을 배포할 때 키 자격 증명 모음과 동일한 리소스 그룹을 사용합니다.When you deploy the template, use the same resource group as the key vault. 그러면 리소스 그룹을 쉽게 정리할 수 있습니다.It makes easier when you clean up the resources. 리소스 그룹을 두 개가 아닌 하나만 삭제하면 됩니다.You only need to delete one resource group instead of two.

배포 유효성 검사Valid the deployment

가상 머신 배포에 성공한 후에는 키 자격 증명 모음에 저장된 암호를 사용하여 로그인을 테스트합니다.After you have successfully deployed the virtual machine, test the login using the password stored in the key vault.

  1. Azure Portal을 엽니다.Open the Azure portal.
  2. 리소스 그룹/YourResourceGroupName>/simpleWinVM을 선택합니다.Select Resource grouips/YourResourceGroupName>/simpleWinVM
  3. 위에서 연결을 선택합니다.Select connect from the top.
  4. RDP 파일 다운로드를 선택한 다음, 지침에 따라 키 자격 증명 모음에 저장된 암호를 사용하여 가상 머신에 로그인합니다.Select Download RDP File and then follow the instructions to sign in into the virtual machine using the password stored in the key vault.

리소스 정리Clean up resources

Azure 리소스가 더 이상 필요하지 않은 경우 리소스 그룹을 삭제하여 배포한 리소스를 정리합니다.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. Azure Portal의 왼쪽 메뉴에서 리소스 그룹을 선택합니다.From the Azure portal, select Resource group from the left menu.
  2. 이름으로 필터링 필드에서 리소스 그룹 이름을 입력합니다.Enter the resource group name in the Filter by name field.
  3. 해당 리소스 그룹 이름을 선택합니다.Select the resource group name. 리소스 그룹에 총 6개의 리소스가 표시됩니다.You shall see a total of six resources in the resource group.
  4. 위쪽 메뉴에서 리소스 그룹 삭제를 선택합니다.Select Delete resource group from the top menu.

다음 단계Next steps

이 자습서에서는 Azure Key Vault에서 비밀을 검색하여 템플릿 배포에 이 비밀을 사용했습니다.In this tutorial, you retrieved a secret from Azure Key Vault, and used the secret in your template deployment. 연결된 템플릿을 만드는 방법을 알아보려면 다음을 참조하세요.To learn how to create linked templates, see: