Azure Disk Encryption을 위한 Key Vault 만들기 및 구성
Azure Disk Encryption은 Azure Key Vault를 사용하여 키 디스크 암호화 키와 비밀을 제어하고 관리합니다. 키 자격 증명 모음에 대한 자세한 내용은 Azure Key Vault 시작 및 키 자격 증명 모음 보안을 참조하세요.
Azure Disk Encryption을 위한 키 자격 증명 모음 만들기 및 구성은 다음과 같이 세 단계로 이루어져 있습니다.
- 필요한 경우 리소스 그룹 만들기.
- 키 자격 증명 모음 만들기.
- 키 자격 증명 모음 고급 액세스 정책 설정.
원할 경우 KEK(키 암호화 키)를 생성하거나 가져올 수도 있습니다.
도구 설치 및 Azure에 연결
이 문서의 단계는 Azure CLI, Azure PowerShell Az 모듈 또는 Azure Portal을 사용하여 완료할 수 있습니다.
리소스 그룹 만들기
리소스 그룹이 이미 있다면 키 자격 증명 모음 만들기로 건너뛸 수 있습니다.
리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다.
az group create Azure CLI 명령 또는 New-AzResourceGroup Azure PowerShell 명령을 사용하거나 Azure Portal에서 리소스 그룹을 만듭니다.
Azure CLI
az group create --name "myResourceGroup" --location eastus
Azure PowerShell
New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"
키 자격 증명 모음 만들기
이미 키 자격 증명 모음이 있는 경우 키 자격 증명 모음 고급 액세스 정책 설정으로 건너뛸 수 있습니다.
az keyvault create Azure CLI 명령, New-AzKeyvault Azure PowerShell 명령, Azure Portal 또는 Resource Manager 템플릿을 사용하여 키 자격 증명 모음을 만듭니다.
Warning
암호화 비밀이 지역 경계를 넘지 않도록 하려면 암호화할 VM과 동일한 지역 및 테넌트에 있는 키 자격 증명 모음을 만들고 사용해야 합니다.
각 Key Vault마다 고유한 이름이 있어야 합니다. 다음 예제에서는 <your-unique-keyvault-name>을 키 자격 증명 모음의 이름으로 바꿉니다.
Azure CLI
Azure CLI를 사용하여 키 자격 증명 모음을 만들 때 "--enabled-for-disk-encryption" 플래그를 추가합니다.
az keyvault create --name "<your-unique-keyvault-name>" --resource-group "myResourceGroup" --location "eastus" --enabled-for-disk-encryption
Azure PowerShell
Azure PowerShell을 사용하여 키 자격 증명 모음을 만들 때 "-EnabledForDiskEncryption" 플래그를 추가합니다.
New-AzKeyvault -name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "eastus" -EnabledForDiskEncryption
Resource Manager 템플릿
Resource Manager 템플릿을 사용하여 키 자격 증명 모음을 만들 수도 있습니다.
- Azure 빠른 시작 템플릿에서 Azure에 배포를 클릭합니다.
- 구독, 리소스 그룹, 리소스 그룹 위치, Key Vault 이름, 개체 ID, 약관 및 규약을 선택한 다음, 구매를 클릭합니다.
Key Vault 고급 액세스 정책 설정
Important
새로 만든 키 자격 증명 모음에는 기본적으로 일시 삭제가 설정됩니다. 기존 키 자격 증명 모음을 사용하는 경우 일시 삭제를 사용하도록 설정해야 합니다. Azure Key Vault 일시 삭제 개요를 참조하세요.
Azure 플랫폼은 VM을 부팅하고 볼륨을 해독할 수 있도록 Key Vault의 암호화 키 또는 비밀에 액세스해야 합니다.
생성 시(이전 단계에서 설명한 대로) 디스크 암호화, 배포 또는 템플릿 배포를 위해 키 자격 증명 모음을 사용하지 않은 경우 고급 액세스 정책을 업데이트해야 합니다.
Azure CLI
az keyvault update를 사용하여 키 자격 증명 모음에 대한 디스크 암호화를 사용하도록 설정합니다.
디스크 암호화에 Key Vault 사용: Enabled-for-disk-encryption이 필요합니다.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-disk-encryption "true"
필요한 경우 배포에 Key Vault 사용: 이 키 자격 증명 모음이 리소스를 만들 때(예: 가상 머신 만들기) 참조되는 경우 Microsoft.Compute 리소스 공급자에서 이 키 자격 증명 모음으로부터 비밀을 검색할 수 있도록 합니다.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-deployment "true"
필요한 경우 템플릿 배포에 Key Vault 사용: Resource Manager에서 자격 증명 모음으로부터 비밀을 검색할 수 있도록 허용합니다.
az keyvault update --name "<your-unique-keyvault-name>" --resource-group "MyResourceGroup" --enabled-for-template-deployment "true"
Azure PowerShell
Set-AzKeyVaultAccessPolicy 키 자격 증명 모음 PowerShell cmdlet을 사용하여 키 자격 증명 모음에 대한 디스크 암호화를 사용하도록 설정합니다.
디스크 암호화에 Key Vault 사용: Azure Disk Encryption에 EnabledForDiskEncryption이 필요합니다.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDiskEncryption
필요한 경우 배포에 Key Vault 사용: 이 키 자격 증명 모음이 리소스를 만들 때(예: 가상 머신 만들기) 참조되는 경우 Microsoft.Compute 리소스 공급자에서 이 키 자격 증명 모음으로부터 비밀을 검색할 수 있도록 합니다.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForDeployment
필요한 경우 템플릿 배포에 Key Vault 사용: 이 키 자격 증명 모음이 템플릿 배포에서 참조되는 경우 Azure Resource Manager에서 이 키 자격 증명 모음으로부터 비밀을 가져올 수 있도록 합니다.
Set-AzKeyVaultAccessPolicy -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "MyResourceGroup" -EnabledForTemplateDeployment
Azure Portal
키 자격 증명 모음을 선택하고 액세스 정책으로 이동합니다.
"액세스 사용 대상"에서 볼륨 암호화를 위한 Azure Disk Encryption 상자를 선택합니다.
필요한 경우 배포용 Azure Virtual Machines 및/또는 템플릿 배포용 Azure Resource Manager를 선택합니다.
저장을 클릭합니다.
Azure Disk Encryption 및 자동 회전
Azure Key Vault에는 이제 키 자동 회전이 있지만 현재 Azure Disk Encryption와 호환되지 않습니다. 특히 Azure Disk Encryption은 자동 회전된 후에도 원래 암호화 키를 계속 사용합니다.
암호화 키를 회전해도 Azure Disk Encryption이 중단되지는 않지만 "이전" 암호화 키(즉, Azure Disk Encryption에서 계속 사용 중인 키)를 사용하지 않도록 설정하면 중단됩니다.
KEK(키 암호화 키) 설정
Important
키 자격 증명 모음을 통해 디스크 암호화를 사용하도록 설정하기 위해 실행 중인 계정에는 "리더" 권한이 있어야 합니다.
암호화 키에 대한 추가 보안 계층에 KEK(키 암호화 키)를 사용하려면 키 자격 증명 모음에 KEK를 추가합니다. 키 암호화 키가 지정되면 Azure Disk Encryption에서 해당 키를 사용하여 Key Vault에 쓰기 전에 암호화 비밀을 래핑합니다.
Azure CLI az keyvault key create
명령, Azure PowerShell Add-AzKeyVaultKey cmdlet 또는 Azure Portal을 사용하여 새 KEK를 생성할 수 있습니다. RSA 키 유형을 생성해야 합니다. Azure Disk Encryption은 현재 타원 곡선 키 사용을 지원하지 않습니다.
대신 온-프레미스 키 관리 HSM에서 KEK를 가져올 수도 있습니다. 자세한 내용은 Key Vault 설명서를 참조하세요.
키 자격 증명 모음 및 KEK URL 버전을 지정해야 합니다. Azure에서 이 버전 관리 제한을 적용합니다. 유효한 비밀과 KEK URL은 다음 예제를 참조하세요.
- 올바른 비밀 URL의 예제: https://contosovault.vault.azure.net/secrets/EncryptionSecretWithKek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 올바른 KEK URL의 예제: https://contosovault.vault.azure.net/keys/diskencryptionkek/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Azure CLI
Azure CLI az keyvault key create
명령을 사용하여 새 KEK를 생성하고 키 자격 증명 모음에 저장합니다.
az keyvault key create --name "myKEK" --vault-name "<your-unique-keyvault-name>" --kty RSA --size 4096
대신 Azure CLI az keyvault key import 명령을 사용하여 프라이빗 키를 가져올 수 있습니다.
두 경우 모두 Azure CLI az vm encryption enable
--key-encryption-key 매개 변수에 KEK의 이름을 제공합니다.
az vm encryption enable -g "MyResourceGroup" --name "myVM" --disk-encryption-keyvault "<your-unique-keyvault-name>" --key-encryption-key "myKEK"
Azure PowerShell
Azure PowerShell Add-AzKeyVaultKey cmdlet을 사용하여 새 KEK를 생성하고 키 자격 증명 모음에 저장합니다.
Add-AzKeyVaultKey -Name "myKEK" -VaultName "<your-unique-keyvault-name>" -Destination "HSM" -Size 4096
대신 Azure PowerShell az keyvault key import
명령을 사용하여 프라이빗 키를 가져올 수 있습니다.
두 경우 모두 Azure PowerShell Set-AzVMDiskEncryptionExtension -KeyEncryptionKeyVaultId 및 -KeyEncryptionKeyUrl 매개 변수에 KEK 키 자격 증명 모음의 ID와 KEK의 URL을 제공합니다. 이 예제에서는 디스크 암호화 키와 KEK 모두에 동일한 키 자격 증명 모음을 사용하고 있다고 가정합니다.
$KeyVault = Get-AzKeyVault -VaultName "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup"
$KEK = Get-AzKeyVaultKey -VaultName "<your-unique-keyvault-name>" -Name "myKEK"
Set-AzVMDiskEncryptionExtension -ResourceGroupName MyResourceGroup -VMName "MyVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyVaultId $KeyVault.ResourceId -KeyEncryptionKeyUrl $KEK.Id -SkipVmBackup -VolumeType All