다음을 통해 공유


Azure VM Image Builder에 대한 Isolated Image Builds

Isolated Image Builds는 AIB(Azure VM Image Builder)의 기능입니다. 이 기능은 공유 플랫폼 인프라에서 컴퓨팅 및 네트워크 격리를 제공하는 구독의 전용 ACI(Azure Container Instances) 리소스로 VM 이미지 사용자 지정/유효성 검사의 핵심 프로세스를 전환합니다.

Isolated Image Builds의 장점

Isolated Image Builds를 사용하면 빌드 VM의 네트워크 액세스를 구독으로 제한하여 심층 방어를 수행할 수 있습니다. Isolated Image Builds는 AIB가 수행한 처리를 검사하여 VM 이미지를 사용자 지정/유효성 검사를 수행할 수 있도록 하므로 투명성도 높일 수 있습니다. 또한 Isolated Image Builds에서는 라이브 빌드 로그를 쉽게 볼 수 있습니다. 특별한 사항

  1. 컴퓨팅 격리: Isolated Image Builds는 AIB의 공유 플랫폼 리소스 대신 구독의 ACI 리소스에서 이미지 빌드 처리의 주요 부분을 수행합니다. 컨테이너가 커널을 공유하지 않고 격리된 상태에서 실행되도록 ACI에서 각 컨테이너 그룹에 대해 하이퍼바이저 격리를 제공합니다.

  2. 네트워크 격리: Isolated Image Builds는 빌드 VM과 AIB 서비스의 백 엔드 구성 요소 간의 모든 직접 네트워크 WinRM/ssh 통신을 제거합니다.

    • 빌드 VM에 대한 자체 서브넷 없이 AIB 템플릿을 프로비전하는 경우 이미지 빌드 시 준비 리소스 그룹에 공용 IP 주소 리소스가 더 이상 프로비전되지 않습니다.
    • 빌드 VM에 대한 기존 서브넷을 사용하여 AIB 템플릿을 프로비전하는 경우 빌드 VM과 AIB의 백 엔드 플랫폼 리소스 간에 Private Link 기반 통신 채널이 더 이상 설정되지 않습니다. 대신, ACI와 빌드 VM 리소스 간에 통신 채널이 설정되며 둘 다 구독의 준비 리소스 그룹에 상주합니다.
    • API 버전 2024-02-01부터 빌드 VM에 대한 서브넷 외에 ACI를 배포하기 위한 두 번째 서브넷을 지정할 수 있습니다. 지정된 경우 AIB는 이 서브넷에 ACI를 배포하며 AIB가 ACI와 빌드 VM 간에 Private Link 기반 통신 채널을 설정할 필요가 없습니다. 두 번째 서브넷에 대한 자세한 내용은 여기 섹션을 참조하세요.
  3. 투명성: AIB는 HashiCorp Packer를 기반으로 빌드됩니다. Isolated Image Builds는 구독의 ACI에서 Packer를 실행하므로 ACI 리소스 및 해당 컨테이너를 검사할 수 있습니다. 마찬가지로 구독에 전체 네트워크 통신 파이프라인을 사용하면 모든 네트워크 리소스, 해당 설정 및 허용량을 검사할 수 있습니다.

  4. 라이브 로그 가시성 향상: AIB는 구독의 준비 리소스 그룹의 스토리지 계정에 사용자 지정 로그를 씁니다. Isolated Image Builds는 Azure Portal에서 직접 동일한 로그를 따르는 또 다른 방법을 제공하며, ACI 리소스에서 AIB의 컨테이너로 이동하여 그렇게 할 수 있습니다.

참고 항목

이미지 빌드 중에 라이브 로그에 액세스하거나 빌드가 완료된 후 사용자 지정 및 유효성 검사 로그 파일에 액세스하려면 문제 해결 가이드를 참조하세요.

네트워크 토폴로지

Isolated Image Builds는 구독의 준비 리소스 그룹에 모두 ACI 및 빌드 VM을 배포합니다. AIB가 이미지를 사용자 지정/유효성 검사하려면 ACI에서 실행되는 컨테이너 인스턴스에 빌드 VM에 대한 네트워크 경로가 있어야 합니다. 사용자 지정 네트워킹 요구 사항 및 정책에 따라 이 목적을 위해 다른 네트워크 토폴로지 사용 하도록 AIB를 구성할 수 있습니다.

사용자 고유의 빌드 VM 서브넷을 가져오지 않음

  • 이미지 템플릿에서 vnetConfig 필드를 지정하지 않거나 필드를 지정하되 subnetIdcontainerInstanceSubnetId 하위 필드 없이 이 토폴로지를 선택할 수 있습니다.
  • 이 경우 AIB는 두 개의 서브넷 및 NSG(네트워크 보안 그룹)와 함께 스테이징 리소스 그룹에 Virtual Network를 배포합니다. 서브넷 중 하나는 ACI를 배포하는 데 사용되고 다른 서브넷은 빌드 VM을 배포하는 데 사용됩니다. NSG는 두 서브넷 간의 통신을 허용하도록 설정됩니다.
  • 이 경우 AIB는 공용 IP 리소스 또는 프라이빗 링크 기반 통신 파이프라인을 배포하지 않습니다.

자체 빌드 VM 서브넷을 가져오지만 사용자 고유의 ACI 서브넷을 가져오지 않음

  • subnetId 하위 필드와 함께 vnetConfig 필드를 지정하여 이 토폴로지를 선택할 수 있지만 이미지 템플릿의 containerInstanceSubnetId 하위 필드는 선택할 수 없습니다.
  • 이 경우 AIB는 두 서브넷 및 NSG(네트워크 보안 그룹)와 함께 준비 리소스 그룹에 임시 Virtual Network를 배포합니다. 서브넷 중 하나는 ACI를 배포하는 데 사용되고 다른 서브넷은 프라이빗 엔드포인트 리소스를 배포하는 데 사용됩니다. 빌드 VM은 지정된 서브넷에 배포됩니다. 프라이빗 엔드포인트, Private Link 서비스, Azure Load Balancer 및 프록시 가상 머신으로 구성된 프라이빗 링크 기반 통신 파이프라인도 준비 리소스 그룹에 배포되어 ACI 서브넷과 빌드 VM 서브넷 간의 통신을 용이하게 합니다.

사용자 고유의 빌드 VM 서브넷 가져오기 및 사용자 고유의 ACI 서브넷 가져오기

  • 이미지 템플릿의 subnetIdcontainerInstanceSubnetId 하위 필드와 함께 vnetConfig 필드를 지정하여 이 토폴로지를 선택할 수 있습니다. 이 옵션(및 하위 필드 containerInstanceSubnetId)은 API 버전 2024-02-01부터 사용할 수 있습니다. 이 토폴로지 사용을 위해 기존 템플릿을 업데이트할 수도 있습니다.
  • 이 경우 AIB는 지정된 빌드 VM 서브넷에 빌드 VM을 배포하고 지정된 ACI 서브넷에 ACI를 배포합니다.
  • AIB는 공용 IP, 가상 네트워크, 서브넷, 네트워크 보안 그룹, 프라이빗 엔드포인트, Private Link 서비스, Azure Load Balancer 및 프록시 가상 머신을 비롯한 스테이징 리소스 그룹의 네트워킹 리소스를 배포하지 않습니다. 이러한 리소스의 배포를 허용하지 않는 할당량 제한 또는 정책이 있는 경우 이 토폴로지를 사용할 수 있습니다.
  • ACI 서브넷은 Isolated Image Builds에서 사용할 수 있도록 특정 조건을 충족해야 합니다.

템플릿 참조에서 이러한 필드에 대한 세부 정보를 볼 수 있습니다. 네트워킹 옵션은 여기에서 자세히 설명합니다.

이전 버전과의 호환성

Isolated Image Builds는 플랫폼 수준 변경이며 AIB의 인터페이스에 영향을 주지 않습니다. 따라서 기존 이미지 템플릿 및 트리거 리소스는 계속 작동하며 이러한 유형의 새 리소스를 배포하는 방법은 변경되지 않습니다. 네트워크 토폴로지를 사용하여 사용자 고유의 ACI 서브넷을 가져오려면 새 템플릿을 만들거나 기존 템플릿을 업데이트해야 합니다.

이미지 빌드는 자동으로 Isolated Image Builds로 마이그레이션되며 옵트인 작업을 수행할 필요가 없습니다. 또한 사용자 지정 로그는 스토리지 계정에서 계속 사용할 수 있습니다.

이미지 템플릿에 지정된 네트워크 토폴로지에 따라 준비 리소스 그룹(예: ACI, Virtual Network, 네트워크 보안 그룹 및 프라이빗 엔드포인트)에 몇 가지 새 리소스가 일시적으로 표시되는 것을 관찰할 수 있지만 다른 리소스는 더 이상 표시되지 않습니다(예: 공용 IP 주소). 이전과 마찬가지로 이러한 임시 리소스는 빌드 중에만 존재하며 그 후에는 AIB에서 삭제합니다.

Important

Microsoft.ContainerInstance provider에 대해 구독이 등록되어 있는지 확인합니다.

  • Azure CLI: az provider register -n Microsoft.ContainerInstance
  • PowerShell: Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

구독을 성공적으로 등록한 후 구독에 ACI 리소스 배포를 거부하는 Azure 정책이 없는지 확인합니다. ACI를 포함하지 않는 제한된 리소스 유형 집합만 허용하는 정책으로 인해 Isolated Image Builds가 실패합니다.

구독에 ACI 리소스 배포에 필요한 충분한 리소스 할당량도 있는지 확인합니다.

Important

이미지 템플릿에 지정된 네트워크 토폴로지에 따라 AIB는 구독의 준비 리소스 그룹에 임시 네트워킹 관련 리소스를 배포해야 할 수 있습니다. 리소스 그룹에서 이러한 리소스(서브넷이 있는 Virtual Network, 네트워크 보안 그룹, 프라이빗 엔드포인트)의 배포를 거부하는 Azure 정책이 없는지 확인합니다.

새로 만든 Virtual Network에 DDoS 보호 계획을 적용하는 Azure 정책이 있는 경우 리소스 그룹에 대한 정책을 완화하거나 템플릿 관리 ID에 계획에 가입할 수 있는 권한이 있는지 확인합니다. 또는 AIB에서 새 Virtual Network를 배포할 필요가 없는 네트워크 토폴로지도 사용할 수 있습니다.

Important

AIB를 사용하는 동안 모든 모범 사례를 따라야 합니다.

참고 항목

AIB가 이 변경 내용을 모든 위치 및 고객에게 배포하고 있습니다. 이러한 세부 정보 중 일부(특히 새 네트워킹 관련 리소스 배포 관련)는 프로세스가 서비스 원격 분석 및 피드백에 따라 미세 조정되므로 변경될 수 있습니다. 오류는 문제 해결 가이드를 참조하세요.

다음 단계