다음을 통해 공유


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

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

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

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

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

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

관리되는 가상 네트워크의 아웃바운드 트래픽에는 두 가지 구성 모드가 있습니다.

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

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

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

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

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

다음 다이어그램은 인터넷 아웃바운드를 허용하도록 구성된 관리되는 가상 네트워크를 보여 줍니다.

인터넷 아웃바운드에 대해 구성된 관리형 가상 네트워크 격리 다이어그램.

다음 다이어그램은 승인된 아웃바운드만 허용하도록 구성된 관리되는 가상 네트워크를 보여 줍니다.

참고 항목

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

승인된 아웃바운드만 허용하도록 구성된 관리형 가상 네트워크 격리 다이어그램.

참고 항목

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

Azure Machine Learning 스튜디오

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

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

연결된 작업 영역 Azure Storage 계정에 공용 네트워크 액세스가 비활성화된 경우 클라이언트 가상 네트워크에서 만든 프라이빗 엔드포인트에 작업 영역 관리 ID에 대한 읽기 권한자 역할이 부여되었는지 확인합니다. 이는 블로그 및 파일 스토리지 프라이빗 엔드포인트 모두에 적용됩니다. 관리형 가상 네트워크에서 만든 프라이빗 엔드포인트에는 역할이 필요하지 않습니다.

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

보안 연결된 리소스

서비스 엔드포인트 또는 프라이빗 엔드포인트(공용 액세스를 사용하지 않도록 설정)를 사용하여 가상 네트워크에 다음 서비스를 추가하는 경우 신뢰할 수 있는 Microsoft 서비스 이러한 서비스에 액세스하도록 허용합니다.

서비스 엔드포인트 정보 신뢰할 수 있는 정보 허용
Azure Key Vault 서비스 엔드포인트
프라이빗 엔드포인트
신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용
Azure Storage Account 서비스 및 프라이빗 엔드포인트
프라이빗 엔드포인트
Azure 리소스 인스턴스에서 액세스 권한 부여
또는
신뢰할 수 있는 Azure 서비스에 대한 액세스 권한 부여
Azure Container Registry 프라이빗 엔드포인트 신뢰할 수 있는 서비스 허용

필수 조건

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

  • 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 구독과 함께 명령을 사용할 때 필요에 따라 이러한 값을 변경합니다.

참고 항목

UAI 작업 영역을 사용하는 경우 ID에 Azure AI 엔터프라이즈 네트워크 연결 승인자 역할을 추가해야 합니다. 자세한 내용은 사용자 할당 관리 ID를 참조하세요.

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

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

Important

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

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

managed_network:
  isolation_mode: allow_internet_outbound

작업 영역이 의존하는 다른 Azure 서비스에 대한 아웃바운드 규칙을 정의할 수도 있습니다. 이러한 규칙은 Azure 리소스가 관리형 가상 네트워크와 안전하게 통신할 수 있도록 하는 프라이빗 엔드포인트를 정의합니다. 다음 규칙은 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 명령을 사용하여 관리되는 가상 네트워크를 구성할 수 있습니다.

  • 새 작업 영역 만들기

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

    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 예제에서는 관리되는 가상 네트워크를 사용하여 작업 영역을 정의합니다.

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

    Warning

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

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

    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 예제에서는 작업 영역에 대한 관리형 가상 네트워크를 정의합니다. 또한 작업 영역에서 사용하는 리소스에 프라이빗 엔드포인트 연결을 추가하는 방법도 보여 줍니다. 이 예에서는 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 작업 구성 섹션을 참조하세요.

승인된 아웃바운드 통신만 허용하는 관리형 가상 네트워크를 구성하려면 --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 명령을 사용하여 관리되는 가상 네트워크를 구성할 수 있습니다.

  • 새 작업 영역 만들기

    다음 예제에서는 --managed-network allow_only_approved_outbound 매개 변수를 사용하여 관리되는 가상 네트워크를 구성합니다.

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

    다음 YAML 파일은 관리되는 가상 네트워크가 있는 작업 영역을 정의합니다.

    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 사용하여 기존 작업 영역에 대한 관리형 가상 네트워크를 구성합니다.

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

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

    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 작업을 제출하지 않을 경우 이 섹션을 건너뛸 수 있습니다.

관리되는 가상 네트워크에 대해 서버리스 Spark 작업을 사용하도록 설정하려면 다음 작업을 수행해야 합니다.

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

    YAML 파일을 사용하여 관리되는 가상 네트워크 구성을 정의하고 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을 프로비전하기 전에 사용하지 않도록 설정해야 합니다. 관리되는 VNet을 프로비전할 때 공용 네트워크 액세스를 사용하지 않도록 설정하지 않으면 작업 영역에 대한 프라이빗 엔드포인트가 관리되는 VNet에 자동으로 만들어지지 않을 수 있습니다. 그렇지 않으면 프로비전 후 작업 영역에 대한 프라이빗 엔드포인트 아웃바운드 규칙을 수동으로 구성해야 합니다.

    다음 예제에서는 매개 변수를 사용하여 서버리스 Spark 작업에 대해 관리되는 가상 네트워크를 프로비전하는 --include-spark 방법을 보여 있습니다.

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

관리형 VNet 수동 프로비전

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

대기 시간을 줄이고 잠재적인 시간 제한 오류를 방지하려면 관리 네트워크를 수동으로 프로비전하는 것이 좋습니다. 그러면 컴퓨팅 인스턴스를 만들기 전에 프로비전이 완료될 때까지 기다리세요.

또는 플래그를 provision_network_now 사용하여 작업 영역 만들기의 일부로 관리되는 네트워크를 프로비전할 수 있습니다. 이 플래그는 미리 보기 상태입니다.

참고 항목

온라인 배포를 만들려면 관리형 네트워크를 수동으로 프로비전하거나 컴퓨팅 인스턴스를 먼저 만들어 자동으로 프로비전해야 합니다.

다음 예제에서는 작업 영역을 만드는 동안 관리되는 가상 네트워크를 프로비전하는 방법을 보여줍니다. 플래그는 --provision-network-now 미리 보기 상태입니다.

az ml workspace create -n myworkspace -g my_resource_group --managed-network AllowInternetOutbound --provision-network-now

다음 예제에서는 관리되는 가상 네트워크를 수동으로 프로비전하는 방법을 보여 있습니다.

서버리스 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

아웃바운드 규칙 관리

작업 영역에 대한 관리형 가상 네트워크 아웃바운드 규칙을 나열하려면 다음 명령을 사용합니다.

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

관리형 가상 네트워크 아웃바운드 규칙의 세부 정보를 보려면 다음 명령을 사용합니다.

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

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

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

필수 규칙 목록

프라이빗 엔드포인트:

  • 관리되는 가상 네트워크에 대한 격리 모드인 경우 Allow internet outbound프라이빗 엔드포인트 아웃바운드 규칙은 작업 영역에 대한 관리형 가상 네트워크에서 필요한 규칙으로 자동으로 생성되고 공용 네트워크 액세스가 비활성화된 연결된 리소스(Key Vault, Storage 계정, Container Registry, Azure Machine Learning 작업 영역)가 사용됩니다.
  • 관리되는 가상 네트워크에 대한 격리 모드인 경우 Allow only approved outbound프라이빗 엔드포인트 아웃바운드 규칙은 해당 리소스에 대한 공용 네트워크 액세스 모드(Key Vault, Storage 계정, Container Registry, Azure Machine Learning 작업 영역)에 관계없이 작업 영역 및 관련 리소스 에 대한 관리되는 가상 네트워크에서 필요한 규칙으로 자동으로 생성됩니다.
  • 이러한 규칙은 관리되는 가상 네트워크에 자동으로 추가됩니다.

Azure Machine Learning이 정상적으로 실행되도록 하려면 관리형 또는 사용자 지정 가상 네트워크 설정에 필요한 일련의 필수 서비스 태그가 있습니다. 특정 필수 서비스 태그를 대체하는 대안은 없습니다. 다음은 Azure Machine Learning 내에서 필요한 각 서비스 태그 및 용도에 대한 표입니다.

서비스 태그 규칙 인바운드 또는 아웃바운드 목적
AzureMachineLearning 인바운드 Azure Machine Learning 컴퓨팅 인스턴스/클러스터를 만들고, 업데이트하고, 삭제합니다.
AzureMachineLearning 아웃바운드 Azure Machine Learning Services 사용하기. Notebook의 Python intellisense는 포트 18881을 사용합니다. Azure Machine Learning 컴퓨팅 인스턴스 만들기, 업데이트 및 삭제에는 포트 5831이 사용됩니다.
AzureActiveDirectory 아웃바운드 Microsoft Entra ID를 사용하여 인증
BatchNodeManagement.region 아웃바운드 Azure Machine Learning 컴퓨팅 인스턴스/클러스터에 대한 Azure Batch 백 엔드와의 통신.
AzureResourceManager 아웃바운드 Azure Machine Learning, Azure CLI 및 Azure Machine Learning SDK를 사용하는 Azure 리소스 만들기.
AzureFrontDoor.FirstParty 아웃바운드 Microsoft가 제공하는 Docker 이미지에 액세스하세요.
MicrosoftContainerRegistry 아웃바운드 Microsoft가 제공하는 Docker 이미지에 액세스하세요. Azure Kubernetes Service용 Azure Machine Learning 라우터 설치입니다.
AzureMonitor 아웃바운드 Azure Monitor에 모니터링 및 메트릭을 기록하는 데 사용됨. 작업 영역에 대해 보안 Azure Monitor가 없는 경우에만 필요합니다. 이 아웃바운드는 지원 인시던트에 대한 정보를 기록하는 데도 사용됩니다.
VirtualNetwork 아웃바운드 프라이빗 엔드포인트가 가상 네트워크 또는 피어링된 가상 네트워크에 있는 경우에 필요합니다.

참고 항목

유일한 보안 경계인 서비스 태그로는 충분하지 않습니다. 테넌트 수준 격리의 경우 가능하면 프라이빗 엔드포인트를 사용합니다.

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

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

학습 및 배포용 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에 대한 요금이 청구서에 추가됩니다. 자세한 내용은 가격 책정을 참조하세요.

참고 항목

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

호스트 이름 용도
*.vscode.dev
*.vscode-unpkg.net
*.vscode-cdn.net
*.vscodeexperiments.azureedge.net
default.exp-tas.com
vscode.dev(웹용 Visual Studio Code)에 액세스하는 데 필요
code.visualstudio.com VS Code 데스크톱을 다운로드하고 설치하는 데 필요합니다. 이 호스트는 VS Code Web에 필요하지 않습니다.
update.code.visualstudio.com
*.vo.msecnd.net
설정 스크립트를 통해 컴퓨팅 인스턴스에 설치된 VS Code 서버 비트를 검색하는 데 사용됩니다.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
VS Code 확장을 다운로드하고 설치하는 데 필요합니다. 이러한 호스트는 컴퓨팅 인스턴스에 대한 원격 연결을 사용하도록 설정합니다. 자세한 내용은 VS Code에서 Azure Machine Learning 리소스 관리를 참조하세요.
https://github.com/microsoft/vscode-tools-for-ai/tree/master/azureml_remote_websocket_server/*
raw.githubusercontent.com
컴퓨팅 인스턴스에 설치된 WebSocket 서버 비트를 검색하는 데 사용됩니다. WebSocket 서버는 Visual Studio Code 클라이언트(데스크톱 애플리케이션)의 요청을 컴퓨팅 인스턴스에서 실행 중인 Visual Studio Code 서버로 전송하는 데 사용됩니다.
vscode.download.prss.microsoft.com Visual Studio Code 다운로드 CDN에 사용됩니다.

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

배포 또는 ParallelRunStepAzure 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 범위에서만 액세스 사용을 참조하세요.

    참고 항목

    IPv4 주소만 지원됩니다.

자세한 내용은 프라이빗 링크 구성을 참조 하세요.

프라이빗 엔드포인트

프라이빗 엔드포인트는 현재 다음 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 PostgreSQL 유연한 서버
  • Azure Database for MySQL
  • Azure API Management

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

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

Important

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

승인된 아웃바운드만 허용되도록 Azure Firewall 버전 선택(미리 보기)

승인된 아웃바운드 모드만 허용하는 동안 FQDN 아웃바운드 규칙이 만들어지면 Azure Firewall이 배포됩니다. Azure Firewall에 대한 요금은 청구에 포함됩니다. 기본적으로 표준 버전의 AzureFirewall이 만들어집니다. 필요에 따라 기본 버전을 사용하도록 선택할 수 있습니다. 필요에 따라 사용되는 방화벽 버전을 변경할 수 있습니다. 가장 적합한 버전을 확인하려면 올바른 Azure Firewall 버전 선택을 방문하세요.

Important

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

다음 탭을 사용하여 관리되는 가상 네트워크에 대한 방화벽 버전을 선택하는 방법을 알아봅니다.

CLI에서 방화벽 버전을 구성하려면 YAML 파일을 사용하고 다음을 지정합니다 firewall_sku. 다음 예제에서는 방화벽 SKU basic를 다음으로 설정하는 YAML 파일을 보여 줍니다.

name: test-ws
resource_group: test-rg
location: eastus2 
managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - category: required
    destination: 'contoso.com'
    name: contosofqdn
    type: fqdn
  firewall_sku: basic
tags: {}

가격 책정

Azure Machine Learning 관리되는 가상 네트워크 기능은 무료입니다. 그러나 관리되는 가상 네트워크에서 사용하는 다음 리소스에 대한 요금이 청구됩니다.

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

  • FQDN 아웃바운드 규칙 - FQDN 아웃바운드 규칙은 Azure Firewall을 사용하여 구현됩니다. 아웃바운드 FQDN 규칙을 사용하는 경우 Azure Firewall에 대한 요금이 청구서에 추가됩니다. Azure Firewall의 표준 버전은 기본적으로 사용됩니다. 기본 버전을 선택하는 방법에 대한 자세한 내용은 Azure Firewall 버전 선택을 참조하세요.

    Important

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

제한 사항

  • 작업 영역의 관리형 가상 네트워크 격리를 사용하도록 설정하거나(인터넷 아웃바운드를 허용하거나 승인된 아웃바운드만 허용) 사용하지 않도록 설정할 수 없습니다.
  • 관리되는 가상 네트워크는 프라이빗 엔드포인트 연결을 사용하여 프라이빗 리소스에 액세스합니다. 스토리지 계정과 같은 Azure 리소스에 대해 프라이빗 엔드포인트와 서비스 엔드포인트를 동시에 가질 수 없습니다. 모든 시나리오에서 프라이빗 엔드포인트를 사용하는 것이 좋습니다.
  • 작업 영역이 삭제되면 관리되는 가상 네트워크가 삭제됩니다. Azure 구독에서 Azure Machine Learning 리소스를 삭제할 때 사용자가 만들거나 관리되는 가상 네트워크에 대해 Microsoft에서 만든 리소스의 삭제를 방지하는 리소스 잠금 또는 잠금을 사용하지 않도록 설정합니다.
  • 승인된 아웃바운드 모드에 대해서만 데이터 반출 방지가 자동으로 사용하도록 설정됩니다. FQDN과 같은 다른 아웃바운드 규칙을 추가하는 경우 Microsoft는 해당 아웃바운드 대상으로의 데이터 반출로부터 사용자가 보호된다고 보장할 수 없습니다.
  • 관리되는 가상 네트워크를 사용하는 경우 작업 영역과 다른 지역에 컴퓨팅 클러스터를 만드는 것은 지원되지 않습니다.
  • Kubernetes 및 연결된 VM은 Azure Machine Learning 관리형 가상 네트워크에서 지원되지 않습니다.
  • FQDN 규칙은 Azure Firewall을 사용하므로 FQDN 아웃바운드 규칙을 사용하면 관리되는 가상 네트워크의 비용이 증가합니다. 자세한 내용은 가격 책정을 참조하세요.
  • FQDN 아웃바운드 규칙은 포트 80 및 443만 지원합니다.
  • 컴퓨팅 인스턴스가 관리되는 네트워크에 있고 공용 IP가 없도록 구성된 경우 az ml compute connect-ssh 명령을 사용하여 SSH를 사용하여 연결합니다.
  • 관리형 가상 네트워크를 사용하는 경우 사용자 지정 가상 네트워크 내에 컴퓨팅 리소스를 배포할 수 없습니다. 컴퓨팅 리소스는 관리되는 가상 네트워크 내에서만 만들 수 있습니다.
  • 관리형 네트워크 격리는 관리되는 가상 네트워크에서 사용자의 온-프레미스 리소스로의 프라이빗 연결을 설정할 수 없습니다. 지원되는 프라이빗 연결 목록은 프라이빗 엔드포인트를 참조하세요.
  • 관리되는 네트워크가 승인된 아웃바운드만 허용하도록 구성된 경우 FQDN 규칙을 사용하여 Azure Storage 계정에 액세스할 수 없습니다. 대신 프라이빗 엔드포인트를 사용해야 합니다.
  • 사용자 지정 정책에서 관리되는 가상 네트워크에 대해 만든 허용 목록 Microsoft 관리 프라이빗 엔드포인트를 확인합니다.

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

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

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

다음 단계