다음을 통해 공유


가상 머신 인증 문제 해결

VM(가상 머신) 이미지를 Azure Marketplace에 게시할 때 Azure 팀은 가상 머신의 유효성을 검사하여 부팅 가능하고 안전하며 Azure와 호환되는지 확인합니다. VM 이미지가 고품질 테스트에 실패하면 게시되지 않습니다. 문제를 설명하는 오류 메시지가 표시됩니다.

이 문서에서는 관련 솔루션과 함께 VM 이미지 게시 중 일반적인 오류 메시지를 설명합니다.

메모

이 문서 또는 개선 제안에 대한 질문이 있는 경우 파트너 센터 지원문의하세요.

VM 확장 실패

이미지가 VM 확장을 지원하는지 확인합니다.

VM 확장을 사용하도록 설정하려면 다음을 수행합니다.

  1. Linux VM을 선택합니다.

  2. 진단 설정이동합니다.

  3. Storage 계정업데이트하여 기본 행렬을 사용하도록 설정합니다.

  4. 저장을 선택합니다.

    게스트 수준 모니터링을 사용하도록 설정하는 방법을 표시하는 스크린샷

VM 확장이 제대로 활성화되었는지 확인하려면 다음을 수행합니다.

  1. VM에서 VM 확장 탭을 선택한 다음 Linux 진단 확장상태를 확인합니다.

  2. 프로비전 상태를 확인합니다.

    • 프로비전 성공상태가 확장 테스트 사례가 통과됩니다.
    • 프로비전 실패상태가 확장 테스트 사례가 실패하고 강화된 플래그를 설정해야 합니다.

    프로비저닝이 성공했음을 보여 주는 스크린샷

    VM 확장이 실패하는 경우 Linux 진단 확장을 사용하여 메트릭 및 로그 모니터링하여 사용하도록 설정합니다. VM 확장을 사용하도록 설정하지 않으려면 지원 팀에 문의하고 사용하지 않도록 설정하도록 요청합니다.

VM 프로비저닝 문제

제품을 제출하기 전에 VM 프로비저닝 프로세스를 엄격하게 준수했는지 확인합니다. VM을 프로비전하기 위한 JSON 형식을 보려면 가상 머신 이미지테스트를 참조하세요.

프로비전 문제에는 다음과 같은 오류 시나리오가 포함될 수 있습니다.

시나리오 오류 이유 용액
1 VHD(가상 하드 디스크)가 잘못되었습니다. VHD 바닥글의 지정된 쿠키 값이 올바르지 않으면 VHD가 잘못된 것으로 간주됩니다. 이미지를 다시 만들고 요청을 제출합니다.
2 잘못된 Blob 형식 사용된 Blob이 페이지 형식이 아닌 블록 형식이므로 VM 프로비저닝에 실패했습니다. 이미지를 페이지 유형으로 다시 만들고 요청을 제출합니다.
3 프로비전 시간 제한 또는 제대로 일반화되지 않음 VM 일반화에 문제가 있습니다. 일반화를 사용하여 이미지를 다시 만들고 요청을 제출합니다.

메모

VM 일반화에 대한 자세한 내용은 다음을 참조하세요.

메모

VM 이미지에 배포할 사용자 지정 ARM 템플릿이 필요하므로 프로비저닝이 실패하는 경우 파트너 센터의 '기술 구성' 페이지에서 '배포를 위한 사용자 지정 ARM 템플릿 필요' 확인란을 사용하도록 설정합니다. 이렇게 하면 인증 팀이 프로비전 문제에 실패하지 않고 이 요청에 대해 적절한 조치를 취할 수 있습니다.

사용자 지정 ARM 템플릿 확인란

VHD 사양

'conectix' 문자열은 VHD 사양의 일부입니다. 파일 작성자를 식별하는 VHD 바닥글에서 8바이트 쿠키로 정의됩니다. Microsoft에서 만든 모든 VHD 파일에는 이 쿠키가 있습니다.

VHD 형식의 Blob에는 다음 형식의 512바이트 바닥글이 있어야 합니다.

하드 디스크 바닥글 필드 크기(바이트)
쿠키 8
기능 4
파일 형식 버전 4
데이터 오프셋 8
타임스탬프를 4
작성자 애플리케이션 4
작성자 버전 4
Creator 호스트 OS 4
원래 크기 8
현재 크기 8
디스크 기하 도형 4
디스크 유형 4
체크섬 4
고유 ID 16
저장된 상태 1
예약 427

VHD 사양

원활한 게시 환경을 보장하려면 VHD가 다음 조건을 충족하는지 확인합니다.

  • 쿠키에는 'conectix' 문자열이 포함되어 있습니다.
  • 디스크 유형이 수정되었습니다.
  • VHD의 가상 크기는 20MB 이상입니다.
  • VHD가 정렬됩니다. 가상 크기는 1MB의 배수여야 합니다.
  • VHD Blob 길이는 가상 크기와 VHD 바닥글 길이(512)와 같습니다.

VHD 사양다운로드합니다.

Windows용 소프트웨어 규정 준수

소프트웨어 준수 문제로 인해 Windows 이미지 요청이 거부된 경우 설치된 SQL Server 인스턴스를 사용하여 Windows 이미지를 만들었을 수 있습니다. 대신 Azure Marketplace에서 관련 SQL Server 버전 기본 이미지를 가져와야 합니다.

SQL Server가 설치된 Windows 이미지를 직접 만들지 마세요. Azure Marketplace에서 승인된 SQL Server 기본 이미지(엔터프라이즈/표준/웹)를 사용합니다.

Visual Studio 또는 Office 라이선스 제품을 설치하려는 경우 지원 팀에 사전 승인을 요청하세요.

승인된 기본을 선택하는 방법에 대한 자세한 내용은 승인된 기본가상 머신 만들기를 참조하세요.

도구 키트 테스트 사례 실행 실패

Microsoft 인증 도구 키트는 테스트 사례를 실행하고 VHD 또는 이미지가 Azure 환경과 호환되는지 확인하는 데 도움이 될 수 있습니다.

Microsoft 인증 도구 키트다운로드합니다.

Linux 테스트 사례

다음 표에서는 도구 키트가 실행되는 Linux 테스트 사례를 나열합니다. 테스트 유효성 검사는 설명에 명시되어 있습니다.

시나리오 테스트 사례 묘사
1 Bash 기록 VM 이미지를 만들기 전에 Bash 기록 파일을 지워야 합니다.
2 Linux 에이전트 버전 지원되는 Azure Linux 에이전트 이상 버전을 설치해야 합니다.
3 필수 커널 매개 변수 다음 커널 매개 변수가 설정되어 있는지 확인합니다.
console=ttyS0
earlyprintk=ttyS0
4 OS 디스크에서 파티션 교환 OS 디스크에 스왑 파티션이 만들어지지 않는지 확인합니다.
5 OS 디스크의 루트 파티션 OS 디스크에 대한 단일 루트 파티션을 만듭니다.
6 OpenSSL 버전 OpenSSL 버전은 v0.9.8 이상이어야 합니다.
7 Python 버전 Python 버전 2.6 이상을 사용하는 것이 좋습니다.
8 클라이언트 활성 간격 ClientAliveInterval을 180으로 설정합니다. 애플리케이션이 필요한 경우 30에서 235로 설정할 수 있습니다. 최종 사용자에 대해 SSH를 사용하도록 설정하는 경우 설명된 대로 이 값을 설정해야 합니다.
9 OS 아키텍처 64비트 운영 체제만 지원됩니다.
10 자동 업데이트 Linux 에이전트 자동 업데이트를 사용할 수 있는지 여부를 식별합니다.

일반적인 테스트 사례 오류

테스트 사례를 실행할 때 표시되는 일반적인 오류는 다음 표를 참조하세요.

시나리오 테스트 사례 오류 용액
1 Linux 에이전트 버전 테스트 사례 지원되는 최소 버전의 Azure Linux 에이전트 이상을 설치해야 합니다.](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/support-extensions-agent-version) Linux 에이전트 버전을 업데이트합니다. 자세한 내용은 Linux 에이전트 버전 업데이트 페이지방문하세요.
2 Bash 기록 테스트 사례 제출된 이미지의 Bash 기록 크기가 1KB(킬로바이트)를 초과하면 오류가 발생합니다. 크기는 Bash 기록 파일에 잠재적으로 중요한 정보가 포함되지 않도록 1KB로 제한됩니다. VHD를 다른 작동 중인 VM에 탑재하여 해결하고 크기를 1KB 이하로 줄이기 위해 변경합니다. 예를 들어 .bash_history 파일을 삭제합니다.
3 필수 커널 매개 변수 테스트 사례 console 값이 ttyS0설정되지 않은 경우 이 오류가 표시됩니다. 다음 명령을 실행하여 확인합니다.
cat /proc/cmdline
console 값을 설정하여 ttyS0요청을 다시 제출합니다.
4 ClientAlive 간격 테스트 사례 도구 키트가 이 테스트 사례에 대해 실패한 결과를 제공하는 경우 ClientAliveInterval부적절한 값이 있습니다. ClientAliveInterval 값을 235보다 작거나 같게 설정한 다음 요청을 다시 제출합니다.
5 smoke_test 커널 패닉으로 인해 이미지를 부팅하거나 다시 부팅할 수 없는 경우 오류가 표시됩니다. '오류 설명'에서 커널 패닉의 일부 호출 추적 정보를 가져올 수 있습니다. 전체 호출 추적 및 직렬 로그를 보려면 이미지를 사용하여 Azure에서 VM을 배포하고 Azure Portal의 VM 리소스에서 '직렬 콘솔'을 확인할 수 있습니다. Azure에서 VM을 만들 때 Azure Portal에서 직렬 콘솔 로그를 다운로드할 수 있습니다(직렬 콘솔에 대한 자세한 내용은 https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/serial-console-linux 참조할 수 있습니다).
6 verify_dns_name_resolution 이 테스트 사례는 명령:ping bing.com -c 5 -i 0.5 -O를 실행하여 DNS 이름 확인을 확인합니다. 공용 웹 주소 'bing.com'을 ping하지 못하면 오류가 발생합니다. 올바른 설정을 추가하려면 https://learn.microsoft.com/en-us/azure/virtual-machines/linux/azure-dns 참조하세요.
7 verify_no_pre_exist_users 일부 사용자의 암호가 검색되거나 일부 사용자의 키가 검색되면 '사용자 XXXX의 암호가 검색됨' 오류가 표시됩니다. /etc/shadow 파일을 확인하여 일부 사용자의 암호가 있는지 확인합니다. 그렇다면 암호를 삭제하고 오류 메시지 다음에 '{사용자의 홈 디렉터리}/.ssh/authorized_keys' 파일을 삭제해야 합니다.
8 validate_netvsc_reload '실패했습니다. SSHException: SSH 세션이 활성화되지 않았습니다.' 아래 명령을 실행한 후 VM을 연결할 수 없으면 입니다. 'xx 노드에서 커널 패닉이 발견되었습니다.' 오류가 표시됩니다. 'modprobe -r hv_netvsc; 명령을 실행한 후 VM에서 커널 패닉이 발견되면 modprobe hv_netvsc; ip link set eth0 down; ip link set eth0 up; dhclient -r eth0; dhclient eth0 ' 직렬 콘솔을 확인하여 위 명령을 실행하는 동안 오류가 발생했는지 확인합니다. NetVSC(네트워크 가상 서비스 클라이언트)에 대한 자세한 내용은 https://learn.microsoft.com/en-us/windows-hardware/drivers/network/sr-iov-synthetic-data-path 방문할 수 있습니다.

Windows 테스트 사례

다음 표에서는 테스트 유효성 검사에 대한 설명과 함께 도구 키트가 실행되는 Windows 테스트 사례를 나열합니다.

시나리오 테스트 사례 묘사
1 OS 아키텍처 Azure는 64비트 운영 체제만 지원합니다.
2 사용자 계정 종속성 애플리케이션 실행은 관리자 계정에 종속되어서는 안 됩니다.
3 장애 조치(failover) 클러스터 Windows Server 장애 조치(failover) 클러스터링 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
4 IPV6 IPv6는 Azure 환경에서 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
5 DHCP 동적 호스트 구성 프로토콜 서버 역할은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
6 원격 액세스 원격 액세스(직접 액세스) 서버 역할은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
7 Rights Management Services Rights Management Services. 서버 역할은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
8 Windows 배포 서비스 Windows 배포 서비스. 서버 역할은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
9 BitLocker 드라이브 암호화 BitLocker 드라이브 암호화는 운영 체제 하드 디스크에서 지원되지 않지만 데이터 디스크에서 사용될 수 있습니다.
10 Internet Storage 이름 서버 Internet Storage 이름 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
11 다중 경로 I/O 다중 경로 I/O. 이 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
12 네트워크 부하 분산 네트워크 부하 분산. 이 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
13 피어 이름 확인 프로토콜 피어 이름 확인 프로토콜입니다. 이 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
14 SNMP 서비스 SNMP(단순 네트워크 관리 프로토콜) 서비스 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
15 Windows Internet Name Service Windows Internet Name Service. 이 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.
16 무선 LAN 서비스 무선 LAN 서비스. 이 서버 기능은 아직 지원되지 않습니다. 애플리케이션은 이 기능에 종속되어서는 안 됩니다.

이전 테스트 사례에서 오류가 발생한 경우 솔루션에 대한 테이블의 설명 열을 참조하세요. 자세한 내용은 지원 팀에 문의하세요.

데이터 디스크 크기 확인

크기가 1023GB(기가바이트)보다 큰 데이터 디스크 요청은 승인되지 않습니다. 이 규칙은 Linux 및 Windows 모두에 적용됩니다.

크기가 1023GB보다 작거나 같은 요청을 다시 제출합니다.

OS 디스크 크기 유효성 검사

OS 디스크 크기에 대한 제한 사항은 다음 규칙을 참조하세요. 요청을 제출할 때 OS 디스크 크기가 Linux 또는 Windows에 대한 제한 사항 내에 있는지 확인합니다.

운영 체제 권장되는 VHD 크기
Linux 1GB ~1023GB
Windows 30GB~250GB

VM은 기본 운영 체제에 대한 액세스를 허용하므로 VHD 크기가 VHD에 충분히 큰지 확인합니다. 가동 중지 시간이 없으면 디스크를 확장할 수 없습니다. 30GB에서 50GB까지의 디스크 크기를 사용합니다.

VHD 크기 실제 점유 크기 용액
>500테비트(TiB) n/a 예외 승인을 위해 지원 팀에 문의하세요.
250-500TiB blob 크기와 200GiB(gibibytes) 차이를 > 예외 승인을 위해 지원 팀에 문의하세요.

메모

디스크 크기가 클수록 비용이 높아지고 설치 및 복제 프로세스 중에 지연이 발생합니다. 이러한 지연 및 비용 때문에 지원 팀은 예외 승인에 대한 근거를 모색할 수 있습니다.

Windows용 WannaCry 패치 확인 테스트

WannaCry 바이러스와 관련된 잠재적인 공격을 방지하려면 모든 Windows 이미지 요청이 최신 패치로 업데이트되었는지 확인합니다.

C:\windows\system32\drivers\srv.sys 또는 srv2.sys이미지 파일 버전을 확인할 수 있습니다.

다음 표에서는 패치된 최소 버전의 Windows Server를 보여 줍니다.

운영 체제 버전
Windows Server 2008 R2 6.1.7601.23689
Windows Server 2012 6.2.9200.22099
Windows Server 2012 R2 6.3.9600.18604
Windows Server 2016 10.0.14393.953
Windows Server 2019 NA

메모

Windows Server 2019에는 필수 버전 요구 사항이 없습니다.

SACK 취약성 패치 확인

Linux 이미지를 제출할 때 커널 버전 문제로 인해 요청이 거부될 수 있습니다.

커널을 승인된 버전으로 업데이트하고 요청을 다시 제출합니다. 다음 표에서 승인된 커널 버전을 찾을 수 있습니다. 버전 번호는 여기에 나열된 숫자보다 크거나 같아야 합니다.

이미지가 다음 커널 버전 중 하나와 함께 설치되지 않은 경우 올바른 패치로 업데이트합니다. 이미지가 다음 필수 패치로 업데이트된 후 지원 팀에서 필요한 승인을 요청합니다.

  • CVE-2019-11477
  • CVE-2019-11478
  • CVE-2019-11479
OS 제품군 버전 커널
Ubuntu 14.04 LTS 4.4.0-151
14.04 LTS 4.15.0-1049-*-azure
16.04 LTS 4.15.0-1049
18.04 LTS 4.18.0-1023
18.04 LTS 5.0.0-1025
18.10 4.18.0-1023
19.04 5.0.0-1010
19.04 5.3.0-1004
RHEL 및 Cent OS 6.10 2.6.32-754.15.3
7.2 3.10.0-327.79.2
7.3 3.10.0-514.66.2
7.4 3.10.0-693.50.3
7.5 3.10.0-862.34.2
7.6 3.10.0-957.21.3
7.7 3.10.0-1062.1.1
8.0 4.18.0-80.4.2
8.1 4.18.0-147
"7-RAW"(7.6)
"7-LVM"(7.6) 3.10.0-957.21.3
RHEL-SAP 7.4 미정
RHEL-SAP 7.5 미정
SLES SLES11SP4(SAP 포함) 3.0.101-108.95.2
SAP용 SLES12SP1 3.12.74-60.64.115.1
SAP용 SLES12SP2 4.4.121-92.114.1
SLES12SP3 4.4180-4.31.1(커널-azure)
SAP용 SLES12SP3 4.4.180-94.97.1
SLES12SP4 4.12.14-6.15.2(커널-azure)
SAP용 SLES12SP4 4.12.14-95.19.1
SLES15 4.12.14-5.30.1(커널-azure)
SAP용 SLES15 4.12.14-5.30.1(커널-azure)
SLES15SP1 4.12.14-5.30.1(커널-azure)
오라클 6.10 UEK2 2.6.39-400.312.2
UEK3 3.8.13-118.35.2
RHCK 2.6.32-754.15.3
7.0-7.5 UEK3 3.8.13-118.35.2
UEK4 4.1.12-124.28.3
RHCK는 위의 RHEL을 따릅니다.
7.6 RHCK 3.10.0-957.21.3
UEK5 4.14.35-1902.2.0
CoreOS Stable 2079.6.0 4.19.43*
베타 2135.3.1 4.19.50*
알파 2163.2.1 4.19.50*
Debian jessie(보안) 3.16.68-2
제시 백포트 4.9.168-1+deb9u3
stretch(보안) 4.9.168-1+deb9u3
Debian GNU/Linux 10(버스터) Debian 6.3.0-18+deb9u1
버스터, sid(스트레치 백포트) 4.19.37-5

이미지 크기는 메가바이트 배수여야 합니다.

Azure의 모든 VHD에는 1MB(메가바이트)의 배수에 맞춰진 가상 크기가 있어야 합니다. VHD가 권장되는 가상 크기를 준수하지 않는 경우 요청이 거부될 수 있습니다.

원시 디스크에서 VHD로 변환할 때 지침을 따릅니다. 원시 디스크 크기가 1MB의 배수인지 확인합니다. 자세한 내용은배포에 대한 정보를 참조하세요.

VM 액세스가 거부됨

VM에서 테스트 사례를 실행하기 위한 액세스 거부 문제는 권한 부족으로 인해 발생할 수 있습니다.

자체 테스트 사례가 실행 중인 계정에 대한 적절한 액세스를 사용하도록 설정했는지 확인합니다. 사용하도록 설정되지 않은 경우 테스트 사례를 실행하기 위해 액세스를 사용하도록 설정합니다. 액세스를 사용하도록 설정하지 않으려면 자체 테스트 사례 결과를 지원 팀과 공유할 수 있습니다.

인증 프로세스에 대해 SSH 사용 안 함 이미지를 사용하여 요청을 제출하려면 다음을 수행합니다.

  1. 이미지에서 최신 Azure VM 인증 테스트 도구를 실행합니다.

  2. 지원 티켓발생합니다. 도구 키트 보고서를 첨부하고 제품 세부 정보를 제공해야 합니다.

    • 제품 이름
    • 게시자 이름
    • 계획 ID/SKU 및 버전
  3. 인증 요청을 다시 제출합니다.

메모

ssh를 사용하지 않거나 제한한 잠긴 VM 이미지를 게시하는 경우 파트너 센터의 '기술 구성' 페이지에서 '원격 데스크톱 또는 SSH 사용 안 함' 확인란을 사용하도록 설정합니다. 이렇게 하면 인증 팀에 이 작업이 설계되어 있음을 알리고 제한된 액세스에 실패하지 않고 이미지에 대한 올바른 유효성 검사를 수행합니다.

잠긴 확인란

다운로드 실패

SAS(공유 액세스 서명) URL을 사용하여 VM 이미지를 다운로드할 때 발생하는 문제는 다음 표를 참조하세요.

오류 이유 용액
Blob을 찾을 수 없음 VHD를 삭제하거나 지정된 위치에서 이동할 수 있습니다.
사용 중인 Blob VHD는 다른 내부 프로세스에서 사용됩니다. 게시가 진행되는 동안 VHD의 원본 Blob Storage가 수정됩니다. SAS URL을 사용하여 VHD를 다운로드할 때 VHD가 사용된 상태가 되어서는 안 됩니다. 또한 게시가 진행 중일 때는 VHD를 사용/변경하지 마세요.
잘못된 SAS URL VHD에 연결된 SAS URL이 잘못되었습니다. 올바른 SAS URL을 가져옵니다.
잘못된 서명 VHD에 연결된 SAS URL이 잘못되었습니다. 올바른 SAS URL을 가져옵니다.
HTTP 조건부 헤더 SAS URL이 잘못되었습니다. 올바른 SAS URL을 가져옵니다.
잘못된 VHD 이름 백분율 기호 % 또는 따옴표 "같은 특수 문자가 VHD 이름에 있는지 확인합니다. 특수 문자를 제거하여 VHD 파일의 이름을 바꿉니다.

VM 이미지에는 1MB의 여유 공간이 있어야 합니다.

이미지를 Azure에 게시하는 경우(GPT 파티션사용) OS 디스크의 처음 2,048개 섹터(1MB)를 비워 두는 것이 좋습니다. 이 요구 사항은 Azure가 이미지에 중요한 메타데이터를 추가할 수 있도록 하는 것입니다(예: 고객, 청구 및 기타 세부 정보에 대한 부팅 시간을 개선하기 위한 메타데이터 포함). 이는 이미 승인된 기본 이미지 사용하고 이미지에 유효한 청구 태그가 있는 경우 모범 사례에 대한 권장 사항입니다. 그러나 이미지에 유효한 청구 태그가 없는 경우 OS 디스크의 처음 1MB가 비어 있지 않으면 게시가 실패할 수 있습니다.

유효한 청구 태그가 없는 고유한 이미지를 빌드하는 경우 OS 디스크의 처음 2,048개 섹터(1MB)가 비어 있는지 확인합니다. 그렇지 않으면 게시가 실패합니다. 이 요구 사항은 OS 디스크에만 적용됩니다(데이터 디스크는 아님). 승인된 베이스에서 이미지를 빌드하는 경우 이미 처음 1MB가 비어 있습니다. 따라서 별도로 작업할 필요가 없습니다.

OS 디스크에서 처음 1MB를 무료로 유지하려면 다음 섹션의 단계를 완료합니다.

빈 VHD에서 시작 시 1MB의 여유 공간을 유지하는 방법(2,048개 섹터, 각 섹터 512바이트)

이러한 단계는 Linux에만 적용 됩니다.

  1. Ubuntu, CentOS 또는 기타와 같은 모든 종류의 Linux VM을 만듭니다. 필요한 필드를 채운 다음 선택합니다. 디스크가.

    다음: 디스크 명령 단추가 강조 표시된 가상 머신 만들기 페이지를 보여 주는 스크린샷

  2. VM에 대한 관리되지 않는 디스크를 만듭니다. 기본값을 사용하거나 OS 디스크 크기, OS 디스크 유형암호화 유형같은 필드에 값을 지정합니다.

    가상 머신 흐름 만들기에서 데이터 디스크 페이지의 스크린샷 이미지입니다.

  3. VM을 만든 후 왼쪽 창에서 디스크선택합니다.

    VM용 디스크를 선택하는 방법을 보여 주는 스크린샷

  4. 파티션 테이블을 만들기 위해 VHD를 VM에 데이터 디스크로 연결합니다.

    1. 기존 디스크 연결선택합니다.

      V H D. 데이터 디스크를 추가하는 방법을 보여 주는 스크린샷

      V H D에 대한 데이터 디스크를 선택하는 방법을 보여 주는 스크린샷

    2. VHD 스토리지 계정을 찾습니다.

    3. 컨테이너선택한 다음, VHD를 선택합니다.

    4. 확인선택합니다.

      관리되지 않는 디스크 연결 페이지의 스크린샷

      VHD가 데이터 디스크 LUN 0으로 추가됩니다.

  5. VM을 다시 시작합니다.

  6. VM을 다시 시작한 후 Putty 또는 다른 클라이언트를 사용하여 VM에 로그인하고 sudo -i 명령을 실행하여 루트 액세스 권한을 얻습니다.

    sudo -i 명령을 보여 주는 Putty 클라이언트 명령줄 스크린샷

  7. VHD에서 파티션을 만듭니다.

    1. fdisk /dev/sdb 명령을 입력합니다.

    2. VHD에서 기존 파티션 목록을 보려면 p입력합니다.

    3. d 입력하여 VHD에서 사용할 수 있는 모든 기존 파티션을 삭제합니다. 필요하지 않은 경우 이 단계를 건너뛸 수 있습니다.

      기존 파티션을 삭제하기 위한 명령을 보여 주는 Putty 클라이언트 명령줄 스크린샷

    4. n 입력하여 새 파티션을 만들고 p 선택합니다(기본 파티션).

    5. 첫 번째 섹터 값으로 2048을 입력합니다. 마지막 섹터 기본값으로 둘 수 있습니다.

      중요하다

      기존 데이터는 2048개 섹터(각 섹터 512바이트)까지 지워집니다. 새 파티션을 만들기 전에 VHD를 백업합니다.

      Putty 클라이언트 명령줄 스크린샷은 지워진 데이터에 대한 명령 및 출력을 보여 줍니다.

    6. 파티션 생성을 확인하려면 w 입력합니다.

      파티션을 만들기 위한 명령을 보여 주는 Putty 클라이언트 명령줄 스크린샷 .

    7. 명령 n fdisk /dev/sdb 실행하고 p입력하여 파티션 테이블을 확인할 수 있습니다. 파티션이 2048 오프셋 값으로 만들어지는 것을 볼 수 있습니다.

      Putty 클라이언트 명령줄 스크린샷은 2048 오프셋을 만들기 위한 명령을 보여 줍니다.

  8. VM에서 VHD를 분리하고 VM을 삭제합니다.

기본 자격 증명

제출된 VHD를 사용하여 기본 자격 증명을 보내지 않습니다. 기본 자격 증명을 추가하면 VHD가 보안 위협에 더 취약해집니다. 대신 VHD를 제출할 때 사용자 고유의 자격 증명을 만듭니다.

잘못 매핑된 DataDisk

순서에 맞지 않는 여러 데이터 디스크를 사용하여 요청을 제출할 때 매핑 문제가 발생할 수 있습니다. 예를 들어 데이터 디스크 3개에 대한 번호 매기기 순서는 0, 1, 2합니다. 다른 모든 순서는 매핑 문제로 처리됩니다.

적절한 데이터 디스크 시퀀싱을 사용하여 요청을 다시 제출합니다.

잘못된 OS 매핑

이미지를 만들 때 잘못된 OS 레이블에 매핑되거나 할당될 수 있습니다. 예를 들어 이미지를 만드는 동안 OS 이름의 일부로 Windows 선택하면 OS 디스크는 Windows에서만 설치되어야 합니다. 동일한 요구 사항이 Linux에 적용됩니다.

VM이 일반화되지 않음

Azure Marketplace에서 가져온 모든 이미지를 다시 사용하려면 운영 체제 VHD를 일반화해야 합니다.

  • Linux경우 다음 프로세스는 Linux VM을 일반화하고 별도의 VM으로 다시 배포합니다.

    SSH 창에서 다음 명령을 입력합니다. sudo waagent -deprovision+user.

  • windows경우 사용하여 Windows 이미지를 일반화합니다.

    sysreptool 도구에 대한 자세한 내용은 시스템 준비(Sysprep) 개요참조하세요.

DataDisk 오류

데이터 디스크와 관련된 오류에 대한 해결 방법은 다음 표를 사용합니다.

오류 이유 용액
DataDisk- InvalidUrl: 이 오류는 제품이 제출될 때 잘못된 LUN(논리 단위 번호)으로 인해 발생할 수 있습니다. 데이터 디스크의 LUN 번호 시퀀스가 파트너 센터에 있는지 확인합니다.
DataDisk- NotFound: 이 오류는 데이터 디스크가 지정된 SAS URL에 없기 때문에 발생할 수 있습니다. 데이터 디스크가 지정된 SAS URL에 있는지 확인합니다.

원격 액세스 문제

Windows 이미지에 RDP(원격 데스크톱 프로토콜) 옵션을 사용하도록 설정하지 않은 경우 이 오류가 발생합니다.

제출하기 전에 Windows 이미지에 RDP 액세스를 사용하도록 설정합니다.

Bash 기록 실패

제출된 이미지의 Bash 기록 크기가 1KB(KB)를 초과하는 경우 이 오류가 표시됩니다. 크기가 1KB로 제한되어 파일이 잠재적으로 중요한 정보를 포함하지 못하도록 제한합니다.

Bash 기록을 삭제하려면 다음을 수행합니다.

  1. VM을 배포하고 Azure Portal에서 명령 실행 옵션을 선택합니다.

    왼쪽 창에 '명령 실행' 옵션이 있는 Azure Portal의 스크린샷

  2. RunShellScript 첫 번째 옵션을 선택한 다음 명령을 실행합니다.

    Azure Portal의 '명령 스크립트 실행' 페이지의 스크린샷

  3. 명령이 성공적으로 실행되면 VM을 다시 시작합니다.

  4. VM을 일반화하고, 이미지 VHD를 사용하고, VM을 중지합니다.

  5. 일반화된 이미지를 다시 제출합니다.

네트워크 가상 어플라이언스 유효성 검사

Marketplace 이미지 인증 중에 NVA(네트워크 가상 어플라이언스)인 VM 제품은 모든 VM 제품에 일반적인 테스트와 아래 표에 나열된 NVA 테스트 사례를 사용하여 유효성을 검사합니다. 이러한 NVA 특정 유효성 검사의 목표는 NVA 이미지가 SDN 스택으로 얼마나 잘 오케스트레이션되는지 확인하는 것입니다.

테스트 사례 테스트 사례를 실행하는 단계 용액
VHD 액세스 VHD에 대한 올바른 SAS URL이 제공되고, 액세스 권한을 허용하도록 설정되고, NVA 이미지가 일반화된. NVA 이미지와 제공된 URL을 확인합니다.
NVA 배포 하나의 NIC에서 NVA를 사용하여 VM을 배포합니다. 배포가 20분 후에 완료되었는지 확인합니다. 배포가 20분 이내에 완료되지 않으면 NVA 이미지를 확인합니다.
NVA 다시 부팅 하나의 NIC에서 NVA를 사용하여 VM을 배포합니다. 그런 다음, Azure Portal의 VM으로 이동하고 왼쪽 창의 지원 + 문제 해결 섹션에서 다시 배포 + 다시 적용 선택하고 VM을 다시 배포합니다. 재배포가 완료되면 VM의 상태가 실행 중인 Netcat 명령을 사용하여 NIC 포트 22에 연결할 수 있는지 확인합니다. 다시 부팅한 후 VM이 나타나지 않으면 NVA 이미지에 문제가 있을 수 있습니다.

Netcat 테스트가 실패하면 VM이 실행 중이더라도 다시 부팅한 후 NIC가 표시되지 않을 수 있습니다. 몇 분 동안 기다렸다가 다시 시도하십시오. 20분 후에도 계속 실패하면 NVA 이미지에 문제가 있을 수 있습니다.
NVA 재배포 하나의 NIC에서 NVA를 사용하여 VM을 배포합니다. 그런 다음, VM을 다시 배포합니다. VM 상태가 실행 중인 Netcat 명령을 사용하여 NIC 포트 22에 연결할 수 있는지 확인합니다. 다시 배포가 15분 이내에 완료되지 않으면 NVA 이미지에 문제가 있을 수 있습니다.

Netcat 테스트가 실패하면 VM이 실행 중이더라도 다시 부팅한 후 NIC가 표시되지 않을 수 있습니다. 몇 분 동안 기다렸다가 다시 시도하십시오. 20분 후에도 계속 실패하면 NVA 이미지에 문제가 있을 수 있습니다.
고가용성 하나의 NIC에서 NVA를 사용하여 VM을 배포합니다. NIC에 연결된 공용 IP가 없거나 공용 IP가 연결된 경우 SKU가 표준이어야 하며 IP 할당 방법이 고정적이어야 합니다. 동일한 가상 네트워크에서 아래 구성을 사용하여 Azure Internal 부하 분산 장치 설정합니다.
- 표준 SKU 사용하는 부하 분산 장치
- 개인 IP 할당 방법을 동적으로 사용하는 프런트 엔드 IP
- TCP를 사용하는 상태 프로브, 재시도 간격이 15초인 포트 22
- 모든 프로토콜이 있는 부하 분산 규칙이며 부동 IP를 False로 설정합니다.
- NVA VM을 가리키는 백 엔드 풀입니다.

설치가 준비되면 Netcat 명령을 사용하여 부하 분산 장치 전체에서 NVA VM에 연결할 수 있는지 확인합니다.
부하 분산 장치에서 NVA에 연결할 수 없는 경우 VM, 부하 분산 장치 및 HA 포트 기능의 설정을 확인합니다. 모든 것이 정확한 경우 NVA 이미지에 문제가 있을 수 있습니다.
VNET 피어링 가상 네트워크 VNET1에 하나의 NIC를 사용하여 NVA 이미지를 사용하여 가상 머신 VM1을 배포합니다. 다른 가상 네트워크 VNET2에서는 Linux 이미지(예: ubuntu)를 사용하여 가상 머신 VM2를 배포하고, 하나의 NIC와 VM 설정을 동적 IP 할당 방법 및 기본 SKU로 배포합니다. VNET1과 VNET2 간의 VNET 피어링 만들고 원격 가상 네트워크 대한 트래픽은 허용(기본값)

설치가 준비되면 VM2에서 Netcat 명령을 사용하여 NVA VM1에서 NIC의 개인 IP에 연결할 수 있는지 확인합니다.
VM2에서 NVA VM1에 연결할 수 없는 경우 VNET 피어링이 올바르게 구성되었는지 확인하고 다시 시도합니다. 그래도 작동하지 않으면 NVA 이미지에 문제가 있을 수 있습니다.
가속 네트워킹(AN) NVA 및 1 AN 사용 NIC사용하여 VM을 배포합니다. VM을 만드는 동안 NIC 또는 VM을 만든 후 NIC 속성에서 AN을 사용하도록 설정할 수 있습니다. VM이 실행 중인지 확인합니다. 배포가 실패하면 NVA 이미지가 가속화된 네트워킹을 지원하는지 확인합니다.
다중 NIC 기본 동적 IP 할당 방법 및 기본 SKU를 사용하여 3개 NIC가 있는 NVA를 사용하여 VM을 배포합니다. 모든 NIC에 대한 개인 IP 및 MAC 주소를 가져옵니다(지침은 네트워크 인터페이스 보기 참조). 그런 다음, VM을 다시 배포하고 모든 NIC에 대한 개인 IP 및 MAC 주소가 다시 배포하기 전과 동일하게 유지되는지 확인합니다. 재배포 후 모든 NIC에 대한 개인 IP 및 MAC 주소가 변경되면 NVA 이미지에 문제가 있을 수 있습니다.
네트워크 중단 하나의 NIC에서 NVA를 사용하여 VM을 배포합니다. 그런 다음 NSG(네트워크 보안 그룹)를 만들고 적용하여 NVA VM에 대한 모든 트래픽을 차단합니다. 그런 다음 VM의 상태가 실행 중인확인합니다. NSG를 적용한 후 VM이 중단되면 NVA 이미지에 문제가 있을 수 있습니다.

자세한 내용 또는 질문은 Azure 지원 사례를 엽니다.

Netcat 개요:

Netcat은 두 컴퓨터 간에 TCP 또는 UDP 연결을 설정할 수 있는 명령으로, 열려 있는 포트를 통해 쓰고 읽을 수 있습니다. NVA 유효성 검사 중에는 NVA VM과 동일한 가상 네트워크에 있는 VM에서 Netcat 명령을 실행하여 TCP 포트 22에 연결할 수 있는지 테스트합니다. 명령 구문은 nc <destination_ip_address> <destination_port>.

  • destination_ip_address VM NIC에 할당된 개인 IP 주소입니다.
  • destination_port NVA의 포트 번호입니다. NVA 테스트 사례에서 22 사용합니다.

예를 들어 nc 192.168.1.1 22

선택 테스트에 대한 VM 이미지에 대한 예외 요청

게시자는 VM 인증 중에 수행되는 몇 가지 테스트에 대한 예외를 요청할 수 있습니다. 게시자가 요청을 지원하는 증거를 제공하는 경우는 드문 경우입니다. 인증 팀은 언제든지 예외를 거부하거나 승인할 수 있는 권한을 보유합니다.

이 섹션에서는 게시자가 예외를 요청하는 일반적인 시나리오와 예외를 요청하는 방법을 설명합니다.

예외에 대한 시나리오

게시자는 일반적으로 다음과 같은 경우에 예외를 요청합니다.

  • 하나 이상의 테스트 사례에 대한 예외입니다. 테스트 사례에 대한 예외를 요청하려면 파트너 센터 지원 문의하세요.

  • 잠긴 VM을 / 루트 액세스없습니다. 일부 게시자에는 VM에 방화벽과 같은 소프트웨어가 설치되어 있으므로 VM을 잠가야 하는 시나리오가 있습니다. 이 경우 인증된 테스트 도구 다운로드하고 파트너 센터 지원보고서를 제출합니다.

  • 사용자 지정 템플릿. 일부 게시자는 VM을 배포하기 위해 ARM(사용자 지정 Azure Resource Manager) 템플릿이 필요한 VM 이미지를 게시합니다. 이 경우 인증 팀에서 유효성 검사를 위해 사용할 파트너 센터 지원 사용자 지정 템플릿을 제출합니다.

예외 시나리오에 제공할 정보

파트너 센터 지원 문의하여 시나리오 중 하나에 대한 예외를 요청하고 다음 정보를 포함합니다.

  • 게시자 ID. 파트너 중앙 포털 게시자 ID를 입력합니다.

  • 제품 ID/이름. 제품 ID 또는 이름을 입력합니다.

  • SKU/계획 ID. VM 제품 계획 ID 또는 SKU를 입력합니다.

  • 버전. 예외가 필요한 VM 제품 버전을 입력합니다.

  • 예외 유형. 테스트, 잠긴 VM 또는 사용자 지정 템플릿 중에서 선택합니다.

  • 요청이유입니다. 예외 요청에 대한 이유와 테스트 예외에 대한 정보를 포함합니다.

  • 타임라인. 예외의 종료 날짜를 입력합니다.

  • 첨부 파일. 첨부된 중요한 증거 문서:

    • 잠긴 VM의 경우 테스트 보고서를 첨부합니다.
    • 사용자 지정 템플릿의 경우 사용자 지정 ARM 템플릿을 첨부 파일로 제공합니다.

    이러한 첨부 파일을 포함하지 않으면 요청이 거부됩니다.

VM 제품에서 취약성 또는 악용 해결

이 섹션에서는 VM 이미지 중 하나로 취약성 또는 악용이 발견될 때 새 VM 이미지를 제공하는 방법을 설명합니다. Azure Marketplace에 게시된 Azure VM 제품에만 적용됩니다.

메모

계획에서 마지막 VM 이미지를 제거하거나 제품의 마지막 플랜을 중지 판매할 수 없습니다.

다음 작업 중 하나를 수행합니다.

  • 취약한 VM 이미지를 대체할 새 VM 이미지가 있는 경우 고정 VM 이미지 제공참조하세요.
  • 계획에서 유일한 VM 이미지를 대체할 새 VM 이미지가 없거나 계획으로 완료된 경우 계획 배포를 중지할 .
  • 제품의 유일한 VM 이미지를 대체하지 않으려는 경우 제품배포를 중지하는 것이 좋습니다.

고정 VM 이미지 제공

취약성 또는 악용이 있는 VM 이미지를 대체하는 고정 VM 이미지를 제공하려면 다음을 수행합니다.

  1. 보안 취약성 또는 악용을 해결하기 위해 새 VM 이미지를 제공합니다.
  2. 보안 취약성 또는 악용으로 VM 이미지를 제거합니다.
  3. 제품을 다시 게시합니다.

보안 취약성 또는 악용 문제를 해결하기 위한 새 VM 이미지 제공

이러한 단계를 완료하려면 추가하려는 VM 이미지에 대한 기술 자산을 준비합니다. 자세한 내용은 승인된 기본 사용하여 가상 머신 만들기 또는 고유한 이미지 사용하여 가상 머신 만들기 및 VM 이미지대한 SAS URI 생성 참조하세요.

  1. 파트너 센터로그인합니다.

  2. 홈페이지에서 Marketplace 제품 타일을 선택합니다.

  3. 제품 별칭 열에서 제품을 선택합니다.

  4. 계획 개요 탭을 선택한 다음 적절한 계획을 선택합니다.

  5. 기술 구성 탭의 VM 이미지아래에서 + VM 이미지추가를 선택합니다.

    메모

    한 번에 하나의 계획에 하나의 VM 이미지만 추가할 수 있습니다. 여러 VM 이미지를 추가하려면 다음 VM 이미지를 추가하기 전에 첫 번째 이미지를 게시합니다.

  6. 표시되는 상자에서 새 디스크 버전과 가상 머신 이미지를 제공합니다.

  7. 초안저장을 선택합니다.

다음으로, 보안 취약성이 있는 VM 이미지를 제거합니다.

보안 취약성 또는 악용으로 VM 이미지 제거

  1. 파트너 센터로그인합니다.
  2. 홈페이지에서 Marketplace 제품 타일을 선택합니다.
  3. 제품 별칭 열에서 제품을 선택합니다.
  4. 계획 개요 탭을 선택한 다음 적절한 계획을 선택합니다.
  5. 기술 구성 탭의 VM 이미지아래에서 제거하려는 VM 이미지 옆에 있는 VM 이미지제거를 선택합니다.
  6. 대화 상자에서 계속선택합니다.
  7. 초안저장을 선택합니다.

다음으로, 제품을 다시 게시합니다.

제품 다시 게시

  1. 검토를 선택하고게시합니다.
  2. 인증 팀에 정보를 제공해야 하는 경우 인증 메모 상자에 추가합니다.
  3. 게시선택합니다.

게시 프로세스를 완료하려면 제품 검토 및 게시참조하세요.

VM 제품에서 TLS 관련 취약성 해결

이 섹션에서는 VM 이미지 중 하나를 사용하여 TLS 관련 취약성이 검색될 때 새 VM 이미지를 제공하는 방법을 설명합니다. Azure Marketplace에 게시된 Azure VM 제품에만 적용됩니다.

수정 단계

이러한 취약성을 해결하려면 다음 단계를 수행하세요.

TLS 1.0 및 1.1 프로토콜 사용을 사용하지 않도록 설정하고 VM 이미지가 TLS 버전 1.2 이상을 지원하는지 확인합니다. 이 작업은 VM 이미지에서 적절한 레지스트리 키 또는 구성 설정을 설정하여 수행할 수 있습니다.

Linux의 경우 다음 명령을 사용하여 수동으로 테스트하고 이러한 버전이 사용하지 않도록 설정되어 있는지 확인합니다.

  • TLS 1.0의 :

    openssl s_client -connect ip:port -tls1
    
  • TLS 1.1의 :

    openssl s_client -connect ip:port -tls1_1
    

Windows의 경우 레지스트리 키를 업데이트하는 공식 TLS 레지스트리 설정 설명서를 참조하세요. 다음 PowerShell 명령을 사용하여 TLS 설정을 구성합니다.

이름
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client "사용" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server "사용" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client "사용" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server "사용" 0
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client "사용" 1
HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server "사용" 1

상위 버전 사용(선택 사항)

더 높은 버전(예: TLS 1.3)을 사용하도록 설정하려면 해당 버전에 대한 해당 경로 및 값을 사용하여 위의 단계를 반복합니다.

액세스가 제한되거나 사용자 지정 템플릿이 필요한 VM 이미지

잠긴(또는) SSH 사용 안 함 제품

SSH 사용 안 함(Linux용) 또는 RDP를 사용하지 않도록 설정(Windows용)으로 게시된 이미지는 잠긴 VM으로 처리됩니다. 게시자가 소수의 사용자에 대한 제한된 액세스만 허용하기 때문에 특별한 비즈니스 시나리오가 있습니다.

유효성 검사 중에 잠긴 VM은 특정 인증 명령의 실행을 허용하지 않을 수 있습니다.

사용자 지정 템플릿

일반적으로 단일 VM 제품 아래에 게시된 모든 이미지는 배포를 위해 표준 ARM 템플릿을 따릅니다. 그러나 VM을 배포하는 동안 게시자가 사용자 지정을 요구할 수 있는 시나리오가 있습니다(예: 구성할 여러 NIC).

아래 시나리오(비동기)에 따라 게시자는 VM을 배포하기 위해 사용자 지정 템플릿을 사용합니다.

  • VM에는 추가 네트워크 서브넷이 필요합니다.
  • ARM 템플릿에 삽입할 추가 메타데이터입니다.
  • ARM 템플릿 실행의 필수 구성 요소인 명령입니다.

VM 확장

Azure VM(가상 머신) 확장은 Azure VM에서 배포 후 구성 및 자동화 작업을 제공하는 작은 애플리케이션입니다. 예를 들어 가상 머신에 소프트웨어 설치, 바이러스 백신 보호가 필요하거나 내부 스크립트를 실행해야 하는 경우 VM 확장을 사용할 수 있습니다.

Linux VM 확장 유효성 검사를 수행하려면 다음이 이미지의 일부여야 합니다.

자세한 내용은 VM 확장방문하세요.

이미지 무결성 확인

이미지를 만들고 이미지에서 디스크를 만들어 이미지의 무결성을 확인하는 경우 처음 1MB는 최적화된 성능을 위해 예약되고 마지막 512바이트는 VHD 바닥글용으로 예약됩니다. 따라서 이미지의 무결성을 확인하는 동안 무시합니다.