기존 VM 디스크 암호화

완료됨

회사에서 모든 VM에 ADE(Azure Disk Encryption)를 구현하기로 결정했다고 가정해 보겠습니다. 기존 VM 볼륨에 암호화를 롤아웃하는 방법을 평가해야 합니다. 여기서는 ADE의 요구 사항과 기존 Linux 및 Windows VM의 디스크를 암호화하기 위한 단계를 살펴보겠습니다. 다음 단원에서는 기존 VM 디스크를 암호화하는 프로세스를 진행합니다.

Azure Disk Encryption 필수 구성 요소

VM 디스크를 암호화하려면 먼저 다음을 수행해야 합니다.

  1. Key Vault를 만듭니다.
  2. Key Vault 액세스 정책을 설정하여 디스크 암호화를 지원합니다.
  3. Key Vault를 사용하여 ADE에 대한 암호화 키를 저장합니다.

Azure Key Vault

ADE에서 사용하는 암호화 키를 Azure Key Vault에 저장할 수 있습니다. Azure Key Vault는 비밀을 안전하게 저장하고 액세스하기 위한 도구입니다. 비밀은 API 키, 암호 또는 인증서와 같은 액세스를 엄격하게 제어하려는 항목입니다. 비밀을 활용하는 경우 FIPS(Federal Information Processing Standard) 140-2 수준 2 유효성이 검사된 HSM(하드웨어 보안 모듈)에 정의된 대로 가용성과 확장성이 뛰어난 보안 스토리지가 제공됩니다. Key Vault를 사용하면 데이터를 암호화하는 데 사용되는 키를 완벽하게 제어할 수 있으며 키 사용을 관리 및 감사할 수 있습니다.

참고

Azure Disk Encryption을 사용하려면 Key Vault와 VM이 같은 Azure 지역에 있어야 합니다. 그래야 암호화 비밀이 다른 지역에 노출되지 않습니다.

다음을 사용하여 Key Vault를 구성하고 관리할 수 있습니다.

PowerShell

New-AzKeyVault -Location <location> `
    -ResourceGroupName <resource-group> `
    -VaultName "myKeyVault" `
    -EnabledForDiskEncryption

Azure CLI

az keyvault create \
    --name "myKeyVault" \
    --resource-group <resource-group> \
    --location <location> \
    --enabled-for-disk-encryption True

Azure portal

Azure Key Vault는 일반 리소스 생성 프로세스를 사용하여 Azure Portal에서 만들 수 있는 리소스입니다.

  1. Azure Portal 메뉴 또는 페이지에서 리소스 만들기를 선택합니다.

  2. 검색 상자에서 Key Vault를 검색하여 선택합니다. Key Vault 창이 나타납니다.

  3. 만들기를 선택합니다. 키 자격 증명 모음 만들기 창이 나타납니다.

  4. 기본 탭에서 각 설정에 다음 값을 입력합니다.

    설정
    프로젝트 세부 정보
    Subscription 키 자격 증명 모음을 배치할 구독을 선택합니다(기본값은 현재 구독으로 설정됨).
    Resource group 기존 리소스 그룹을 선택하거나 키 자격 증명 모음을 소유할 새 리소스 그룹을 만듭니다.
    인스턴스 세부 정보
    키 자격 증명 모음 이름 키 자격 증명 모음의 이름 입력
    지역 VM이 있는 지역 선택
    가격 책정 계층 표준. 가격 책정 계층에 대해 표준 또는 프리미엄을 선택할 수 있습니다. 주요 차이점은 프리미엄 계층에서는 하드웨어 암호화 백업 키를 허용한다는 것입니다.

    Screenshot showing Key vault pane.

  5. [다음]을 선택하여 [액세스 구성] 탭으로 이동합니다. 디스크 암호화를 지원하려면 Access 정책을 변경해야 합니다. 기본적으로 사용자 계정을 정책에 추가합니다.

  6. Access 구성 탭에서 설정에 대해 다음 값을 입력합니다.

    설정
    리소스 액세스 볼륨 암호화를 위한 Azure Disk Encryption 상자를 선택합니다. 디스크 암호화에 키 자격 증명 모음만 사용하려는 경우에는 필요하지 않으므로 원하는 경우 계정을 제거할 수 있습니다.
  7. 검토 + 만들기를 선택합니다.

  8. 유효성 검사를 통과한 후에 새 Key Vault를 만들려면 만들기를 선택합니다.

Key Vault에서 액세스 정책 사용

Azure는 VM을 부팅하고 볼륨을 해독할 수 있도록 Key Vault의 암호화 키 또는 비밀에 액세스해야 합니다. 액세스 정책을 변경했을 때 이전 단계에서 이 작업을 수행했습니다.

세 가지 정책을 사용할 수 있습니다.

  • 디스크 암호화: Azure Disk 암호화에 필요합니다.
  • 배포: (선택 사항) 리소스 만들기에서 이 키 자격 증명 모음을 참조할 때(예: VM을 만들 때) Microsoft.Compute 리소스 공급자가 이 키 자격 증명 모음에서 비밀을 검색할 수 있도록 합니다.
  • 템플릿 배포: (선택 사항) 템플릿 배포에서 이 키 자격 증명 모음을 참조할 때 Azure Resource Manager에서 이 키 자격 증명 모음에서 비밀을 가져올 수 있습니다.

디스크 암호화 정책을 사용하는 방법은 다음과 같습니다. 다른 두 정책은 비슷하지만 다른 플래그를 사용합니다.

Set-AzKeyVaultAccessPolicy -VaultName <keyvault-name> -ResourceGroupName <resource-group> -EnabledForDiskEncryption
az keyvault update --name <keyvault-name> --resource-group <resource-group> --enabled-for-disk-encryption true

기존 VM 디스크 암호화

키 자격 증명 모음이 설정된 후 Azure CLI 또는 Azure PowerShell을 사용하여 VM을 암호화할 수 있습니다. 처음으로 Windows VM을 암호화할 때 모든 디스크 또는 OS 디스크만 암호화하도록 선택할 수 있습니다. 일부 Linux 배포에서는 데이터 디스크만 암호화할 수 있습니다. 암호화를 받으려면 Windows 디스크가 NTFS 볼륨으로 포맷되어야 합니다.

경고

암호화를 켜려면 먼저 관리 디스크의 스냅샷 또는 백업을 만들어야 합니다. 다음 SkipVmBackup 플래그는 관리 디스크에서 백업이 완료되었음을 도구에 알려줍니다. 백업이 없으면 어떤 이유로 암호화가 실패하면 VM을 복구할 수 없습니다.

PowerShell을 사용하여 암호화를 사용하도록 설정하려면 cmdlet을 Set-AzVmDiskEncryptionExtension 실행합니다.


Set-AzVmDiskEncryptionExtension `
    -ResourceGroupName <resource-group> `
    -VMName <vm-name> `
    -VolumeType [All | OS | Data]
    -DiskEncryptionKeyVaultId <keyVault.ResourceId> `
    -DiskEncryptionKeyVaultUrl <keyVault.VaultUri> `
     -SkipVmBackup

Azure CLI를 사용하여 암호화를 사용하도록 설정하려면 명령을 실행하고 az vm encryption enable 매개 변수를 사용하여 암호화할 볼륨을 --volume-type [all | os | data] 지정합니다. 가상 머신에 대한 모든 볼륨을 암호화하는 예제는 다음과 같습니다.

az vm encryption enable \
    --resource-group <resource-group> \
    --name <vm-name> \
    --disk-encryption-keyvault <keyvault-name> \
    --volume-type all

디스크 상태 보기

특정 디스크가 암호화되었는지 아닌지를 확인할 수 있습니다.

Get-AzVmDiskEncryptionStatus  -ResourceGroupName <resource-group> -VMName <vm-name>
az vm encryption show --resource-group <resource-group> --name <vm-name>

이 두 명령은 모두 지정된 VM에 연결된 각 디스크의 상태를 반환합니다.

드라이브 암호 해독

PowerShell을 통해 암호화를 반대로 하려면 Disable-AzVMDiskEncryption cmdlet을 실행합니다.

Disable-AzVMDiskEncryption -ResourceGroupName <resource-group> -VMName <vm-name>

Azure CLI의 경우 vm encryption disable 명령을 실행합니다.

az vm encryption disable --resource-group <resource-group> --name <vm-name>

위 명령은 지정한 VM과 관련된 모든 유형의 볼륨에 대해 암호화를 사용하지 않도록 설정합니다. 암호화 버전과 마찬가지로 암호를 해독할 디스크를 결정하려면 매개 변수[All | OS | Data]-VolumeType 지정할 수 있습니다. 제공되지 않는 경우 기본값은 All입니다.

경고

OS와 데이터 디스크가 모두 암호화되었을 때 Windows VM에서 데이터 디스크 암호화를 비활성화하면 예상대로 작동하지 않습니다. 대신 모든 디스크에서 암호화를 비활성화해야 합니다.

다음 연습에서는 새 VM에서 이러한 명령 중 일부를 사용해 보겠습니다.