보안 작업 영역을 사용하는 경우의 네트워크 트래픽 흐름
Azure Machine Learning 작업 영역 및 관련 리소스를 Azure Virtual Network에 배치하면 리소스 간의 네트워크 트래픽이 변경됩니다. 가상 네트워크가 없으면 네트워크 트래픽이 퍼블릭 인터넷을 통해 또는 Azure 데이터 센터 내에서 흐릅니다. 가상 네트워크를 도입한 후 네트워크 보안을 강화할 수도 있습니다. 예를 들어, 가상 네트워크와 공용 인터넷 간의 인바운드 및 아웃바운드 통신을 차단할 수 있습니다. 그러나 Azure Machine Learning을 사용하려면 퍼블릭 인터넷의 일부 리소스를 액세스해야 합니다. 예를 들어, 배포 및 관리 작업에 Azure Resource Manager를 사용합니다.
이 문서에는 공용 인터넷에서 들어오고 나가는 필수 트래픽이 나열되어 있습니다. 또한 다음 시나리오에서 클라이언트 개발 환경과 보안 Azure Machine Learning 작업 영역 간에 네트워크 트래픽이 흐르는 방식을 설명합니다.
Azure Machine Learning 스튜디오를 사용하여 다음을 사용합니다.
- 작업 영역
- AutoML
- Designer
- 데이터 세트 및 데이터 저장소
Azure Machine Learning 스튜디오는 웹 브라우저에서 부분적으로 실행되는 웹 기반 UI입니다. 모델 학습, 디자이너 사용, 데이터 세트 보기 등의 작업을 수행하기 위해 Azure 서비스를 호출합니다. 이러한 호출 중 일부는 Azure Machine Learning SDK, Azure CLI, REST API 또는 Visual Studio Code를 사용하는 경우와 다른 통신 흐름을 사용합니다.
Azure Machine Learning 스튜디오, Azure Machine Learning SDK, Azure CLI 또는 REST API를 사용하여 다음 작업을 수행합니다.
- 컴퓨팅 인스턴스 및 클러스터
- AKS(Azure Kubernetes Service)
- Azure Machine Learning이 관리하는 Docker 이미지
시나리오 또는 작업이 여기에 나열되지 않으면 보안 작업 영역을 사용하거나 사용하지 않은 상태로 동일한 작업을 수행해야 합니다.
가정
이 문서에서는 다음 구성을 가정합니다.
- Azure Machine Learning 작업 영역은 프라이빗 엔드포인트를 사용하여 가상 네트워크와 통신합니다.
- 작업 영역에서 사용하는 Azure Storage 계정, 키 자격 증명 모음 및 컨테이너 레지스트리도 프라이빗 엔드포인트를 사용하여 가상 네트워크와 통신합니다.
- 클라이언트 워크스테이션은 VPN Gateway 또는 Azure ExpressRoute를 사용하여 가상 네트워크에 액세스합니다.
인바운드 및 아웃바운드 요구 사항
시나리오 | 필수 인바운드 | 필수 아웃바운드 | 추가 구성 |
---|---|---|---|
스튜디오에서 작업 영역에 액세스 | 해당 없음 |
|
사용자 지정 DNS 서버를 사용해야 할 수도 있습니다. 자세한 내용은 사용자 지정 DNS 서버로 작업 영역 사용을 참조하세요. |
스튜디오의 AutoML, 디자이너, 데이터 세트 및 데이터 저장소를 사용합니다. | 해당 없음 | 해당 없음 |
|
컴퓨팅 인스턴스 및 컴퓨팅 클러스터 사용 |
|
|
방화벽을 사용하는 경우 사용자 정의 경로를 만듭니다. 자세한 내용은 인바운드 및 아웃바운드 네트워크 트래픽 구성을 참조하세요. |
Azure Kubernetes Service 사용 | 해당 없음 | AKS의 아웃바운드 구성에 대한 자세한 내용은 보안 Azure Kubernetes Service 유추 환경을 참조하세요. | |
Azure Machine Learning이 관리하는 Docker 이미지 사용 | 해당 없음 | Microsoft 아티팩트 레지스트리 | 작업 영역의 컨테이너 레지스트리가 가상 네트워크 뒤에 있는 경우 컴퓨팅 클러스터를 사용하여 이미지를 빌드하도록 작업 영역을 구성합니다. 자세한 내용은 가상 네트워크로 Azure Machine Learning 작업 영역 보호를 참조하세요. |
스토리지 계정의 목적
Azure Machine Learning는 여러 스토리지 계정을 사용합니다. 각각은 서로 다른 데이터를 저장하고 용도가 다릅니다.
스토리지: Azure 구독의 스토리지 계정은 모델, 학습 데이터, 학습 로그 및 Python 스크립트와 같은 데이터와 아티팩트를 저장합니다. 예를 들어, 작업 영역에 대한 기본 스토리지 계정은 구독에 있습니다. Azure Machine Learning 컴퓨팅 인스턴스 및 컴퓨팅 클러스터는 포트 445(SMB) 및 443(HTTPS)를 통해 이 스토리지의 파일 및 Blob 데이터에 액세스합니다.
컴퓨팅 인스턴스 또는 컴퓨팅 클러스터를 사용하는 경우 스토리지 계정은 SMB 프로토콜을 통해 파일 공유로 탑재됩니다. 컴퓨팅 인스턴스와 클러스터는 이 파일 공유를 사용하여 데이터, 모델, Jupyter Notebooks 및 데이터 세트와 같은 항목을 저장합니다. 컴퓨팅 인스턴스와 클러스터는 스토리지 계정에 액세스할 때 프라이빗 엔드포인트를 사용합니다.
Microsoft Store: Azure Machine Learning 컴퓨팅 인스턴스와 컴퓨팅 클러스터는 Azure Batch를 사용합니다. Microsoft 구독에 있는 스토리지에 액세스합니다. 이 스토리지는 컴퓨팅 인스턴스 또는 클러스터를 관리하는 데만 사용됩니다. 데이터는 여기에 저장되지 않습니다. 컴퓨팅 인스턴스 및 컴퓨팅 클러스터는 포트 443(HTTPS)을 사용하여 이 스토리지의 Blob, 테이블 및 큐 데이터에 액세스합니다.
또한 Machine Learning은 Azure Cosmos DB 인스턴스에 메타데이터를 저장합니다. 기본적으로 이 인스턴스는 Microsoft 구독에서 호스트되며 Microsoft에서 관리합니다. 필요에 따라 Azure 구독에서 Azure Cosmos DB 인스턴스를 사용할 수 있습니다. 자세한 내용은 Azure Machine Learning과 데이터 통합을 참조하세요.
시나리오: 스튜디오에서 작업 영역에 액세스
참고 항목
이 섹션의 정보는 Azure Machine Learning 스튜디오에서 작업 영역을 사용하는 것과 관련이 있습니다. Azure Machine Learning SDK, REST API, Azure CLI 또는 Visual Studio Code를 사용하는 경우 이 섹션의 정보가 적용되지 않습니다.
스튜디오에서 작업 영역에 액세스할 때 네트워크 트래픽 흐름은 다음과 같습니다.
- 리소스를 인증하기 위해 구성에서는 Microsoft Entra ID를 사용합니다.
- 관리 및 배포 작업을 위해 구성에서는 Azure Resource Manager를 사용합니다.
- Azure Machine Learning과 관련된 작업의 경우 구성에서는 Azure Machine Learning Services를 사용합니다.
- Azure Machine Learning 스튜디오에 액세스하기 위해 구성에서는 Azure Front Door를 사용합니다.
- 대부분의 스토리지 작업에서 트래픽은 작업 영역에 대한 기본 스토리지의 프라이빗 엔드포인트를 통해 흐릅니다. 이 문서의 스튜디오의 AutoML, 디자이너, 데이터 세트 및 데이터 저장소 사용 섹션에서는 예외에 대해 설명합니다.
- 또한 가상 네트워크 내의 리소스 이름을 확인할 수 있는 DNS 솔루션도 구성해야 합니다. 자세한 내용은 사용자 지정 DNS 서버로 작업 영역 사용을 참조하세요.
시나리오: 스튜디오의 AutoML, 디자이너, 데이터 세트, 데이터 저장소 사용
Azure Machine Learning 스튜디오의 다음 기능은 데이터 프로파일링을 사용합니다.
- 데이터 세트: 스튜디오에서 데이터 세트를 탐색합니다.
- 디자이너: 모듈 출력 데이터를 시각화합니다.
- AutoML: 데이터 미리 보기 또는 프로필을 보고 대상 열을 선택합니다.
- 레이블 지정: 레이블을 사용하여 기계 학습 프로젝트를 위한 데이터를 준비합니다.
데이터 프로파일링은 작업 영역의 기본 Azure Storage 계정에 액세스하는 Azure Machine Learning 관리되는 서비스의 기능에 따라 다릅니다. 관리되는 서비스는 가상 네트워크에 존재하지 않으므로 가상 네트워크의 스토리지 계정에 직접 액세스할 수 없습니다. 대신 작업 영역에서는 서비스 주체를 사용하여 스토리지에 액세스합니다.
팁
작업 영역을 만들 때 서비스 주체를 입력할 수 있습니다. 그러지 않으면 사용자를 위해 하나가 만들어지고 작업 영역과 동일한 이름을 갖게 됩니다.
스토리지 계정에 대한 액세스를 허용하려면 작업 영역에 대한 리소스 인스턴스를 허용하도록 스토리지 계정을 구성하거나 신뢰할 수 있는 서비스 목록의 Azure 서비스가 이 스토리지 계정에 액세스하도록 허용을 선택합니다. 이 설정을 통해 관리되는 서비스가 Azure 데이터 센터 네트워크를 통해 스토리지에 액세스할 수 있습니다.
그런 다음, 작업 영역에 대한 서비스 주체를 스토리지 계정의 프라이빗 엔드포인트에 대한 읽기 권한자 역할에 추가합니다. Azure는 이 역할을 사용하여 작업 영역 및 스토리지 서브넷 정보를 확인합니다. 동일하면 Azure에서 액세스를 허용합니다. 마지막으로, 서비스 주체는 스토리지 계정에 대한 Blob 데이터 기여자 액세스 권한도 필요합니다.
자세한 내용은 가상 네트워크로 Azure Machine Learning 작업 영역 보호의 "Azure Storage 계정 보안" 섹션을 참조하세요.
시나리오: 컴퓨팅 인스턴스 및 컴퓨팅 클러스터 사용
Azure Machine Learning 컴퓨팅 인스턴스 및 컴퓨팅 클러스터는 Microsoft에서 호스팅하는 관리되는 서비스입니다. 이러한 서비스는 Azure Batch 서비스를 토대로 빌드됩니다. Microsoft 관리 환경에 존재하지만 가상 네트워크에도 삽입됩니다.
컴퓨팅 인스턴스 또는 컴퓨팅 클러스터를 만들면 가상 네트워크에 다음 리소스도 만들어집니다.
필요한 아웃바운드 규칙이 있는 네트워크 보안 그룹. 이러한 규칙은 Azure Machine Learning(포트 44224의 TCP) 및 Azure Batch(포트 29876~29877의 TCP)의 인바운드 액세스를 허용합니다.
Important
방화벽을 사용하여 가상 네트워크에 대한 인터넷 액세스를 차단하는 경우 이 트래픽을 허용하도록 방화벽을 구성해야 합니다. 예를 들어 Azure Firewall을 사용하면 사용자 정의 경로를 만들 수 있습니다. 자세한 내용은 인바운드 및 아웃바운드 네트워크 트래픽 구성을 참조하세요.
공용 IP 주소가 있는 부하 분산 장치.
또한 다음 서비스 태그에 대한 아웃바운드 액세스를 허용합니다. 각 태그에 대해 region
을 컴퓨팅 인스턴스 또는 클러스터의 Azure 지역으로 바꿉니다.
Storage.region
: 이 아웃바운드 액세스는 Azure Batch 관리되는 가상 네트워크 내부의 Azure Storage 계정에 연결하는 데 사용됩니다.Keyvault.region
: 이 아웃바운드 액세스는 Azure Batch 관리되는 가상 네트워크 내부의 Azure Key Vault 계정에 연결하는 데 사용됩니다.
컴퓨팅 인스턴스 또는 클러스터의 데이터 액세스는 가상 네트워크에 대한 스토리지 계정의 프라이빗 엔드포인트를 통과합니다.
컴퓨팅 인스턴스에서 Visual Studio Code를 사용하는 경우 다른 아웃바운드 트래픽을 허용해야 합니다. 자세한 내용은 인바운드 및 아웃바운드 네트워크 트래픽 구성을 참조하세요.
시나리오: 온라인 엔드포인트 사용
관리형 온라인 엔드포인트에 대해 인바운드 및 아웃바운드 통신에 대한 보안을 별도로 구성합니다.
인바운드 통신
엔드포인트에서 public_network_access
플래그를 사용하면 온라인 엔드포인트의 채점 URL과의 인바운드 통신을 보호할 수 있습니다. 플래그를 disabled
로 설정하면 온라인 엔드포인트가 Azure Machine Learning 작업 영역의 프라이빗 엔드포인트를 통해 클라이언트의 가상 네트워크에서만 트래픽을 수신하게 됩니다.
Azure Machine Learning 작업 영역의 public_network_access
플래그는 온라인 엔드포인트의 표시 유형도 제어합니다. 이 플래그가 disabled
이면 채점 엔드포인트는 작업 영역에 대한 프라이빗 엔드포인트를 포함하는 가상 네트워크에서만 액세스할 수 있습니다. 이 플래그가 enabled
이면 채점 엔드포인트는 가상 네트워크 및 공용 네트워크에서 액세스할 수 있습니다.
아웃바운드 통신
Azure Machine Learning 작업 영역에 대한 관리되는 가상 네트워크 격리를 사용하면 작업 영역 수준에서 배포로부터 아웃바운드 통신을 보호할 수 있습니다. 이 설정을 사용하면 Azure Machine Learning이 작업 영역에 대한 관리되는 가상 네트워크를 만듭니다. 작업 영역의 관리되는 가상 네트워크의 모든 배포에서는 아웃바운드 통신에 가상 네트워크의 프라이빗 엔드포인트를 사용할 수 있습니다.
아웃바운드 통신 보안을 위한 레거시 네트워크 격리 방법은 배포의 egress_public_network_access
플래그를 사용하지 않도록 설정하여 작동했습니다. 대신 작업 영역 관리되는 가상 네트워크를 사용하여 배포용 아웃바운드 통신을 보호하는 것이 좋습니다. 레거시 방식과 달리 배포와 함께 작업 영역 관리되는 가상 네트워크를 사용할 때 배포에 대한 egress_public_network_access
플래그가 더 이상 적용되지 않습니다. 대신 작업 영역의 관리되는 가상 네트워크에 대해 설정한 규칙이 아웃바운드 통신을 제어합니다.
시나리오: Azure Kubernetes Service 사용
Azure Kubernetes Service에 필요한 아웃바운드 구성에 대한 자세한 내용은 가상 네트워크를 사용하여 Azure Machine Learning 유추 환경 보호를 참조하세요.
참고 항목
Azure Kubernetes Service 부하 분산 장치는 Azure Machine Learning에서 만드는 부하 분산 장치와 동일하지 않습니다. 가상 네트워크에서만 사용할 수 있는 보안 애플리케이션으로 모델을 호스팅하려면 Azure Machine Learning에서 만드는 내부 부하 분산 장치를 사용합니다. 공용 액세스를 허용하려면 Azure Machine Learning이 만드는 공용 부하 분산 장치를 사용합니다.
외부 데이터 원본과 같은 추가 인바운드 또는 아웃바운드 연결이 모델에 필요한 경우 네트워크 보안 그룹 또는 방화벽을 사용하여 트래픽을 허용합니다.
시나리오: Azure Machine Learning이 관리하는 Docker 이미지 사용
Azure Machine Learning은 모델을 학습하거나 유추를 수행하는 데 사용할 수 있는 Docker 이미지를 제공합니다. 이러한 이미지는 Microsoft 아티팩트 레지스트리에서 호스트됩니다.
제공하는 컨테이너 레지스트리와 같이 자체 Docker 이미지를 제공하는 경우 Artifact Registry와의 아웃바운드 통신이 필요하지 않습니다.
팁
컨테이너 레지스트리가 가상 네트워크에서 보호되는 경우 Azure Machine Learning은 이를 사용하여 Docker 이미지를 빌드할 수 없습니다. 대신, 이미지를 빌드할 Azure Machine Learning 컴퓨팅 클러스터를 지정해야 합니다. 자세한 내용은 가상 네트워크로 Azure Machine Learning 작업 영역 보호를 참조하세요.
다음 단계
이제 보안 구성에서 네트워크 트래픽이 흐르는 방법을 배웠으므로 가상 네트워크 격리 및 개인 정보에 대한 개요 문서를 참조하여 가상 네트워크에서 Azure Machine Learning 보호에 대해 자세히 알아보세요.
모범 사례에 대해 알아보려면 엔터프라이즈 보안에 대한 Azure Machine Learning 모범 사례 문서를 읽어보세요.