VNet(가상 네트워크)을 사용하여 Azure Machine Learning 작업 영역 리소스 보호
팁
이 문서의 단계 대신 Azure Machine Learning 관리되는 가상 네트워크를 사용할 수 있습니다. 관리되는 가상 네트워크를 통해 Azure Machine Learning은 작업 영역 및 관리 컴퓨팅에 대한 네트워크 격리 작업을 처리합니다. Azure Storage 계정과 같이 작업 영역에 필요한 리소스에 대한 프라이빗 엔드포인트를 추가할 수도 있습니다. 자세한 내용은 작업 영역 관리되는 네트워크 격리를 참조하세요.
Azure Virtual Networks(VNet)를 사용하여 Azure Machine Learning 작업 영역 리소스와 컴퓨팅 환경을 보호하는 방법을 알아봅니다. 이 문서에서는 예제 시나리오를 사용하여 전체 가상 네트워크를 구성하는 방법을 보여 줍니다.
이 문서는 Azure Machine Learning 워크플로 보안에 대한 시리즈의 일부입니다. 이 시리즈의 다른 문서를 참조하세요.
보안 작업 영역을 만드는 방법에 대한 자습서는 자습서: 보안 작업 영역 만들기, Bicep 템플릿 또는 Terraform 템플릿을 참조하세요.
필수 조건
이 문서에서는 사용자가 다음 문서에 대해 잘 알고 있다고 가정합니다.
예제 시나리오
이 섹션에서는 개인 IP 주소를 사용하여 Azure Machine Learning 통신을 보호하기 위해 일반적인 네트워크 시나리오를 설정하는 방법을 알아봅니다.
다음 표에는 서비스가 VNet을 사용하는 경우와 사용하지 않는 경우 Azure Machine Learning 네트워크의 여러 부분에 액세스하는 방법이 비교되어 있습니다.
시나리오 | 작업 영역 | 연결된 리소스 | 컴퓨팅 환경 학습 | 추론 컴퓨팅 환경 |
---|---|---|---|---|
가상 네트워크 없음 | 공용 IP | 공용 IP | 공용 IP | 공용 IP |
공용 작업 영역, 가상 네트워크의 기타 모든 리소스 | 공용 IP | 공용 IP(서비스 엔드포인트) 또는 개인 IP(프라이빗 엔드포인트) |
공용 IP | 프라이빗 IP |
가상 네트워크의 보안 리소스 | 개인 IP(프라이빗 엔드포인트) | 공용 IP(서비스 엔드포인트) 또는 개인 IP(프라이빗 엔드포인트) |
프라이빗 IP | 프라이빗 IP |
- 작업 영역 - 작업 영역의 프라이빗 엔드포인트를 만듭니다. 프라이빗 엔드포인트는 여러 개의 개인 IP 주소를 통해 VNet에 작업 영역을 연결합니다.
- 공용 액세스 - 보안 작업 영역에 대한 공용 액세스를 선택적으로 사용하도록 설정할 수 있습니다.
- 연결된 리소스 - 서비스 엔드포인트 또는 프라이빗 엔드포인트를 사용하여 Azure Storage, Azure Key Vault와 같은 작업 영역 리소스에 연결합니다. Azure Container Services의 경우 프라이빗 엔드포인트를 사용합니다.
- 서비스 엔드포인트는 Azure 서비스에 대한 가상 네트워크의 ID를 제공합니다. 가상 네트워크에서 서비스 엔드포인트를 사용하면 가상 네트워크 규칙을 추가하여 가상 네트워크에 대한 Azure 서비스 리소스를 보호할 수 있습니다. 서비스 엔드포인트는 공용 IP 주소를 사용합니다.
- 프라이빗 엔드포인트는 Azure Private Link를 통해 제공되는 서비스에 안전하게 연결하는 네트워크 인터페이스입니다. 프라이빗 엔드포인트는 VNet의 개인 IP 주소를 사용하여 서비스를 VNet에 효과적으로 가져옵니다.
- 컴퓨팅 액세스 학습 - 공용 또는 개인 IP 주소를 사용하여 Azure Machine Learning 컴퓨팅 인스턴스 및 Azure Machine Learning 컴퓨팅 클러스터와 같은 학습 컴퓨팅 대상에 액세스합니다.
- 추론 컴퓨팅 액세스 - 개인 IP 주소를 사용하여 AKS(Azure Kubernetes Services) 컴퓨팅 클러스터에 액세스합니다.
다음 섹션에서는 앞에서 설명한 네트워크 시나리오를 보호하는 방법을 보여 줍니다. 네트워크를 보호하려면 다음을 수행해야 합니다.
- 작업 영역 및 연결된 리소스를 보호합니다.
- 학습 환경을 보호합니다.
- 추론 환경을 보호합니다.
- 필요에 따라 스튜디오 기능을 사용합니다.
- 방화벽 설정을 구성합니다.
- DNS 이름 확인을 구성합니다.
공용 작업 영역 및 보안 리소스
Important
이는 Azure Machine Learning에 대해 지원되는 구성이지만 Microsoft에서는 권장하지 않습니다. 가상 네트워크 뒤에 있는 Azure Storage 계정의 데이터는 공용 작업 영역에 노출될 수 있습니다. 프로덕션에서 사용하기 전에 보안 팀과 함께 이 구성을 확인해야 합니다.
가상 네트워크에서 연결된 모든 리소스를 보호하면서 공용 인터넷을 통해 작업 영역에 액세스하려면 다음 단계를 사용합니다.
Azure Virtual Network를 만듭니다. 이 네트워크는 작업 영역에서 사용하는 리소스를 보호합니다.
공용으로 액세스할 수 있는 작업 영역을 만들려면 다음 옵션 중 하나를 사용합니다.
- 가상 네트워크를 사용하지 않는 Azure Machine Learning 작업 영역을 만듭니다. 자세한 내용은 Azure Machine Learning 작업 영역 관리를 참조하세요.
또는
- VNet과 작업 영역 간에 통신을 사용하도록 설정하려면 프라이빗 링크 사용 작업 영역을 만듭니다. 그런 다음 작업 영역에 대한 공용 액세스를 사용하도록 설정합니다.
- 가상 네트워크를 사용하지 않는 Azure Machine Learning 작업 영역을 만듭니다. 자세한 내용은 Azure Machine Learning 작업 영역 관리를 참조하세요.
- VNet과 작업 영역 간에 통신을 사용하도록 설정하려면 프라이빗 링크 사용 작업 영역을 만듭니다. 그런 다음 작업 영역에 대한 공용 액세스를 사용하도록 설정합니다.
서비스 엔드포인트 또는 프라이빗 엔드포인트 중 하나를 사용하여 다음 서비스를 가상 네트워크에 추가합니다. 또한 신뢰할 수 있는 Microsoft 서비스가 다음 서비스에 액세스할 수 있도록 허용합니다.
서비스 엔드포인트 정보 신뢰할 수 있는 정보 허용 Azure Key Vault 서비스 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 Azure Storage Account 서비스 및 프라이빗 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Azure 서비스에 대한 액세스 권한 부여 Azure Container Registry 프라이빗 엔드포인트 신뢰할 수 있는 서비스 허용 서비스 엔드포인트 정보 신뢰할 수 있는 정보 허용 Azure Key Vault 서비스 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 Azure Storage Account 서비스 및 프라이빗 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Azure 서비스에 대한 액세스 권한 부여 Azure Container Registry 프라이빗 엔드포인트 신뢰할 수 있는 서비스 허용 작업 영역의 Azure Storage 계정 속성에서 방화벽 설정의 허용 목록에 클라이언트 IP 주소를 추가합니다. 자세한 내용은 방화벽 및 가상 네트워크 구성을 참조하세요.
작업 영역 및 연결된 리소스 보호
작업 영역 및 연결된 리소스를 보호하려면 다음 단계를 수행합니다. 이러한 단계를 통해 서비스가 가상 네트워크에서 통신할 수 있습니다.
Azure Virtual Network를 만듭니다. 이 네트워크는 작업 영역과 기타 리소스를 보호합니다. 그런 다음 VNet과 작업 영역 간에 통신을 사용하도록 설정하려면 Private Link 사용 작업 영역을 만듭니다.
서비스 엔드포인트 또는 프라이빗 엔드포인트 중 하나를 사용하여 다음 서비스를 가상 네트워크에 추가합니다. 또한 신뢰할 수 있는 Microsoft 서비스가 다음 서비스에 액세스할 수 있도록 허용합니다.
서비스 엔드포인트 정보 신뢰할 수 있는 정보 허용 Azure Key Vault 서비스 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 Azure Storage Account 서비스 및 프라이빗 엔드포인트
프라이빗 엔드포인트Azure 리소스 인스턴스에서 액세스 권한 부여
또는
신뢰할 수 있는 Azure 서비스에 대한 액세스 권한 부여Azure Container Registry 프라이빗 엔드포인트 신뢰할 수 있는 서비스 허용
Azure Virtual Network를 만듭니다. 이 가상 네트워크는 작업 영역과 기타 리소스를 보호합니다. 그런 다음 VNet과 작업 영역 간에 통신을 사용하도록 설정하려면 Private Link 사용 작업 영역을 만듭니다.
서비스 엔드포인트 또는 프라이빗 엔드포인트 중 하나를 사용하여 다음 서비스를 가상 네트워크에 추가합니다. 또한 신뢰할 수 있는 Microsoft 서비스가 다음 서비스에 액세스할 수 있도록 허용합니다.
서비스 엔드포인트 정보 신뢰할 수 있는 정보 허용 Azure Key Vault 서비스 엔드포인트
프라이빗 엔드포인트신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 Azure Storage Account 서비스 및 프라이빗 엔드포인트
프라이빗 엔드포인트Azure 리소스 인스턴스에서 액세스 권한 부여
또는
신뢰할 수 있는 Azure 서비스에 대한 액세스 권한 부여Azure Container Registry 프라이빗 엔드포인트 신뢰할 수 있는 서비스 허용
이 단계를 완료하는 방법에 대한 자세한 지침은 Azure Machine Learning 작업 영역 보호를 참조하세요.
이 단계를 완료하는 방법에 대한 자세한 지침은 Azure Machine Learning 작업 영역 보호를 참조하세요.
제한 사항
가상 네트워크 내에서 작업 영역 및 연결된 리소스를 보호하는 경우 다음과 같은 제한 사항이 있습니다.
작업 영역과 기본 스토리지 계정은 동일한 VNet에 있어야 합니다. 그러나 동일한 VNet 내의 서브넷은 허용됩니다. 예를 들어 한 서브넷의 작업 영역과 다른 서브넷의 스토리지입니다.
작업 영역에 대한 Azure Key Vault 및 Azure Container Registry도 동일한 VNet에 있는 것이 좋습니다. 그러나 이러한 두 리소스가 모두 피어링된 VNet에 있을 수도 있습니다.
학습 환경 보호
이 섹션에서는 Azure Machine Learning에서 교육 환경을 보호하는 방법을 알아봅니다. 또한 네트워크 구성이 함께 작동하는 방식을 이해하기 위해 Azure Machine Learning이 학습 작업을 완료하는 방법을 알아봅니다.
학습 환경을 보호하려면 다음 단계를 수행합니다.
가상 네트워크에 Azure Machine Learning 컴퓨팅 인스턴스와 컴퓨터 클러스터를 만듭니다. 학습 작업은 이러한 컴퓨팅에서 실행됩니다.
컴퓨팅 클러스터 또는 컴퓨팅 인스턴스가 공용 IP 주소를 사용하는 경우 관리 서비스가 컴퓨팅 리소스에 작업을 제출할 수 있도록 인바운드 통신을 허용해야 합니다.
팁
컴퓨팅 클러스터 및 컴퓨팅 인스턴스는 공용 IP 주소를 사용하거나 사용하지 않고 만들 수 있습니다. 공용 IP 주소를 사용하여 만든 경우 Azure Batch 서비스 및 Azure Machine Learning Services에서 인바운드 액세스를 허용하는 공용 IP가 있는 부하 분산 장치를 얻습니다. 방화벽을 사용하는 경우 UDR(사용자 정의 라우팅)을 구성해야 합니다. 공용 IP 없이 만들어진 경우 공용 IP 없이 Azure Batch 서비스 및 Azure Machine Learning Services에서 인바운드 액세스를 허용하는 프라이빗 링크 서비스를 받습니다.
가상 네트워크에 Azure Machine Learning 컴퓨팅 인스턴스와 컴퓨터 클러스터를 만듭니다. 학습 작업은 이러한 컴퓨팅에서 실행됩니다.
컴퓨팅 클러스터 또는 컴퓨팅 인스턴스가 공용 IP 주소를 사용하는 경우 관리 서비스가 컴퓨팅 리소스에 작업을 제출할 수 있도록 인바운드 통신을 허용해야 합니다.
팁
컴퓨팅 클러스터 및 컴퓨팅 인스턴스는 공용 IP 주소를 사용하거나 사용하지 않고 만들 수 있습니다. 공용 IP 주소를 사용하여 만든 경우 Azure Batch 서비스 및 Azure Machine Learning Services에서 인바운드 액세스를 허용하는 공용 IP가 있는 부하 분산 장치를 얻습니다. 방화벽을 사용하는 경우 UDR(사용자 정의 라우팅)을 구성해야 합니다. 공용 IP 없이 만들어진 경우 공용 IP 없이 Azure Batch 서비스 및 Azure Machine Learning Services에서 인바운드 액세스를 허용하는 프라이빗 링크 서비스를 받습니다.
이 단계를 완료하는 방법에 대한 자세한 지침은 학습 환경 보호를 참조하세요.
이 단계를 완료하는 방법에 대한 자세한 지침은 학습 환경 보호를 참조하세요.
학습 작업 제출 예
이 섹션에서는 Azure Machine Learning이 교육 작업을 제출하기 위해 서비스 간에 안전하게 통신하는 방법을 알아봅니다. 이 예에서는 모든 구성이 함께 작동하여 통신을 보호하는 방법을 보여 줍니다.
클라이언트는 서비스 또는 프라이빗 엔드포인트로 보호되는 스토리지 계정에 학습 스크립트 및 학습 데이터를 업로드합니다.
클라이언트는 프라이빗 엔드포인트를 통해 Azure Machine Learning 작업 영역에 학습 작업을 제출합니다.
Azure Batch 서비스가 작업 영역에서 작업을 받습니다. 그런 다음, 컴퓨팅 리소스의 퍼블릭 부하 분산 장치를 통해 컴퓨팅 환경에 학습 작업을 제출합니다.
컴퓨팅 리소스가 작업을 수신하고 학습을 시작합니다. 컴퓨팅 리소스는 키 자격 증명 모음에 저장된 정보를 사용하여 스토리지 계정에 액세스하여 학습 파일을 다운로드하고 출력을 업로드합니다.
제한 사항
- Azure Compute Instance 및 Azure Compute 클러스터는 작업 영역과 동일한 VNet, 지역 및 구독에 있어야 합니다. 연결된 리소스가 작업 영역과 다른 지역에 있는 경우 추가 대기 시간이 발생할 수 있습니다.
추론 환경 보안
관리형 온라인 엔드포인트에 대한 네트워크 격리를 활성화하여 다음 네트워크 트래픽을 보호할 수 있습니다.
- 인바운드 채점 요청
- 작업 영역, Azure Container Registry 및 Azure Blob Storage를 사용하여 아웃바운드 통신
자세한 내용은 관리형 온라인 엔드포인트에 대한 네트워크 격리 사용을 참조하세요.
이 섹션에서는 ML v1용 Azure CLI 확장 또는 Azure Machine Learning Python SDK v1을 사용할 때 유추 환경을 보호하는 데 사용할 수 있는 옵션에 대해 알아봅니다. v1 배포를 수행할 때 대규모 프로덕션 배포에는 AKS(Azure Kubernetes Services) 클러스터를 사용하는 것이 좋습니다.
가상 네트워크에서는 AKS 클러스터에 대한 두 가지 옵션을 사용할 수 있습니다.
- VNet에 기본 AKS 클러스터를 배포하거나 연결합니다.
- 프라이빗 AKS 클러스터를 VNet에 연결합니다.
기본 AKS 클러스터에는 공용 IP 주소를 사용하는 컨트롤 플레인이 있습니다. 배포 중에 기본 AKS 클러스터를 VNet에 추가하거나 클러스터를 만든 후에 연결할 수 있습니다.
프라이빗 AKS 클러스터에는 개인 IP를 통해서만 액세스할 수 있는 컨트롤 플레인이 있습니다. 클러스터를 만든 후에 프라이빗 AKS 클러스터를 연결해야 합니다.
기본 및 프라이빗 클러스터를 추가하는 방법에 대 한 자세한 지침은 추론 환경 보호를 참조하세요.
사용되는 기본 AKS 클러스터 또는 프라이빗 AKS 클러스터에 관계없이 AKS 클러스터가 VNET 뒤에 있는 경우 작업 영역과 해당 연결 리소스(스토리지, 키 자격 증명 모음, ACR)는 AKS 클러스터와 동일한 VNET에 프라이빗 엔드포인트 또는 서비스 엔드포인트가 있어야 합니다.
다음 네트워크 다이어그램은 프라이빗 AKS 클러스터가 가상 네트워크에 연결된 보호되는 Azure Machine Learning 작업 영역을 보여 줍니다.
선택 사항: 공용 액세스 사용
프라이빗 엔드포인트를 사용하여 VNet 뒤의 작업 영역을 보호하고 공용 인터넷을 통한 액세스를 계속 허용할 수 있습니다. 초기 구성은 작업 영역 및 연결 리소스를 보호하는 것과 같습니다.
프라이빗 엔드포인트로 작업 영역을 보호한 후 다음 단계에서 클라이언트가 SDK 또는 Azure Machine Learning 스튜디오를 사용하여 원격으로 개발할 수 있도록 합니다.
- 작업 영역에 대한 공용 액세스를 사용하도록 설정합니다.
- 공용 인터넷을 통해 연결하는 클라이언트의 IP 주소와의 통신을 허용하도록 Azure Storage 방화벽을 구성합니다.
- 작업 영역에 대한 공용 액세스를 사용하도록 설정합니다.
- 공용 인터넷을 통해 연결하는 클라이언트의 IP 주소와의 통신을 허용하도록 Azure Storage 방화벽을 구성합니다.
선택 사항: 스튜디오 기능 사용
스토리지가 VNet에 있는 경우 추가 구성 단계를 수행하여 스튜디오에서 전체 기능을 사용하도록 설정해야 합니다. 기본적으로 다음 기능은 사용할 수 없습니다.
- 스튜디오에서 데이터 미리 보기.
- 디자이너에서 데이터 시각화
- 디자이너에서 모델 배포
- AutoML 실험 제출
- 레이블 지정 프로젝트 시작.
전체 스튜디오 기능을 사용하도록 설정하려면 가상 네트워크에서 Azure Machine Learning 스튜디오 사용을 참조하세요.
제한 사항
ML 지원 데이터 레이블 지정은 가상 네트워크 뒤에서 기본 스토리지 계정을 지원하지 않습니다. 대신, ML 지원 데이터 레이블 지정에 기본값 이외의 스토리지 계정을 사용합니다.
팁
기본 스토리지 계정이 아니면, 데이터 레이블 지정에 사용되는 계정을 가상 네트워크 뒤에서 보호할 수 있습니다.
방화벽 설정 구성하기
Azure Machine Learning 작업 영역 리소스와 퍼블릭 인터넷 간 트래픽을 제어하도록 방화벽을 구성합니다. Azure Firewall이 권장되지만, 다른 방화벽 제품을 사용해도 됩니다.
방화벽 설정에 대한 자세한 내용은 방화벽 뒤에 작업 영역 사용을 참조하세요.
사용자 지정 DNS
가상 네트워크에 대한 사용자 지정 DNS 솔루션을 사용해야 하는 경우 작업 영역에 대한 호스트 레코드를 추가해야 합니다.
필요한 도메인 이름 및 IP 주소에 대한 자세한 내용은 사용자 지정 DNS 서버에서 작업 영역을 사용하는 방법을 참조하세요.
Microsoft Sentinel
Microsoft Sentinel은 Azure Machine Learning과 통합할 수 있는 보안 솔루션입니다. 예를 들어 Azure Machine Learning을 통해 제공된 Jupyter Notebook을 사용합니다. 자세한 내용은 Jupyter Notebook을 사용하여 보안 위협 헌팅을 참조하세요.
퍼블릭 액세스
공용 엔드포인트에서 정상인 경우 Microsoft Sentinel에서 자동으로 작업 영역을 만들 수 있습니다. 이 구성에서 SOC(보안 운영 센터) 분석가 및 시스템 관리자는 Sentinel을 통해 작업 영역의 Notebook에 연결합니다.
이 프로세스에 대한 자세한 내용은 Microsoft Sentinel에서 Azure Machine Learning 작업 영역 만들기를 참조하세요.
프라이빗 엔드포인트
VNet에서 작업 영역 및 연결된 리소스를 보호하려면 먼저 Azure Machine Learning 작업 영역을 만들어야 합니다. 또한 작업 영역과 동일한 VNet에 가상 머신 '점프 상자'를 만들고 Azure Bastion 연결을 활성화해야 합니다. 공용 구성과 마찬가지로 SOC 분석가 및 관리자는 Microsoft Sentinel을 사용하여 연결할 수 있지만 VM에 연결하려면 Azure Bastion을 사용하여 일부 작업을 수행해야 합니다.
이 구성에 대한 자세한 내용은 Microsoft Sentinel에서 Azure Machine Learning 작업 영역 만들기를 참조하세요.
관련 콘텐츠
이 문서는 Azure Machine Learning 워크플로 보안에 대한 시리즈의 일부입니다. 이 시리즈의 다른 문서를 참조하세요.