주요 컨텐츠로 이동
보안 및 신뢰

Azure Databricks에서 Azure 데이터 소스에 안전하게 액세스하기

작성자: 바빈 쿠카디아, Abhinav Garg , Michal Marusan

Azure Databricks는 Microsoft Azure 클라우드의 일부인 통합 데이터 분석 플랫폼입니다. Delta Lake, MLFlow, KoalasApache Spark를 기반으로 구축된 Azure Databricks는 원클릭 설정, 다른 Azure 서비스와의 기본 통합, 대화형 작업 공간, 엔터프라이즈급 보안을 제공하는 Microsoft Azure 클라우드의 첫 번째 파티 서비스로, 소규모부터 대규모 글로벌 고객까지 데이터 및 AI 사용 사례를 지원합니다. 이 플랫폼은 데이터 엔지니어, 데이터 과학자, 데이터 분석가, SecOps/클라우드 엔지니어링과 같은 다양한 기업의 데이터 전문가 간의 진정한 협업을 가능하게 합니다.

두 개의 시리즈 중 첫 번째인 이 블로그에서는 Azure Databricks 아키텍처 개요와 고객이 자체 관리형 Azure 데이터 서비스 인스턴스에 안전하게 연결하는 방법을 설명합니다.

Azure Databricks 아키텍처 개요

Azure Databricks는 Azure 클라우드의 관리형 애플리케이션입니다. 개략적으로 아키텍처는 제어/관리 평면과 데이터 평면으로 구성됩니다. 제어 평면은 Microsoft에서 관리하는 구독에 있으며 웹 애플리케이션, 클러스터 관리자, 작업 서비스 등의 서비스를 포함합니다. 기본 배포에서 데이터 평면은 고객 구독의 완전 관리형 구성 요소로, VNET, NSGDBFS로 알려진 루트 스토리지 계정을 포함합니다.

SecOps 및 클라우드 엔지니어링 팀이 엔터프라이즈 거버넌스 정책에 따라 서비스에 대한 보안 및 네트워크 아키텍처를 구축할 수 있도록 데이터 평면을 고객 관리 VNET에 배포할 수도 있습니다. 이 기능을 Bring Your Own VNET 또는 VNET Injection이라고 합니다. 그림은 이러한 고객 아키텍처의 대표적인 모습을 보여줍니다.

Azure 데이터 서비스에 대한 안전한 연결

엔터프라이즈 보안은 Databricks와 Microsoft 모두에서 소프트웨어를 구축하는 핵심 원칙이므로 Azure Databricks에서 최우선으로 고려됩니다. 이 블로그의 맥락에서 안전한 연결은 Azure Databricks에서 Azure 데이터 서비스로의 트래픽이 Azure 네트워크 백본에 유지되도록 보장하며, Azure Databricks를 허용된 소스로 화이트리스트에 추가할 수 있는 기능을 내장합니다. 보안 모범 사례로, 고객이 Azure Blob Storage, Azure Data Lake Store Gen2, Azure Synapse Data Warehouse, Azure CosmosDB 등과 같은 Azure 데이터 서비스에 액세스하는 메커니즘을 설정하는 데 사용할 수 있는 몇 가지 옵션을 권장합니다. Azure Private Link 및 서비스 엔드포인트에 대한 논의를 계속 읽어보세요.

옵션 1: Azure Private Link

Azure Databricks에서 Azure 데이터 서비스에 액세스하는 가장 안전한 방법은 Private Link를 구성하는 것입니다. Azure 설명서에 따르면 - Private Link를 사용하면 가상 네트워크의 Private Endpoint를 통해 Azure PaaS 서비스(예: Azure Storage, Azure Cosmos DB, SQL Database) 및 Azure 호스팅 고객/파트너 서비스에 액세스할 수 있습니다. 가상 네트워크와 서비스 간의 트래픽은 Microsoft 네트워크 백본을 통해 전송되어 공용 인터넷 노출을 제거합니다. 또한 가상 네트워크(VNet)에 자체 Private Link Service를 생성하여 고객에게 비공개로 제공할 수도 있습니다. Azure Private Link를 사용하는 설정 및 사용 경험은 Azure PaaS, 고객 소유 및 공유 파트너 서비스 전반에 걸쳐 일관됩니다. 자세한 내용은 이 문서를 참조하세요.

Azure Databricks와 Private Link를 함께 사용하는 방법에 대한 내용은 아래를 참조하세요.

Azure Databricks 및 Azure 데이터 서비스 Private Endpoint가 별도의 VNET에 있음

Azure Databricks 및 Azure 데이터 서비스 Private Endpoint가 동일한 VNET에 있음

Private Endpoint 고려 사항

Private Endpoint를 구현하기 전에 다음 사항을 고려하세요.

  • 기본적으로 데이터 유출을 방지합니다. Azure Databricks의 경우, 고객이 제어 평면의 특정 서비스에 대한 액세스를 화이트리스트에 추가하면 적용됩니다.
  • 트래픽을 Azure 네트워크 백본에 유지합니다. 즉, 데이터 흐름에 공용 네트워크를 사용하지 않습니다.
  • 가상 네트워크의 개인 주소 공간을 Azure 데이터 서비스로 확장합니다. 즉, Azure 데이터 서비스는 가상 네트워크의 IP를 효과적으로 얻고 더 큰 개인 네트워크의 일부로 취급될 수 있습니다.
  • 다른 지역의 Azure 데이터 서비스에 비공개로 연결합니다. 즉, 지역 A의 VNET은 Private Link를 통해 지역 B의 엔드포인트에 연결할 수 있습니다.
  • Private Link는 다른 안전한 액세스 메커니즘에 비해 설정이 다소 복잡합니다.
  • Private Link의 이점 및 서비스별 가용성에 대한 자세한 목록은 설명서를 참조하세요.

Private Link를 사용할 수 있는 한 가지 예는 고객이 Blob Storage, ADLS Gen2, SQL DB 등과 같이 프로덕션에서 Azure Databricks와 함께 몇 가지 Azure 데이터 서비스를 사용할 때입니다. 비즈니스에서는 사용자가 ADLS Gen2에서 마스킹된 집계 데이터에 쿼리할 수 있도록 하지만 다른 데이터 소스의 마스킹되지 않은 기밀 데이터에 액세스하는 것은 제한하고 싶어합니다. 이 경우 위에서 논의된 하위 옵션 중 하나를 사용하여 ADLS Gen2 서비스에 대해서만 Private Endpoint를 설정할 수 있습니다.

이러한 환경을 구성하는 방법은 다음과 같습니다.

1 - ADLS Gen2에 대한 Private Link 설정

2 - VNET에 Azure Databricks 배포

Azure 데이터 서비스당 둘 이상의 Private Link를 구성할 수 있으며, 이를 통해 엔터프라이즈 거버넌스 요구 사항을 충족하는 아키텍처를 구축할 수 있습니다.

옵션 2: Azure Virtual Network 서비스 엔드포인트

Azure 설명서에 따르면, Virtual Network(VNET) 서비스 엔드포인트는 virtual network의 개인 주소 공간을 확장합니다. 엔드포인트는 또한 VNet의 ID를 Azure 서비스로 직접 연결을 통해 확장합니다. 엔드포인트를 사용하면 중요한 Azure 서비스 리소스를 virtual network에만 안전하게 연결할 수 있습니다. VNet에서 Azure 서비스로의 트래픽은 항상 Microsoft Azure 네트워크 백본에 유지됩니다.

서비스 엔드포인트는 다음과 같은 이점을 제공합니다 (출처):

Azure 서비스 리소스에 대한 보안 강화

각기 다른 가상 네트워크의 프라이빗 주소 공간은 서로 겹칠 수 있습니다. 겹치는 네트워크 공간을 사용하여 특정 VNET에서 발생하는 트래픽을 고유하게 식별할 수는 없습니다. VNET의 서브넷에 서비스 엔드포인트를 사용하도록 설정하면 가상 네트워크 방화벽 규칙을 추가하여 VNET ID를 해당 리소스로 확장함으로써 Azure 데이터 서비스를 보호할 수 있습니다. 이러한 구성을 통해 해당 리소스에 대한 공개 액세스를 제거하고 VNET에서만 트래픽을 허용할 수 있습니다.

가상 네트워크에서 Azure 데이터 서비스 트래픽에 대한 최적의 라우팅

현재 클라우드/온프레미스 기반 가상 어플라이언스를 통해 공용 네트워크 헤더 트래픽을 지시하는 데 사용되는 VNET의 모든 경로는 Azure 데이터 서비스 트래픽에도 사용됩니다. 서비스 엔드포인트는 Azure 트래픽에 대한 최적의 라우팅을 제공합니다.

Azure 네트워크 백본에서 트래픽 유지

서비스 엔드포인트는 항상 Azure 데이터 서비스 트래픽을 VNET에서 Microsoft Azure 네트워크 백본의 리소스로 직접 라우팅합니다. Azure 네트워크 백본에서 트래픽을 유지하면 강제 터널링을 통해 가상 네트워크에서 나가는 인터넷 트래픽을 계속 감사하고 모니터링할 수 있으며, 데이터 서비스 트래픽에 영향을 주지 않습니다. 사용자 정의 경로 및 강제 터널링에 대한 자세한 내용은 Azure 가상 네트워크 트래픽 라우팅을 참조하세요.

간단한 설정과 관리 오버헤드 없음

IP 방화벽을 통해 Azure 데이터 서비스 리소스를 보호하기 위해 더 이상 가상 네트워크에 예약된 공용 IP 주소가 필요하지 않습니다. 서비스 엔드포인트를 설정하는 데 NAT(네트워크 주소 변환) 또는 게이트웨이 장치가 필요하지 않습니다. 서브넷에 대한 간단한 설정을 통해 서비스 엔드포인트를 구성할 수 있습니다. 엔드포인트를 유지하는 데 추가 오버헤드가 없습니다.

Azure Databricks와 함께하는 Azure 서비스 엔드포인트

Azure 서비스 엔드포인트 고려 사항

서비스 엔드포인트를 구현하기 전에 다음 사항을 고려하세요.

  • 기본적으로 데이터 유출을 방지하지 않습니다.
  • Azure 네트워크 백본에서 트래픽을 유지합니다. 즉, 데이터 흐름에 공용 네트워크를 사용하지 않습니다.
  • Azure 데이터 서비스로 프라이빗 네트워크 주소 공간을 확장하지 않습니다.
  • 다른 지역의 Azure 데이터 서비스에 비공개로 연결할 수 없습니다( 페어링된 지역 제외).
  • Azure 서비스 엔드포인트의 이점 및 제한 사항에 대한 자세한 목록은 설명서를 참조하세요.

Private Link에 대해 위에서 언급한 것과 동일한 예제를 사용하고 서비스 엔드포인트를 사용하면 어떻게 보일지 살펴보겠습니다. 이 경우 Azure Storage 서비스 엔드포인트를 Azure Databricks 서브넷에서 구성할 수 있으며, 동일한 서브넷을 ADLS Gen2 방화벽 규칙에서 화이트리스트에 추가할 수 있습니다.

이러한 환경은 다음과 같이 구성할 수 있습니다.

1 - ADLS Gen2에 대한 서비스 엔드포인트 설정

2 - VNET에 Azure Databricks 배포

3 - ADLS Gen2에서 IP 방화벽 규칙 구성

안전한 Azure 데이터 액세스 시작하기

Azure Databricks 환경에서 Azure 데이터 서비스에 안전하게 액세스하기 위한 몇 가지 옵션에 대해 논의했습니다. 비즈니스별 요구 사항에 따라 Azure Private Link 또는 가상 네트워크 서비스 엔드포인트를 사용할 수 있습니다. 네트워크 연결 접근 방식을 결정한 후에는 안전한 인증 접근 방식을 사용하여 해당 리소스에 연결할 수 있습니다.

이 시리즈의 다음 블로그에서는 위에서 논의된 옵션과 Azure 방화벽을 혼합하여 데이터 유출을 방지하는(즉, 데이터 손실 방지 아키텍처를 구현하는) 잘 잠긴 환경을 설정하는 방법에 대해 자세히 알아봅니다. 질문이 있으시면 Microsoft 또는 Databricks 계정 팀에 문의하세요.

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

최신 게시물을 이메일로 받아보세요

블로그를 구독하고 최신 게시물을 이메일로 받아보세요.