작업 영역 관리형 가상 네트워크 격리

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Azure Machine Learning은 관리형 VNet(관리형 가상 네트워크) 격리를 지원합니다. 관리형 VNet 격리는 기본 제공되는 작업 영역 수준 Azure Machine Learning 관리형 VNet을 통해 네트워크 격리 구성을 간소화하고 자동화합니다. 관리형 VNet은 컴퓨팅 인스턴스, 컴퓨팅 클러스터, 서버리스 컴퓨팅 및 관리형 온라인 엔드포인트와 같은 관리 Azure Machine Learning 리소스를 보호합니다.

관리 네트워크로 작업 영역을 보호하면 작업 영역 및 관리 컴퓨팅에서 아웃바운드 액세스를 위한 네트워크 격리가 제공됩니다. 사용자가 만들고 관리하는 Azure Virtual Network는 작업 영역에 대한 네트워크 격리 인바운드 액세스를 제공하는 데 사용됩니다. 예를 들어, 작업 영역에 대한 프라이빗 엔드포인트는 Azure Virtual Network에 만들어집니다. 가상 네트워크에 연결하는 모든 클라이언트는 프라이빗 엔드포인트를 통해 작업 영역에 액세스할 수 있습니다. 관리 컴퓨팅에서 작업을 실행할 때 관리 네트워크는 컴퓨팅이 액세스할 수 있는 항목을 제한합니다.

관리형 가상 네트워크 아키텍처

관리되는 가상 네트워크 격리를 사용하도록 설정하면 작업 영역에 대해 관리되는 VNet이 만들어집니다. 작업 영역에 대해 만드는 관리 컴퓨팅 리소스는 자동으로 이 관리되는 VNet을 사용합니다. 관리되는 VNet은 Azure Storage, Azure Key Vault 및 Azure Container Registry와 같이 작업 영역에서 사용되는 Azure 리소스에 대한 프라이빗 엔드포인트를 사용할 수 있습니다.

관리형 VNet의 아웃바운드 트래픽에는 두 가지 구성 모드가 있습니다.

사용하는 아웃바운드 모드에 관계없이 Azure 리소스에 대한 트래픽은 프라이빗 엔드포인트를 사용하도록 구성할 수 있습니다. 예를 들어, 인터넷에 대한 모든 아웃바운드 트래픽을 허용하지만 리소스에 대한 아웃바운드 규칙을 추가하여 zure 리소스와의 통신을 제한할 수 있습니다.

아웃바운드 모드 설명 시나리오
인터넷 아웃바운드 허용 관리되는 VNet의 모든 인터넷 아웃바운드 트래픽을 허용합니다. 인터넷의 기계 학습 리소스(예: Python 패키지 또는 미리 학습된 모델)에 무제한으로 액세스하려고 합니다.1
승인된 아웃바운드만 허용 서비스 태그를 지정하면 아웃바운드 트래픽이 허용됩니다. * 데이터 반출 위험을 최소화하려고 하지만 프라이빗 환경에서 필요한 모든 기계 학습 아티팩트를 준비해야 합니다.
* 승인된 서비스, 서비스 태그 또는 FQDN 목록에 대한 아웃바운드 액세스를 구성하려고 합니다.
사용 안 함 인바운드 및 아웃바운드 트래픽이 제한되지 않거나, 사용자 고유의 Azure Virtual Network를 사용하여 리소스를 보호합니다. 작업 영역에서 퍼블릭 인바운드 및 아웃바운드를 원하거나 사용자 고유의 Azure VNet을 사용하여 네트워크 격리를 처리하려고 합니다.

1: 인터넷 아웃바운드 허용을 사용하는 것과 동일한 결과를 얻기 위해 승인된 아웃바운드만 허용 모드로 아웃바운드 규칙을 사용할 수 있습니다. 차이점은 다음과 같습니다.

  • 허용해야 하는 각 아웃바운드 연결에 대한 규칙을 추가해야 합니다.
  • 이 규칙 유형은 Azure Firewall을 사용하므로 FQDN 아웃바운드 규칙을 추가하면 비용이 증가합니다. 자세한 내용은 가격 책정을 참조하세요.
  • 승인된 아웃바운드만 허용을 위한 기본 규칙은 데이터 반출 위험을 최소화하도록 설계되었습니다. 추가한 아웃바운드 규칙으로 인해 위험이 커질 수 있습니다.

관리형 VNet은 필수 기본 규칙으로 사전 구성되어 있습니다. 또한 프라이빗으로 구성되었거나 작업 영역 격리 모드가 승인된 아웃바운드만 허용하도록 설정된 경우 작업 영역, 작업 영역의 기본 스토리지, 컨테이너 레지스트리 및 키 자격 증명 모음에 대한 프라이빗 엔드포인트 연결을 위해 구성됩니다. 격리 모드를 선택한 후에는 추가해야 할 수 있는 다른 아웃바운드 요구 사항만 고려하면 됩니다.

다음 다이어그램은 인터넷 아웃바운드를 허용하도록 구성된 관리형 VNet을 보여 줍니다.

인터넷 아웃바운드용으로 구성된 관리형 VNet 격리 다이어그램.

다음 다이어그램은 승인된 아웃바운드만 허용하도록 구성된 관리형 VNet을 보여 줍니다.

참고 항목

이 구성에서는 작업 영역에서 사용되는 스토리지, 키 자격 증명 모음 및 컨테이너 레지스트리가 프라이빗으로 플래그 지정됩니다. 프라이빗용으로 플래그가 지정되어 있으므로 프라이빗 엔드포인트를 사용하여 통신합니다.

승인된 아웃바운드만 허용하도록 구성된 관리형 VNet 격리 다이어그램.

참고 항목

인터넷 아웃바운드를 허용하도록 관리형 VNet 작업 영역을 구성한 후에는 작업 영역을 사용 안 함으로 다시 구성할 수 없습니다. 마찬가지로 관리형 VNet 작업 영역이 승인된 아웃바운드만 허용하도록 구성되면 인터넷 아웃바운드를 허용하도록 작업 영역을 다시 구성할 수 없습니다. 작업 영역에서 관리형 VNet에 대한 격리 모드를 선택할 때 이점에 유의하세요.

Azure Machine Learning 스튜디오

통합 Notebook을 사용하거나 스튜디오의 기본 스토리지 계정에서 데이터 세트를 만들려면 클라이언트가 기본 스토리지 계정에 액세스해야 합니다. 클라이언트가 사용하는 Azure Virtual Network의 기본 스토리지 계정에 대한 프라이빗 엔드포인트 또는 서비스 엔드포인트를 만듭니다.

Azure Machine Learning 스튜디오의 일부는 클라이언트의 웹 브라우저에서 로컬로 실행되며 작업 영역의 기본 스토리지와 직접 통신합니다. 클라이언트의 가상 네트워크에서 (기본 스토리지 계정에 대해) 프라이빗 엔드포인트 또는 서비스 엔드포인트를 만들면 클라이언트가 스토리지 계정과 통신할 수 있습니다.

프라이빗 엔드포인트 또는 서비스 엔드포인트 만들기에 대한 자세한 내용은 스토리지 계정에 비공개로 연결서비스 엔드포인트 문서를 참조하세요.

필수 조건

이 문서의 단계를 수행하기 전에 다음과 같은 필수 구성 요소가 있는지 확인합니다.

  • Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다. Azure Machine Learning 평가판 또는 유료 버전을 사용해 보세요.

  • Microsoft.Network 리소스 공급자는 Azure 구독에 등록되어 있어야 합니다. 이 리소스 공급자는 관리형 가상 네트워크에 대한 프라이빗 엔드포인트를 만들 때 작업 영역에서 사용됩니다.

    리소스 공급자 등록에 대한 자세한 내용은 리소스 공급자 등록 오류 해결을 참조하세요.

  • 프라이빗 엔드포인트를 만들려면 관리형 네트워크를 배포할 때 사용하는 Azure ID에 다음 Azure RBAC(Azure 역할 기반 액세스 제어) 작업이 필요합니다.

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Azure CLI 및 Azure CLI에 대한 ml 확장. 자세한 내용은 CLI(v2) 설치, 설정 및 사용을 참조하세요.

    Azure Machine Learning 관리형 VNet은 2023년 5월 23일에 도입되었습니다. ml 확장의 이전 버전이 있는 경우 이 문서 작업의 예를 위해 업데이트해야 할 수도 있습니다. 확장을 업데이트하려면 다음 Azure CLI 명령을 사용합니다.

    az extension update -n ml
    
  • 이 문서의 CLI 예에서는 Bash(또는 호환) 셸을 사용한다고 가정합니다. 예를 들어 Linux 시스템 또는 Linux용 Windows 하위 시스템에서 이러한 예제를 사용합니다.

  • 이 문서의 Azure CLI 예에서는 ws를 사용하여 작업 영역의 이름을 나타내고, rg를 사용하여 리소스 그룹의 이름을 나타냅니다. Azure 구독과 함께 명령을 사용할 때 필요에 따라 이러한 값을 변경합니다.

  • Azure CLI 및 관리형 VNet에서는 공용 IP를 사용하는 SSH가 작동하지만 개인 IP를 사용하는 SSH는 작동하지 않습니다.

참고 항목

UAI 작업 영역을 사용하는 경우 ID에 네트워크 기여자 역할을 추가해야 합니다. 자세한 내용은 사용자 할당 관리 ID를 참조하세요.

인터넷 아웃바운드를 허용하도록 관리되는 가상 네트워크 구성

관리형 VNet 만들기는 컴퓨팅 리소스가 만들어지거나 프로비전이 수동으로 시작될 때까지 연기됩니다. 자동 생성을 허용하는 경우, 네트워크도 프로비전하면서 첫 번째 컴퓨팅 리소스를 만드는 데 약 30분이 걸릴 수 있습니다. 자세한 내용은 네트워크 수동 프로비전을 참조하세요.

Important

서버리스 Spark 작업을 제출하려는 경우 수동으로 프로비전을 시작해야 합니다. 자세한 내용은 서버리스 Spark 작업 구성 섹션을 참조하세요.

인터넷 아웃바운드 통신을 허용하는 관리되는 VNet을 구성하려면 --managed-network allow_internet_outbound 매개 변수 또는 다음 항목이 포함된 YAML 구성 파일을 사용할 수 있습니다.

managed_network:
  isolation_mode: allow_internet_outbound

작업 영역이 의존하는 다른 Azure 서비스에 대한 아웃바운드 규칙을 정의할 수도 있습니다. 이러한 규칙은 Azure 리소스가 관리되는 VNet과 안전하게 통신할 수 있도록 하는 프라이빗 엔드포인트를 정의합니다. 다음 규칙은 Azure Blob 리소스에 프라이빗 엔드포인트를 추가하는 방법을 보여 줍니다.

managed_network:
  isolation_mode: allow_internet_outbound
  outbound_rules:
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

az ml workspace create 또는 az ml workspace update 명령을 사용하여 관리되는 VNet을 구성할 수 있습니다.

  • 새 작업 영역 만들기

    다음 예에서는 새 작업 영역을 만듭니다. --managed-network allow_internet_outbound 매개 변수는 작업 영역에 대해 관리되는 VNet을 구성합니다.

    az ml workspace create --name ws --resource-group rg --managed-network allow_internet_outbound
    

    대신 YAML 파일을 사용하여 작업 영역을 만들려면 --file 매개 변수를 사용하고 구성 설정이 포함된 YAML 파일을 지정합니다.

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    

    다음 YAML 예에서는 관리되는 VNet이 있는 작업 영역을 정의합니다.

    name: myworkspace
    location: EastUS
    managed_network:
      isolation_mode: allow_internet_outbound
    
  • 기존 작업 영역 업데이트:

    Warning

    관리되는 가상 네트워크를 사용하도록 기존 작업 영역을 업데이트하기 전에 작업 영역에 대한 모든 컴퓨팅 리소스를 삭제해야 합니다. 여기에는 컴퓨팅 인스턴스, 컴퓨팅 클러스터 및 관리되는 온라인 엔드포인트가 포함됩니다.

    다음 예에서는 기존 작업 영역을 업데이트합니다. --managed-network allow_internet_outbound 매개 변수는 작업 영역에 대해 관리되는 VNet을 구성합니다.

    az ml workspace update --name ws --resource-group rg --managed-network allow_internet_outbound
    

    YAML 파일을 사용하여 기존 작업 영역을 업데이트하려면 --file 매개 변수를 사용하고 구성 설정이 포함된 YAML 파일을 지정합니다.

    az ml workspace update --file workspace.yaml --name ws --resource-group MyGroup
    

    다음 YAML 예에서는 작업 영역에 대한 관리되는 VNet을 정의합니다. 또한 작업 영역에서 사용하는 리소스에 프라이빗 엔드포인트 연결을 추가하는 방법도 보여 줍니다. 이 예에서는 Blob 저장소의 프라이빗 엔드포인트입니다.

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

승인된 아웃바운드만 허용하도록 관리되는 가상 네트워크 구성

관리형 VNet은 컴퓨팅 리소스를 만들 때 자동으로 프로비전됩니다. 자동 생성을 허용하는 경우, 네트워크도 프로비전하면서 첫 번째 컴퓨팅 리소스를 만드는 데 약 30분이 걸릴 수 있습니다. FQDN 아웃바운드 규칙을 구성한 경우 첫 번째 FQDN 규칙은 프로비전 시간에 약 10분을 추가합니다. 자세한 내용은 네트워크 수동 프로비전을 참조하세요.

Important

서버리스 Spark 작업을 제출하려는 경우 수동으로 프로비전을 시작해야 합니다. 자세한 내용은 서버리스 Spark 작업 구성 섹션을 참조하세요.

승인된 아웃바운드 통신만 허용하는 관리되는 VNet을 구성하려면 --managed-network allow_only_approved_outbound 매개 변수 또는 다음 항목이 포함된 YAML 구성 파일을 사용할 수 있습니다.

managed_network:
  isolation_mode: allow_only_approved_outbound

승인된 아웃바운드 통신을 정의하기 위해 아웃바운드 규칙을 정의할 수도 있습니다. service_tag, fqdnprivate_endpoint 형식에 대한 아웃바운드 규칙을 만들 수 있습니다. 다음 규칙은 Azure Blob 리소스에 프라이빗 엔드포인트를 추가하고, Azure Data Factory에 서비스 태그를 추가하고, pypi.org에 FQDN을 추가하는 방법을 보여 줍니다.

Important

  • 서비스 태그 또는 FQDN에 대한 아웃바운드 추가는 관리되는 VNet이 allow_only_approved_outbound로 구성된 경우에만 유효합니다.
  • 아웃바운드 규칙을 추가하는 경우 Microsoft는 데이터 반출을 보장할 수 없습니다.

Warning

FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - name: added-servicetagrule
    destination:
      port_ranges: 80, 8080
      protocol: TCP
      service_tag: DataFactory
    type: service_tag
  - name: add-fqdnrule
    destination: 'pypi.org'
    type: fqdn
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

az ml workspace create 또는 az ml workspace update 명령을 사용하여 관리되는 VNet을 구성할 수 있습니다.

  • 새 작업 영역 만들기

    다음 예에서는 --managed-network allow_only_approved_outbound 매개 변수를 사용하여 관리되는 VNet을 구성합니다.

    az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    다음 YAML 파일에서는 관리형 VNet이 있는 작업 영역을 정의합니다.

    name: myworkspace
    location: EastUS
    managed_network:
      isolation_mode: allow_only_approved_outbound
    

    YAML 파일을 사용하여 작업 영역을 만들려면 --file 매개 변수를 사용합니다.

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    
  • 기존 작업 영역 업데이트

    Warning

    관리되는 가상 네트워크를 사용하도록 기존 작업 영역을 업데이트하기 전에 작업 영역에 대한 모든 컴퓨팅 리소스를 삭제해야 합니다. 여기에는 컴퓨팅 인스턴스, 컴퓨팅 클러스터 및 관리되는 온라인 엔드포인트가 포함됩니다.

    다음 예에서는 --managed-network allow_only_approved_outbound 매개 변수를 사용하여 기존 작업 영역에 대해 관리되는 VNet을 구성합니다.

    az ml workspace update --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    다음 YAML 파일은 작업 영역에 대한 관리되는 VNet을 정의합니다. 또한 관리되는 VNet에 승인된 아웃바운드를 추가하는 방법도 보여 줍니다. 이 예에서는 두 서비스 태그 모두에 대해 아웃바운드 규칙이 추가됩니다.

    Warning

    FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

    name: myworkspace_dep
    managed_network:
      isolation_mode: allow_only_approved_outbound
      outbound_rules:
      - name: added-servicetagrule
        destination:
          port_ranges: 80, 8080
          protocol: TCP
          service_tag: DataFactory
        type: service_tag
      - name: add-fqdnrule
        destination: 'pypi.org'
        type: fqdn
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

서버리스 Spark 작업을 위한 구성

이 섹션의 단계는 서버리스 Spark 작업을 제출하려는 경우에만 필요합니다. 서버리스 Spark 작업을 제출하지 않을 경우 이 섹션을 건너뛸 수 있습니다.

관리형 VNet에 대해 서버리스 Spark 작업을 사용하도록 설정하려면 다음 작업을 수행해야 합니다.

  • 작업 영역에 대해 관리되는 VNet을 구성하고 Azure Storage 계정에 대한 아웃바운드 프라이빗 엔드포인트를 추가합니다.
  • 관리형 VNet을 구성한 후 이를 프로비전하고 플래그를 지정하여 Spark 작업을 허용합니다.
  1. 아웃바운드 프라이빗 엔드포인트를 구성합니다.

    YAML 파일을 사용하여 관리되는 VNet 구성을 정의하고 Azure Storage 계정에 대한 프라이빗 엔드포인트를 추가합니다. spark_enabled: true도 설정합니다.

    이 예제는 인터넷 트래픽을 허용하도록 isolation_mode: allow_internet_outbound를 사용하여 구성된 관리형 VNet에 대한 것입니다. 승인된 아웃바운드 트래픽만 허용하려면 isolation_mode: allow_only_approved_outbound를 사용합니다.

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

    --file 매개 변수와 YAML 파일 이름을 지정하여 az ml workspace update 명령과 함께 YAML 구성 파일을 사용할 수 있습니다. 예를 들어, 다음 명령은 workspace_pe.yml이라는 YAML 파일을 사용하여 기존 작업 영역을 업데이트합니다.

    az ml workspace update --file workspace_pe.yml --resource_group rg --name ws
    

    참고 항목

    승인된 아웃바운드만 허용을 사용하도록 설정하면(isolation_mode: allow_only_approved_outbound) Spark 세션 구성에 정의된 conda 패키지 종속성이 설치되지 않습니다. 이 문제를 해결하려면 외부 종속성이 없는 자체 포함된 Python 패키지 휠을 Azure Storage 계정에 업로드하고 이 스토리지 계정에 대한 프라이빗 엔드포인트를 만듭니다. Spark 작업에서 Python 패키지 휠의 경로를 py_files 매개 변수로 사용합니다. FQDN 규칙 전파는 Spark에서 지원되지 않으므로 FQDN 아웃바운드 규칙을 설정해도 이 문제를 무시할 수 없습니다.

  2. 관리되는 VNet을 프로비전합니다.

    참고 항목

    작업 영역이 이미 공용 엔드포인트(예: Azure Virtual Network)에 대해 구성되어 있고 공용 네트워크 액세스가 사용하도록 설정된 경우 관리형 VNet을 프로비전하기 전에 이를 사용하지 않도록 설정해야 합니다. 관리형 VNet을 프로비전할 때 공용 네트워크 액세스를 사용하지 않도록 설정하지 않으면 관리 엔드포인트에 대한 프라이빗 엔드포인트가 성공적으로 만들어지지 않을 수 있습니다.

    다음 예에서는 --include-spark 매개 변수를 사용하여 서버리스 Spark 작업을 위한 관리되는 VNet을 프로비전하는 방법을 보여 줍니다.

    az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
    

관리형 VNet 수동 프로비전

관리형 VNet은 컴퓨팅 리소스를 만들 때 자동으로 프로비전됩니다. 자동 프로비전을 사용하는 경우 네트워크도 프로비전하면서 첫 번째 컴퓨팅 리소스를 만드는 데 약 30분이 걸릴 수 있습니다. FQDN 아웃바운드 규칙을 구성한 경우(승인된 모드만 허용하여 사용) 첫 번째 FQDN 규칙은 프로비전 시간에 약 10분을 추가합니다. 관리 네트워크에 프로비전할 아웃바운드 규칙 집합이 많은 경우 프로비전을 완료하는 데 시간이 더 오래 걸릴 수 있습니다. 프로비전 시간이 길어지면 첫 번째 컴퓨팅 만들기 또는 첫 번째 관리형 온라인 엔드포인트 배포가 시간 초과될 수 있습니다.

대기 시간을 줄이고 잠재적인 시간 제한 오류를 방지하려면 관리 네트워크를 수동으로 프로비전하는 것이 좋습니다. 그런 다음 컴퓨팅 리소스 또는 관리형 온라인 엔드포인트 배포를 만들기 전에 프로비전이 완료될 때까지 기다립니다.

다음 예에서는 관리형 VNet을 프로비전하는 방법을 보여 줍니다.

서버리스 Spark 작업을 제출하려는 경우 --include-spark 매개 변수를 추가합니다.

az ml workspace provision-network -g my_resource_group -n my_workspace_name

프로비전이 완료되었는지 확인하려면 다음 명령을 사용합니다.

az ml workspace show -n my_workspace_name -g my_resource_group --query managed_network

이미지 빌드 구성

작업 영역에 대한 Azure Container Registry가 가상 네트워크 뒤에 있는 경우 Docker 이미지를 직접 빌드하는 데 사용할 수 없습니다. 대신 컴퓨팅 클러스터 또는 컴퓨팅 인스턴스를 사용하여 이미지를 빌드하도록 작업 영역을 구성합니다.

Important

Docker 이미지를 빌드하는 데 사용되는 컴퓨팅 리소스는 모델을 학습시키고 배포하는 데 사용되는 패키지 리포지토리에 액세스할 수 있어야 합니다. 승인된 아웃바운드만 허용하도록 구성된 네트워크를 사용하는 경우 공용 리포지토리에 대한 액세스를 허용하거나 프라이빗 Python 패키지를 사용하는 규칙을 추가해야 할 수 있습니다.

컴퓨팅 클러스터 또는 컴퓨팅 인스턴스를 사용하여 Docker 이미지를 빌드하도록 작업 영역을 업데이트하려면 --image-build-compute 매개 변수와 함께 az ml workspace update 명령을 사용합니다.

az ml workspace update --name ws --resource-group rg --image-build-compute mycompute

아웃바운드 규칙 관리

작업 영역에 대한 관리되는 VNet 아웃바운드 규칙을 나열하려면 다음 명령을 사용합니다.

az ml workspace outbound-rule list --workspace-name ws --resource-group rg

관리되는 VNet 아웃바운드 규칙의 세부 정보를 보려면 다음 명령을 사용합니다.

az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg

관리되는 VNet에서 아웃바운드 규칙을 제거하려면 다음 명령을 사용합니다.

az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg

필수 규칙 목록

이러한 규칙은 관리되는 VNet에 자동으로 추가됩니다.

프라이빗 엔드포인트:

  • 관리형 VNet의 격리 모드가 Allow internet outbound인 경우 프라이빗 엔드포인트 아웃바운드 규칙은 공용 네트워크 액세스가 사용하지 않도록 설정된 작업 영역 및 관련 리소스(Key Vault, Storage 계정, Container Registry, Azure Machine Learning 작업 영역)에 대한 관리형 VNet에서 필수 규칙으로 자동 생성됩니다.
  • 관리형 VNet의 격리 모드가 Allow only approved outbound인 경우 프라이빗 엔드포인트 아웃바운드 규칙은 해당 리소스에 대한 공용 네트워크 액세스 모드에 관계없이 작업 영역 및 관련 리소스(Key Vault, Storage 계정, Container Registry, Azure Machine Learning 작업 영역)에 대한 관리형 VNet에서 필수 규칙으로 자동 생성됩니다.

아웃바운드 서비스 태그 규칙:

  • AzureActiveDirectory
  • AzureMachineLearning
  • BatchNodeManagement.region
  • AzureResourceManager
  • AzureFrontDoor
  • MicrosoftContainerRegistry
  • AzureMonitor

인바운드 서비스 태그 규칙:

  • AzureMachineLearning

시나리오별 아웃바운드 규칙 목록

시나리오: 공용 기계 학습 패키지에 액세스

학습 및 배포용 Python 패키지 설치를 허용하려면 다음 호스트 이름에 대한 트래픽을 허용하는 아웃바운드 FQDN 규칙을 추가합니다.

Warning

FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

참고 항목

인터넷의 모든 Python 리소스에 필요한 호스트의 전체 목록이 아니라 가장 일반적으로 사용됩니다. 예를 들어 GitHub 리포지토리 또는 다른 호스트에 대한 액세스 권한이 필요한 경우 해당 시나리오에 필요한 호스트를 식별하고 추가해야 합니다.

호스트 이름 용도
anaconda.com
*.anaconda.com
기본 패키지를 설치하는 데 사용됩니다.
*.anaconda.org 리포지토리 데이터를 가져오는 데 사용됩니다.
pypi.org 기본 인덱스에서 종속성을 나열하는 데 사용되며 (있는 경우) 사용자 설정에서 인덱스를 덮어쓰지 않습니다. 인덱스를 덮어쓰는 경우 *.pythonhosted.org도 허용해야 합니다.
pytorch.org
*.pytorch.org
PyTorch를 기반으로 하는 일부 예제에서 사용됩니다.
*.tensorflow.org Tensorflow를 기반으로 하는 일부 예제에서 사용됩니다.

시나리오: 컴퓨팅 인스턴스와 함께 Visual Studio Code 데스크톱 또는 웹 사용

Azure Machine Learning과 함께 Visual Studio Code를 사용하려는 경우 아웃바운드 FQDN 규칙을 추가하여 다음 호스트에 대한 트래픽을 허용합니다.

Warning

FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

  • *.vscode.dev
  • vscode.blob.core.windows.net
  • *.gallerycdn.vsassets.io
  • raw.githubusercontent.com
  • *.vscode-unpkg.net
  • *.vscode-cdn.net
  • *.vscodeexperiments.azureedge.net
  • default.exp-tas.com
  • code.visualstudio.com
  • update.code.visualstudio.com
  • *.vo.msecnd.net
  • marketplace.visualstudio.com
  • vscode.download.prss.microsoft.com

시나리오: 일괄 처리 엔드포인트 사용

배포를 위해 Azure Machine Learning 일괄 처리 엔드포인트를 사용하려는 경우 아웃바운드 프라이빗 엔드포인트 규칙을 추가하여 기본 스토리지 계정에 대해 다음 하위 리소스에 대한 트래픽을 허용합니다.

  • queue
  • table
  • Azure AI 서비스에 대한 프라이빗 엔드포인트
  • Azure AI 검색에 대한 프라이빗 엔드포인트

시나리오: HuggingFace 모델 사용

Azure Machine Learning에서 HuggingFace 모델을 사용하려는 경우 아웃바운드 FQDN 규칙을 추가하여 다음 호스트에 대한 트래픽을 허용합니다.

Warning

FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

  • docker.io
  • *.docker.io
  • *.docker.com
  • production.cloudflare.docker.com
  • cdn.auth0.com
  • cdn-lfs.huggingface.co

시나리오: 선택한 IP 주소에서 액세스 사용

특정 IP 주소에서의 액세스를 사용하도록 설정하려면 다음 작업을 사용합니다.

  1. Azure Machine Learning 작업 영역에 대한 트래픽을 허용하는 아웃바운드 프라이빗 엔드포인트 규칙을 추가합니다. 이를 통해 관리되는 가상 네트워크에서 만들어진 컴퓨팅 인스턴스가 작업 영역에 액세스할 수 있습니다.

    작업 영역이 아직 존재하지 않으므로 작업 영역을 만드는 동안에는 이 규칙을 추가할 수 없습니다.

  2. 작업 영역에 대한 공용 네트워크 액세스를 사용하도록 설정합니다. 자세한 내용은 공용 네트워크 액세스 사용을 참조하세요.

  3. Azure Machine Learning을 위해 방화벽에 IP 주소를 추가합니다. 자세한 내용은 IP 범위에서만 액세스 사용을 참조하세요.

프라이빗 엔드포인트

프라이빗 엔드포인트는 현재 다음 Azure 서비스에 대해 지원됩니다.

  • Azure Machine Learning
  • Azure Machine Learning 레지스트리
  • Azure Storage(모든 하위 리소스 종류)
  • Azure Container Registry
  • Azure Key Vault
  • Azure AI 서비스
  • Azure AI 검색(이전의 Cognitive Search)
  • Azure SQL Server
  • Azure Data Factory
  • Azure Cosmos DB(모든 하위 리소스 종류)
  • Azure Event Hubs
  • Azure Redis Cache
  • Azure Databricks
  • Azure Database for MariaDB
  • Azure Database for PostgreSQL
  • Azure Database for MySQL
  • Azure SQL Managed Instance

프라이빗 엔드포인트를 만들 때 엔드포인트가 연결되는 리소스 종류하위 리소스를 제공합니다. 일부 리소스에는 여러 형식과 하위 리소스가 있습니다. 자세한 내용은 프라이빗 엔드포인트란?을 참조하세요.

Azure Storage, Azure Container Registry 및 Azure Key Vault와 같은 Azure Machine Learning 종속성 리소스에 대한 프라이빗 엔드포인트를 만드는 경우 해당 리소스는 다른 Azure 구독에 있을 수 있습니다. 그러나 리소스는 Azure Machine Learning 작업 영역과 동일한 테넌트에 있어야 합니다.

Important

Azure Machine Learning 관리형 VNet에 대한 프라이빗 엔드포인트를 구성할 때 프라이빗 엔드포인트는 첫 번째 컴퓨팅이 만들어질 때 또는 관리형 VNet 프로비전이 강제로 만들어질 때만 만들어집니다. 관리형 VNet의 강제 프로비전에 대한 자세한 내용은 서버리스 Spark 작업 구성을 참조하세요.

가격 책정

Azure Machine Learning 관리형 VNet 기능은 무료입니다. 그러나 관리형 VNet에서 사용하는 다음 리소스에 대한 요금이 청구됩니다.

  • Azure Private Link - 관리형 VNet과 Azure 리소스 간의 통신을 보호하는 데 사용되는 프라이빗 엔드포인트는 Azure Private Link를 사용합니다. 가격 책정에 대한 자세한 내용은 Azure Private Link 가격 책정을 참조하세요.

  • FQDN 아웃바운드 규칙 - FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. Azure Firewall(표준 SKU)은 Azure Machine Learning에서 프로비전됩니다.

    Important

    아웃바운드 FQDN 규칙을 추가할 때까지 방화벽은 만들어지지 않습니다. 가격 책정에 대한 자세한 내용은 Azure Firewall 가격 책정을 참조하고 표준 버전의 가격을 확인하세요.

제한 사항

  • 작업 영역의 관리형 VNet 격리를 사용하도록 설정하면 사용하지 않도록 설정할 수 없습니다.
  • 관리형 VNet은 프라이빗 엔드포인트 연결을 사용하여 프라이빗 리소스에 액세스합니다. 스토리지 계정과 같은 Azure 리소스에 대해 프라이빗 엔드포인트와 서비스 엔드포인트를 동시에 가질 수 없습니다. 모든 시나리오에서 프라이빗 엔드포인트를 사용하는 것이 좋습니다.
  • 작업 영역이 삭제되면 관리형 VNet도 삭제됩니다.
  • 승인된 아웃바운드 모드에 대해서만 데이터 반출 방지가 자동으로 사용하도록 설정됩니다. FQDN과 같은 다른 아웃바운드 규칙을 추가하는 경우 Microsoft는 해당 아웃바운드 대상으로의 데이터 반출로부터 사용자가 보호된다고 보장할 수 없습니다.
  • 관리형 VNet을 사용하는 경우 작업 영역과 다른 지역에 컴퓨팅 클러스터를 만드는 것은 지원되지 않습니다.
  • Kubernetes 및 연결된 VM은 Azure Machine Learning 관리형 VNet에서 지원되지 않습니다.
  • FQDN 규칙은 Azure Firewall을 사용하므로 FQDN 아웃바운드 규칙을 사용하면 관리형 VNet의 비용이 증가합니다. 자세한 내용은 가격 책정을 참조하세요.

컴퓨팅 리소스 마이그레이션

기존 작업 영역이 있고 이에 대해 관리형 VNet을 사용하려는 경우 현재 기존 관리 컴퓨팅 리소스에 대해 지원되는 마이그레이션 경로가 없습니다. 기존 관리 컴퓨팅 리소스를 모두 삭제하고 관리형 VNet을 사용하도록 설정한 후 다시 만들어야 합니다. 다음 목록에는 삭제하고 다시 만들어야 하는 컴퓨팅 리소스가 포함되어 있습니다.

  • 컴퓨팅 클러스터
  • 컴퓨팅 인스턴스
  • Kubernetes 클러스터
  • 관리형 온라인 엔드포인트

다음 단계