편집

다음을 통해 공유


Azure 기밀 가상 머신 FAQ

이 문서에서는 기밀 VM(가상 머신)에 대한 가장 일반적인 질문에 대한 답변을 제공합니다.

기밀 VM이란?

기밀 VM은 높은 보안 및 기밀성 요구 사항이 있는 테넌트를 위한 IaaS 솔루션입니다. 기밀 VM은 다음을 제공합니다.

  • 프로세서 상태 및 가상 머신의 메모리를 포함한 "사용 중인 데이터"에 대한 암호화. 키는 프로세서에 의해 생성되며 프로세서를 떠나지 않습니다.
  • 호스트 증명은 데이터 처리가 시작되기 전에 서버의 전체 상태와 준수를 확인하는 데 도움이 됩니다.
  • HSM(하드웨어 보안 모듈)을 연결하여 테넌트가 제외적으로 소유하는 기밀 VM 디스크의 키를 보호할 수 있습니다.
  • 향상된 보안 설정 및 기능을 위해 게스트 OS를 지원하는 새로운 UEFI 부팅 아키텍처
  • 전용 가상 TPM(신뢰할 수 있는 플랫폼 모듈)은 VM 상태를 인증하고 강화된 키 관리를 제공하며 BitLocker와 같은 사용 사례를 지원합니다.

기밀 VM을 사용해야 하는 이유는 무엇인가요?

기밀 VM은 중요한 워크로드를 오프-프레미스에서 클라우드로 이동하는 것에 대한 고객의 우려를 해결합니다. 기밀 VM은 기본 인프라 및 클라우드 운영자의 고객 데이터에 대해 강화된 보호 기능을 제공합니다. 다른 접근 방식 및 솔루션과 달리 플랫폼의 기술 요구 사항에 맞게 기존 워크로드를 조정할 필요가 없습니다.

AMD SEV-SNP란 무엇이며 Azure 기밀 VM과 어떤 관련이 있나요?

SEV-SNP는 Secure Encrypted Virtualization-Secure Nested Paging을 나타냅니다. 이는 AMD가 제공하는 TEE(신뢰 실행 환경) 기술이며 다양한 보호 기능을 제공합니다. 예를 들어 메모리 암호화, 고유 CPU 키, 프로세서 레지스터 상태 암호화, 무결성 보호, 펌웨어 롤백 방지, 측면 채널 강화, 인터럽트 및 예외 동작 제한 등이 있습니다. 전체적으로 AMD SEV 기술은 게스트 보호를 강화하여 VM 메모리 및 상태에 대한 하이퍼바이저 및 기타 호스트 관리 코드 액세스를 거부합니다. 기밀 VM은 전체 디스크 암호화 및 Azure Key Vault 관리되는 HSM과 같은 Azure 기술과 함께 AMD SEV-SNP를 활용합니다. 제어하는 키를 사용하여 사용 중인 데이터, 전송 중인 데이터 및 미사용 데이터를 암호화할 수 있습니다. 기본 제공 Azure Attestation 기능을 사용하면 기밀 VM의 보안 상태 및 기본 인프라에 대한 신뢰를 개별적으로 설정할 수 있습니다.

Intel TDX 기술은 무엇이며 Azure 기밀 VM과 어떤 관련이 있나요?

Intel TDX는 Intel TDX(Intel Trust Domain Extensions)를 나타내며 Intel에서 제공하는 TEE(신뢰 실행 환경) 기술이며 다양한 보호 기능을 제공합니다. Intel TDX는 메모리 관리 및 암호화를 위해 하드웨어 확장을 사용하고 CPU 상태의 기밀성과 무결성을 모두 보호합니다. 또한 Intel TDX는 하이퍼바이저, 기타 호스트 관리 코드 및 VM 메모리 및 상태에 대한 관리자 액세스를 거부하여 가상화된 환경을 강화하는 데 도움이 됩니다. 기밀 VM은 Intel TDX를 전체 디스크 암호화 및 Azure Key Vault 관리형 HSM과 같은 Azure 기술과 결합합니다. 제어하는 키를 사용하여 사용 중인 데이터, 전송 중인 데이터 및 미사용 데이터를 암호화할 수 있습니다.

Azure 기밀 VM이 Azure 클라우드 인프라 내부 및 외부에서 발생하는 위협에 대해 더 나은 보호를 제공하려면 어떻게 해야 할까요?

Azure VM은 이미 다른 테넌트 및 악의적인 침입자에 대한 업계 최고의 보안 및 보호를 제공합니다. Azure 기밀 VM은 AMD SEV-SNP 및 Intel TDX와 같은 하드웨어 기반 TEE를 사용하여 데이터 기밀성과 무결성을 암호화 방식으로 격리하고 보호함으로써 이러한 보호 기능을 강화합니다. 호스트 관리자 또는 호스트 서비스(Azure 하이퍼바이저 포함)는 기밀 VM의 메모리 또는 CPU 상태를 직접 보거나 수정할 수 없습니다. 또한 전체 증명 기능, 전체 OS 디스크 암호화 및 하드웨어로 보호되는 가상 신뢰할 수 있는 플랫폼 모듈을 통해 프라이빗 키와 메모리 콘텐츠가 암호화되지 않은 상태로 호스팅 환경에 노출되지 않도록 영구 상태가 보호됩니다.

기밀 VM에 연결된 가상 디스크가 자동으로 보호되고 있나요?

현재 기밀 VM용 OS 디스크를 암호화하고 보안을 설정할 수 있습니다. 추가 보안을 위해 모든 데이터 드라이브에 대해 게스트 수준 암호화(예: BitLocker 또는 dm-crypt)를 사용하도록 설정할 수 있습니다.

Windows 스왑 파일(pagefile.sys)에 기록된 메모리가 TEE로 보호되나요?

예, 하지만 pagefile.sys가 암호화된 OS 디스크에 있는 경우에만 가능합니다. 임시 디스크가 있는 기밀 VM에서 pagefile.sys 파일을 암호화된 OS로 이동할 수 있습니다(pagefile.sys를 c:\ 드라이브로 이동할 때의 팁).

기밀 VM 내에서 메모리 덤프를 생성할 수 있나요?

아니요. 기밀 VM에는 이 기능이 없습니다.

Azure 기밀 VM을 배포하는 방법

기밀 VM을 배포할 수 있는 몇 가지 방법은 다음과 같습니다.

AMD 기반 기밀 VM에 대한 증명을 수행할 수 있나요?

AMD SEV-SNP의 Azure 기밀 VM은 부팅 단계의 일부로 증명을 거칩니다. 이 프로세스는 사용자에게 불투명하며 Microsoft Azure Attestation 및 Azure Key Vault 서비스를 사용하는 클라우드 운영 체제에서 수행됩니다. 또한 기밀 VM을 사용하면 사용자가 기밀 VM에 대해 독립적인 증명을 수행할 수 있습니다. 이 증명은 Azure 기밀 VM 게스트 증명이라는 새로운 도구를 사용하여 수행됩니다. 게스트 증명을 통해 고객은 SEV-SNP가 사용하도록 설정된 AMD 프로세서에서 기밀 VM이 실행 중임을 증명할 수 있습니다.

Intel 기반 기밀 VM에 대한 증명을 수행할 수 있나요?

Intel TDX를 사용하는 Azure 기밀 VM은 부팅 흐름의 일부로 투명하게 증명되어 플랫폼이 규정을 준수하고 최신 상태인지 확인할 수 있습니다. 이 프로세스는 사용자에게 불투명하며 Microsoft Azure Attestation 및 Azure Key Vault를 사용하여 수행됩니다. 부팅 후 확인을 더 진행하려면 게스트 내 플랫폼 증명을 사용할 수 있습니다. 이를 통해 VM이 정품 Intel TDX에서 실행되고 있는지 확인할 수 있습니다. 이 기능에 액세스하려면 미리 보기 분기를 참조하세요. 또한 운영자 독립적 증명을 원하는 기업을 위한 Intel® Trust Authority를 지원합니다. AMD SEV-SNP와 유사한 전체 게스트 내 증명에 대한 지원이 곧 제공될 예정입니다. 이를 통해 조직은 게스트 애플리케이션 계층까지 더 깊이 들어가 추가 양상의 유효성을 검사할 수 있습니다.

모든 OS 이미지가 기밀 VM에서 작동하나요?

기밀 VM에서 실행하려면 OS 이미지가 특정 보안 및 호환성 요구 사항을 충족해야 합니다. 이렇게 하면 기본 클라우드 인프라에서 기밀 VM을 안전하게 탑재, 증명 및 격리할 수 있습니다. 향후 사용자 지정 Linux 빌드를 사용하고 일련의 오픈 소스 패치를 적용하여 기밀 VM 이미지가 되도록 하는 방법에 대한 지침을 제공할 계획입니다.

사용 가능한 기밀 VM 이미지 중 하나를 사용자 지정할 수 있나요?

예. Azure Compute Gallery를 사용하여 애플리케이션을 설치하는 등의 방식으로 기밀 VM 이미지를 수정할 수 있습니다. 그런 다음, 수정된 이미지를 기반으로 기밀 VM을 배포할 수 있습니다.

전체 디스크 암호화 체계를 사용해야 하나요? 표준 체계를 대신 사용할 수 있나요?

선택적 전체 디스크 암호화 체계는 Azure에서 가장 안전하며 기밀 컴퓨팅 원칙을 충족합니다. 그러나 전체 디스크 암호화 대신 또는 전체 디스크 암호화와 함께 다른 디스크 암호화 체계를 사용할 수도 있습니다. 여러 디스크 암호화 체계를 사용하는 경우 이중 암호화가 성능에 부정적인 영향을 줄 수 있습니다.

Azure 기밀 VM은 가상 TPM을 지원하므로 기밀 VM 가상 TPM에 비밀/키를 봉인할 수 있나요?

각 Azure 기밀 VM에는 고객이 비밀/키를 봉인할 수 있는 자체 가상 TPM이 있습니다. 고객은 Windows VM용 TPM.msc를 통해 vTPM 상태를 확인하는 것이 좋습니다. 사용할 준비가 되지 않은 상태일 경우 vTPM에 비밀/키를 봉인하기 전에 VM을 다시 부팅하는 것이 좋습니다.

VM을 만든 후 새 전체 디스크 암호화 체계를 사용하거나 사용하지 않도록 설정할 수 있나요?

아니요. 기밀 VM을 만든 후에는 전체 디스크 암호화를 비활성화하거나 다시 활성화할 수 없습니다. 대신 새 기밀 VM을 만듭니다.

운영자 독립적인 키 관리, 증명 및 디스크 암호화를 적용하기 위해 신뢰할 수 있는 컴퓨팅 기반의 더 많은 양상을 제어할 수 있나요?

클라우드 서비스 공급자로부터 TCB 서비스에 대한 추가 "업무 분리"를 원하는 개발자는 보안 형식 "NonPersistedTPM"을 사용해야 합니다.

  • 이 환경은 Intel TDX 공개 미리 보기의 일부로만 제공됩니다. 이를 사용하거나 이를 통해 서비스를 제공하는 조직은 TCB 및 이에 따른 책임을 제어합니다.
  • 이 환경에서는 네이티브 Azure 서비스를 무시하여 자체 디스크 암호화, 키 관리 및 증명 솔루션을 가져올 수 있습니다.
  • 각 VM에는 여전히 하드웨어 증거를 검색하는 데 사용해야 하는 vTPM이 있지만 vTPM 상태는 다시 부팅을 통해 유지되지 않습니다. 즉, 이 솔루션은 클라우드 서비스 공급자와의 분리를 원하는 임시 워크로드 및 조직에 탁월합니다.

기밀이 아닌 VM을 기밀 VM으로 변환할 수 있나요?

아니요. 보안상의 이유로 기밀 VM을 처음부터 새로 만들어야 합니다.

DCasv5/ECasv5 CVM을 DCesv5/ECesv5 CVM 또는 DCesv5/ECesv5 CVM을 DCasv5/ECasv5 CVM으로 변환할 수 있나요?

예, 공유하는 지역의 DCasv5/ECasv5 및 DCesv5/ECesv5 둘 다에서 한 기밀 VM을 다른 기밀 VM으로 변환할 수 있습니다. Windows 이미지를 사용하는 경우 최신 업데이트가 모두 있는지 확인합니다. Ubuntu Linux 이미지를 사용하는 경우 최소 커널 버전 6.2.0-1011-azure의 Ubuntu 22.04 LTS 기밀 이미지를 사용하고 있는지 확인합니다.

Azure Portal 크기 선택기에서 DCasv5/ECasv5 또는 DCesv5/ECesv5 VM을 찾을 수 없는 이유는 무엇인가요?

기밀 VM에 사용 가능한 지역을 선택했는지 확인합니다. 또한 크기 선택기에서 모든 필터 지우기를 선택해야 합니다.

기밀 VM에서 Azure 가속화된 네트워킹을 사용하도록 설정할 수 있나요?

아니요. 기밀 VM은 가속화된 네트워킹을 지원하지 않습니다. 기밀 VM 배포 또는 기밀 컴퓨팅에서 실행되는 Azure Kubernetes Service 클러스터 배포에는 가속화된 네트워킹을 사용하도록 설정할 수 없습니다.

이 오류는 무엇을 의미하나요? "승인된 표준 DCasV5/ECasv5 또는 DCesv5/ECesv5 제품군 코어 할당량을 초과하므로 작업을 완료할 수 없습니다."

승인된 표준 DCasv5/ECasv5 제품군 코어 할당을 초과하므로 작업을 완료할 수 없습니다라는 오류가 표시될 수 있습니다. 이 ARM 템플릿(Azure Resource Manager 템플릿) 오류는 Azure 컴퓨팅 코어가 부족하여 배포에 실패했음을 의미합니다. Azure 평가판 구독에는 기밀 VM에 대한 충분한 코어 할당이 없습니다. 할당량을 늘리는 지원 요청을 만듭니다.

DCasv5 시리즈/DCesv5 시리즈 및 ECasv5 시리즈/ECesv5 시리즈 VM 간의 차이점은 무엇인가요?

ECasv5 시리즈 및 ECesv5 시리즈는 메모리 최적화 VM 크기로, 더 높은 메모리 대 CPU 비율을 제공합니다. 이러한 크기는 관계형 데이터베이스 서버, 중대형 캐시 및 메모리 내 분석에 특히 적합합니다.

기밀 VM을 전역적으로 사용할 수 있나요?

아니요. 현재 이러한 VM은 일부 지역에서만 사용할 수 있습니다. 사용 가능한 지역의 현재 목록은 지역별 VM 제품을 참조하세요.

기밀 VM의 데이터를 서비스하거나 액세스하기 위해 Microsoft의 도움이 필요한 경우에는 어떻게 해야 하나요?

Azure에는 고객이 액세스 권한을 부여하더라도 직원에게 기밀 VM 액세스 권한을 부여하기 위한 운영 절차가 없습니다. 따라서 기밀 VM에는 다양한 복구 및 지원 시나리오가 제공되지 않습니다.

기밀 VM이 Azure VMware Solution 같은 가상화를 지원하나요?

아니요, 기밀 VM은 현재 VM 내에서 하이퍼바이저를 실행하는 기능과 같은 중첩된 가상화를 지원하지 않습니다.

기밀 VM 사용에 대한 추가 비용이 있나요?

기밀 VM에 대한 청구는 사용량 및 스토리지, VM의 크기와 지역에 따라 달라집니다. 기밀 VM은 몇 메가바이트의 암호화된 소형 VMGS(가상 머신 게스트 상태) 디스크를 사용합니다. VMGS는 vTPM 및 UEFI 부트로더와 같은 구성 요소의 VM 보안 상태를 캡슐화합니다. 이 디스크로 인해 월별 스토리지 요금이 발생할 수 있습니다. 또한 선택적 전체 디스크 암호화를 사용하도록 선택하면 암호화된 OS 디스크 비용이 더 많이 발생합니다. 스토리지 요금에 대한 자세한 내용은 관리 디스크 가격 책정 가이드를 참조하세요. 마지막으로, 일부 높은 보안 및 개인 정보 설정의 경우 관리되는 HSM 풀과 같은 연결된 리소스를 만들도록 선택할 수 있습니다. Azure는 이러한 리소스에 기밀 VM 비용과 별도의 요금을 청구합니다.

DCesv5/ECesv5 시리즈 VM의 시간이 UTC와 다른 경우 어떻게 해야 하나요?

DCesv5/ECesv5 시리즈 VM이 UTC에서 약간의 시간 차이가 발생하는 경우는 거의 없습니다. 이에 대한 장기적인 수정이 곧 제공될 예정입니다. 그 동안 Windows 및 Ubuntu Linux VM에 대한 해결 방법은 다음과 같습니다.

sc config vmictimesync start=disabled
sc stop vmictimesync

Ubuntu Linux 이미지의 경우 다음 스크립트를 실행합니다.

#!/bin/bash

# Backup the original chrony.conf file
cp /etc/chrony/chrony.conf /etc/chrony/chrony.conf.bak

# check chronyd.service status
status=$(systemctl is-active chronyd.service)

# check chronyd.service status is "active" or not
if [ "$status" == "active" ]; then
  echo "chronyd.service is active."
else
  echo "chronyd.service is not active. Exiting script."
  exit 1
fi

# Comment out the line with 'refclock PHC /dev/ptp_hyperv'
sed -i '/refclock PHC \/dev\/ptp_hyperv/ s/^/#/' /etc/chrony/chrony.conf

# Uncomment the lines with 'pool ntp.ubuntu.com' and other pool entries
sed -i '/#pool ntp.ubuntu.com/ s/^#//' /etc/chrony/chrony.conf
sed -i '/#pool 0.ubuntu.pool.ntp.org/ s/^#//' /etc/chrony/chrony.conf
sed -i '/#pool 1.ubuntu.pool.ntp.org/ s/^#//' /etc/chrony/chrony.conf
sed -i '/#pool 2.ubuntu.pool.ntp.org/ s/^#//' /etc/chrony/chrony.conf

echo "Changes applied to /etc/chrony/chrony.conf. Backup created at /etc/chrony/chrony.conf.bak."

echo "Restart chronyd service"
systemctl restart chronyd.service


echo "Check chronyd status"
systemctl status chronyd.service