중요합니다
Virtual Machines 및 Virtual Machine Scale Sets용 Azure Disk Encryption은 2028년 9월 15일에 사용 중지됩니다. 새 고객은 모든 새 VM 에 대해 호스트에서 암호화 를 사용해야 합니다. 기존 고객은 서비스 중단을 방지하기 위해 사용 중지 날짜 이전에 현재 ADE 지원 VM을 호스트의 암호화로 마이그레이션할 계획입니다. Azure Disk Encryption에서 호스트의 암호화로 마이그레이션을 참조하세요.
적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합
이 문서는 암호화된 디바이스에서 LVM(논리 볼륨 관리) 및 RAID를 수행하는 방법에 대한 단계별 프로세스입니다. 이 프로세스는 다음 환경에 적용됩니다.
- Linux 배포
- RHEL 7.6 이상
- Ubuntu 18.04 이상
- SUSE 12 이상
- Azure Disk Encryption 단일 패스 확장
- Azure Disk Encryption 이중 패스 확장
시나리오
이 문서의 절차는 다음 시나리오를 지원합니다.
- 암호화된 디바이스를 기반으로 LVM 구성(LVM-on-crypt)
- 암호화된 디바이스를 기반으로 RAID 구성(RAID-on-crypt)
기본 디바이스 또는 디바이스가 암호화된 후 암호화된 계층 위에 LVM 또는 RAID 구조를 만들 수 있습니다.
물리적 볼륨(PV)은 암호화된 계층 위에 만들어집니다. 실제 볼륨은 볼륨 그룹을 만드는 데 사용됩니다. 볼륨을 만들고 /etc/fstab에 필요한 항목을 추가합니다.
마찬가지로 RAID 디바이스는 디스크의 암호화된 계층 위에 만들어집니다. 파일 시스템은 RAID 디바이스 위에 만들어지고 /etc/fstab에 일반 디바이스로 추가됩니다.
고려 사항
LVM-on-crypt를 사용하는 것이 좋습니다. RAID는 특정 애플리케이션 또는 환경 제한으로 인해 LVM을 사용할 수 없는 경우의 옵션입니다.
EncryptFormatAll 옵션을 사용합니다. 이 옵션에 대한 자세한 내용은 Linux VM의 데이터 디스크에 EncryptFormatAll 기능 사용을 참조하세요.
OS를 암호화할 때 이 메서드를 사용할 수 있지만 여기서는 데이터 드라이브를 암호화하기만 하면 됩니다.
이 절차에서는 Linux VM의 Azure Disk Encryption 시나리오 및 빠른 시작: Azure CLI를 사용하여 Linux VM 만들기 및 암호화의 필수 구성 요소를 이미 검토했다고 가정합니다.
Azure Disk Encryption 이중 전달 버전은 사용 중단 경로에 있으며 더 이상 새 암호화에 사용해서는 안 됩니다.
일반적인 단계
"on-crypt" 구성을 사용하는 경우 다음 절차에 설명된 프로세스를 사용합니다.
비고
문서 전체에서 변수를 사용하고 있습니다. 그에 따라 값을 바꿉다.
VM 배포
다음 명령은 선택 사항이지만 새로 배포된 VM(가상 머신)에 적용하는 것이 좋습니다.
PowerShell:
New-AzVm -ResourceGroupName ${RGNAME} `
-Name ${VMNAME} `
-Location ${LOCATION} `
-Size ${VMSIZE} `
-Image ${OSIMAGE} `
-Credential ${creds} `
-Verbose
Azure CLI:
az vm create \
-n ${VMNAME} \
-g ${RGNAME} \
--image ${OSIMAGE} \
--admin-username ${username} \
--admin-password ${password} \
-l ${LOCATION} \
--size ${VMSIZE} \
-o table
VM에 디스크 연결
VM에 연결하려는 새 디스크 수에 대해 $N
다음 명령을 반복합니다.
PowerShell:
$storageType = 'Standard_LRS'
$dataDiskName = ${VMNAME} + '_datadisk0'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $LOCATION -CreateOption Empty -DiskSizeGB 5
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName ${RGNAME}
$vm = Get-AzVM -Name ${VMNAME} -ResourceGroupName ${RGNAME}
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 0
Update-AzVM -VM ${VM} -ResourceGroupName ${RGNAME}
Azure CLI:
az vm disk attach \
-g ${RGNAME} \
--vm-name ${VMNAME} \
--name ${VMNAME}datadisk1 \
--size-gb 5 \
--new \
-o table
디스크가 VM에 연결되어 있는지 확인합니다.
PowerShell:
$VM = Get-AzVM -ResourceGroupName ${RGNAME} -Name ${VMNAME}
$VM.StorageProfile.DataDisks | Select-Object Lun,Name,DiskSizeGB
Azure CLI:
az vm show -g ${RGNAME} -n ${VMNAME} --query storageProfile.dataDisks -o table
입구:
운영 체제:
lsblk
암호화할 디스크 구성
이 구성은 운영 체제 수준에서 수행됩니다. 해당 디스크는 Azure Disk Encryption을 통해 기존 암호화에 대해 구성됩니다.
- 파일 시스템은 디스크 위에 만들어집니다.
- 파일 시스템을 탑재하기 위해 임시 탑재 지점이 만들어집니다.
- 파일 시스템은 /etc/fstab에서 부팅 시 탑재되도록 구성됩니다.
새 디스크에 할당된 디바이스 문자를 확인합니다. 이 예제에서는 4개의 데이터 디스크를 사용합니다.
lsblk
각 디스크 위에 파일 시스템 만들기
이 명령은 "for" 주기의 "in" 부분에 정의된 각 디스크에서 ext4 파일 시스템의 생성을 반복합니다.
for disk in c d e f; do echo mkfs.ext4 -F /dev/sd${disk}; done |bash
최근에 만든 파일 시스템의 UUID(범용 고유 식별자)를 찾고, 임시 폴더를 만들고, /etc/fstab에 해당 항목을 추가하고, 모든 파일 시스템을 탑재합니다.
이 명령은 "for" 반복문의 "in" 부분에 정의된 각 디스크에 대해서도 실행됩니다.
for disk in c d e f; do diskuuid="$(blkid -s UUID -o value /dev/sd${disk})"; \
mkdir /tempdata${disk}; \
echo "UUID=${diskuuid} /tempdata${disk} ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done
디스크가 제대로 탑재되었는지 확인합니다.
lsblk
또한 디스크가 구성되어 있는지 확인합니다.
cat /etc/fstab
데이터 디스크 암호화
KEK(키 암호화 키)를 사용하는 PowerShell:
$sequenceVersion = [Guid]::NewGuid()
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGNAME `
-VMName ${VMNAME} `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $KeyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $KeyVaultResourceId `
-VolumeType 'DATA' `
-EncryptFormatAll `
-SequenceVersion $sequenceVersion `
-skipVmBackup;
KEK를 사용하는 Azure CLI:
az vm encryption enable \
--resource-group ${RGNAME} \
--name ${VMNAME} \
--disk-encryption-keyvault ${KEYVAULTNAME} \
--key-encryption-key ${KEYNAME} \
--key-encryption-keyvault ${KEYVAULTNAME} \
--volume-type "DATA" \
--encrypt-format-all \
-o table
암호화 상태 확인
모든 디스크가 암호화된 경우에만 다음 단계로 계속 진행합니다.
PowerShell:
Get-AzVmDiskEncryptionStatus -ResourceGroupName ${RGNAME} -VMName ${VMNAME}
Azure CLI:
az vm encryption show -n ${VMNAME} -g ${RGNAME} -o table
입구:
OS 수준:
lsblk
확장은 /var/lib/azure_disk_encryption_config/azure_crypt_mount(이전 암호화) 또는 /etc/crypttab(새 암호화)에 파일 시스템을 추가합니다.
비고
이러한 파일은 수정하지 마세요.
이 파일은 부팅 프로세스 중에 이러한 디스크를 활성화하여 나중에 LVM 또는 RAID를 사용할 수 있도록 합니다.
이 파일의 탑재 지점에 대해 걱정하지 마세요. Azure Disk Encryption은 암호화된 디바이스 위에 물리적 볼륨 또는 RAID 디바이스를 만든 후 디스크를 일반 파일 시스템으로 탑재하는 기능을 잃게 됩니다. 준비 프로세스 중에 사용한 파일 시스템 형식이 제거됩니다.
임시 폴더 및 임시 fstab 항목 제거
LVM의 일부로 사용할 디스크에서 파일 시스템을 분리합니다.
for disk in c d e f; do umount /tempdata${disk}; done
/etc/fstab 항목을 제거합니다.
vi /etc/fstab
디스크가 탑재되지 않았고 /etc/fstab의 항목이 제거되었는지 확인합니다.
lsblk
그리고 디스크가 구성되어 있는지 확인합니다.
cat /etc/fstab
LVM-on-crypt에 대한 단계
이제 기본 디스크가 암호화되었으므로 LVM 구조를 만들 수 있습니다.
디바이스 이름을 사용하는 대신 각 디스크에 대한 /dev/mapper 경로를 사용하여 실제 볼륨을 만듭니다(디스크 자체가 아닌 디스크 위에 있는 암호화 계층에).
암호화된 계층 위에 LVM 구성
실제 볼륨 만들기
파일 시스템 서명을 초기화하는 것이 괜찮은지 묻는 경고가 표시됩니다. y를 입력하여 계속하거나 표시된 대로 echo "y"를 사용합니다.
echo "y" | pvcreate /dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052
echo "y" | pvcreate /dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1
echo "y" | pvcreate /dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a
echo "y" | pvcreate /dev/mapper/4159c60a-a546-455b-985f-92865d51158c
비고
여기서 /dev/mapper/device 이름은 lsblk의 출력에 따라 실제 값으로 바꿔야 합니다.
실제 볼륨에 대한 정보 확인
pvs
볼륨 그룹 만들기
이미 초기화된 동일한 디바이스를 사용하여 볼륨 그룹을 만듭니다.
vgcreate vgdata /dev/mapper/
볼륨 그룹에 대한 정보 확인
vgdisplay -v vgdata
pvs
논리적 볼륨 생성하기
lvcreate -L 10G -n lvdata1 vgdata
lvcreate -L 7G -n lvdata2 vgdata
만든 논리 볼륨 확인
lvdisplay
lvdisplay vgdata/lvdata1
lvdisplay vgdata/lvdata2
논리 볼륨에 대한 구조 위에 파일 시스템 만들기
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata1
echo "yes" | mkfs.ext4 /dev/vgdata/lvdata2
새 파일 시스템에 대한 탑재 지점 만들기
mkdir /data0
mkdir /data1
/etc/fstab에 새 파일 시스템을 추가하고 탑재합니다.
echo "/dev/mapper/vgdata-lvdata1 /data0 ext4 defaults,nofail 0 0" >>/etc/fstab
echo "/dev/mapper/vgdata-lvdata2 /data1 ext4 defaults,nofail 0 0" >>/etc/fstab
mount -a
새 파일 시스템이 탑재되었는지 확인
lsblk -fs
df -h
이 lsblk 변형에서는 종속성을 역순으로 표시하는 디바이스를 나열합니다. 이 옵션은 원래 /dev/sd[disk] 디바이스 이름 대신 논리 볼륨별로 그룹화된 디바이스를 식별하는 데 도움이 됩니다.
Azure Disk Encryption을 통해 암호화된 디바이스 위에 만든 LVM 볼륨의 탑재 지점 옵션에 nofail 옵션이 추가되었는지 확인해야 합니다. 부팅 프로세스 중 또는 유지 관리 모드에서 OS가 중단되는 것을 방지합니다.
nofail 옵션을 사용하지 않는 경우:
- OS는 Azure Disk Encryption이 시작되고 데이터 디스크가 잠금 해제되고 탑재되는 단계에 들어가지 않습니다.
- 암호화된 디스크는 부팅 프로세스가 끝날 때 잠금 해제됩니다. LVM 볼륨 및 파일 시스템은 Azure Disk Encryption이 잠금을 해제할 때까지 자동으로 탑재됩니다.
VM 다시 부팅을 테스트하고 부팅 시간 후에 파일 시스템도 자동으로 탑재되는지 확인할 수 있습니다. 이 프로세스는 파일 시스템의 수와 크기에 따라 몇 분 정도 걸릴 수 있습니다.
VM을 다시 부팅하고 다시 부팅한 후 확인
shutdown -r now
lsblk
df -h
RAID-on-crypt에 대한 단계
기본 디스크가 암호화되었으므로 RAID 구조를 계속 만들 수 있습니다. 프로세스는 LVM의 프로세스와 동일하지만 디바이스 이름을 사용하는 대신 각 디스크에 대해 /dev/mapper 경로를 사용합니다.
디스크의 암호화된 계층 위에 RAID 구성
mdadm --create /dev/md10 \
--level 0 \
--raid-devices=4 \
/dev/mapper/c49ff535-1df9-45ad-9dad-f0846509f052 \
/dev/mapper/6712ad6f-65ce-487b-aa52-462f381611a1 \
/dev/mapper/ea607dfd-c396-48d6-bc54-603cf741bc2a \
/dev/mapper/4159c60a-a546-455b-985f-92865d51158c
비고
여기서 /dev/mapper/device 이름은 lsblk의 출력에 따라 실제 값으로 바꿔야 합니다.
RAID 생성 확인/모니터링
watch -n1 cat /proc/mdstat
mdadm --examine /dev/mapper/[]
mdadm --detail /dev/md10
새 RAID 디바이스 위에 파일 시스템 만들기
mkfs.ext4 /dev/md10
파일 시스템에 대한 새 탑재 지점을 만들고 /etc/fstab에 새 파일 시스템을 추가하고 탑재합니다.
비고
이 주기는 이 특정 예제에 대해 하나의 디바이스에서만 반복되며, 필요한 경우 여러 md 디바이스에 사용할 수 있도록 이 방식으로 빌드됩니다.
for device in md10; do diskuuid="$(blkid -s UUID -o value /dev/${device})"; \
mkdir /raiddata; \
echo "UUID=${diskuuid} /raiddata ext4 defaults,nofail 0 0" >> /etc/fstab; \
mount -a; \
done
새 파일 시스템이 탑재되었는지 확인합니다.
lsblk -fs
df -h
Azure Disk Encryption을 통해 암호화된 디바이스 위에 만든 RAID 볼륨의 탑재 지점 옵션에 nofail 옵션이 추가되었는지 확인해야 합니다. 부팅 프로세스 중 또는 유지 관리 모드에서 OS가 중단되는 것을 방지합니다.
nofail 옵션을 사용하지 않는 경우:
- OS는 Azure Disk Encryption이 시작되고 데이터 디스크가 잠금 해제되고 탑재되는 단계에 들어가지 않습니다.
- 암호화된 디스크는 부팅 프로세스가 끝날 때 잠금 해제됩니다. RAID 볼륨 및 파일 시스템은 Azure Disk Encryption이 잠금을 해제할 때까지 자동으로 탑재됩니다.
VM 다시 부팅을 테스트하고 부팅 시간 후에 파일 시스템도 자동으로 탑재되는지 확인할 수 있습니다. 이 프로세스는 파일 시스템의 수와 크기에 따라 몇 분 정도 걸릴 수 있습니다.
shutdown -r now
로그인할 수 있는 경우:
lsblk
df -h