격리된 환경 아키텍처는 강화된 연결 기준을 상속하고 프라이빗 작업 영역 액세스 및 필요한 외부 방화벽의 두 가지 요구 사항을 추가합니다. 작업 영역에 대한 액세스는 VPN 또는 인바운드 Private Link를 통해서만 허용되며, 공용 인터넷을 통해서는 절대 허용되지 않습니다. 모든 클래식 컴퓨팅 송신은 검사 및 정책 적용을 위해 방화벽을 통해 흐릅니다.
이 아키텍처에는 다음이 있습니다.
- 전체 네트워크 격리: 모든 트래픽은 프라이빗 연결을 통해 흐릅니다.
- 프라이빗 작업 영역 액세스: VPN 또는 인바운드 Private Link를 통해서만 가능합니다. 공용 인터넷에서 작업 영역에 연결할 수 없습니다.
- 필수 송신 검사: 모든 클래식 컴퓨트 아웃바운드 트래픽에 대한 방화벽 검사입니다.
- 데이터 반출 방지: 네트워크 계층 제어는 무단 데이터 전송을 차단합니다.
다음과 같은 경우 이 아키텍처를 사용합니다.
- 작업 영역 액세스는 VPN 또는 인바운드 Private Link 통해와 같이 비공개여야 합니다.
- 금융 서비스, 의료, 정부 등 규제가 높은 산업의 데이터 처리
- 규정 준수 프레임워크에는 송신 컨트롤(예: SOC 2, HIPAA, PCI DSS 및 FedRAMP)이 필요합니다.
- 엔터프라이즈 제로 트러스트 보안 프레임워크 구현
- 데이터 반출 방지는 요구 사항입니다.
사전 요구 사항
- VNet이 삽입된 작업 영역이 있는 Azure Azure Databricks Premium 계층.
- 기존 VPN 인프라 또는 인바운드 Private Link 연결
- 방화벽 또는 NVA(네트워크 가상 어플라이언스).
아키텍처 개요
격리된 환경 아키텍처는 방화벽 검사를 사용하여 프라이빗 연결을 통해 모든 트래픽을 라우팅합니다.
| 트래픽 유형 | Path |
|---|---|
| 사용자 액세스 | 사용자 → VPN 또는 인바운드 프라이빗 링크 → 작업 영역 |
| 기존 컴퓨팅 → 제어 | 컴퓨팅 → 클래식 Private Link → Azure Databricks 컨트롤 플레인 |
| 클래식 컴퓨팅 → 클라우드 | 컴퓨팅 → 서비스 엔드포인트 또는 UDR → Azure 서비스 |
| 서버리스 → 사용자 리소스 | 서버리스 컴퓨팅 → NCC 프라이빗 엔드포인트 → Azure 리소스 |
| 기존 컴퓨팅 → 데이터 송신 | 컴퓨팅 → 외부 방화벽(필수) → 검사된 인터넷 |
필수 구성 요소
Inbound
작업 영역은 VPN, 인바운드 Private Link 또는 기존 인프라에 따라 둘 다와 같은 프라이빗 연결을 통해서만 연결할 수 있습니다. 고객은 일반적으로 여러 개를 함께 적용하기보다 하나만 선택합니다.
프라이빗 액세스 설정(공용 액세스 사용 안 함)
이는 실제로 퍼블릭 인그레스를 차단하는 제어 기능입니다. 이 작업이 없으면 작업 영역은 Private Link 구성된 경우에도 인터넷 트래픽을 허용합니다. Private Link 유일한 경로가 아니라 추가 경로가 됩니다.
작업 영역의 공유 네트워크 액세스를 Azure 포털에서 Disabled로 설정합니다. 이렇게 하면 작업 영역 UI 및 API에 대한 공용 수신이 차단됩니다.
작업 영역 유입 제어
권장되는 수신 정책 프레임워크 인 CBI(컨텍스트 기반 수신)를 통해 작업 영역 수신을 구성합니다. CBI 규칙은 네트워크 원본(IP 범위), ID, 인증 메커니즘 및 액세스 범위를 단일 허용/거부 모델로 결합하므로 네트워크 원본 특성은 독립 실행형 IP 액세스 목록 기능과 동일한 작업을 수행합니다.
IP 액세스 목록은 계속 지원되며 CBI와 함께 구성할 수 있습니다. 둘 다 구성된 경우 두 컨트롤에서 요청을 허용해야 합니다.
구성 수준:
- 계정 수준 CBI 정책: 계정의 모든 작업 영역에 적용합니다. 컨텍스트 기반 수신 정책 관리를 참조하세요.
- 작업 영역 수준 IP 액세스 목록: 단일 작업 영역에 적용합니다. 작업 영역에 대한 IP 액세스 목록 구성을 참조하세요.
- 계정 수준 IP 액세스 목록: 계정 콘솔에 적용합니다. 계정 콘솔에 대한 IP 액세스 목록 구성을 참조 하세요.
모범 사례:
- 광범위하게 시작하고 실제 사용량에 따라 구체화합니다.
- 목적 및 만료 날짜가 있는 문서 IP 범위입니다.
- 정상 알려진 IP 범위를 통해 관리자 액세스를 유지 관리합니다.
- 분기별로 검토하고 사용되지 않는 범위를 제거합니다.
경고
인그레스 정책 및 IP 액세스 목록은 잘못 구성되면 작업 영역에 접근하지 못하게 할 수 있습니다. 항상 알려진 정상 IP 범위를 통해 관리자 액세스를 유지 관리합니다.
OpenSharing 받는 사람 액세스 제어
OpenSharing은 받는 사람 개체에 구성된 자체 IP 액세스 목록을 사용합니다. 이는 워크스페이스 IP 액세스 목록과는 별개이며 컨텍스트 기반 인그레스에는 포함되지 않습니다. Databricks-to-Open 공유(Azure Databricks 아닌 받는 사람)에만 적용됩니다.
IP 액세스 목록을 사용하여 OpenSharing 받는 사람 액세스 제한(Databricks-to-Open 공유)을 참조하세요.
인바운드 연결
작업 영역 UI 및 API에 대한 사용자 액세스를 위한 프라이빗 연결을 설정합니다. 사용자는 VPN 또는 인바운드 Private Link를 통해 작업 영역에 액세스하며, 공용 인터넷을 통해서는 절대 액세스하지 않습니다.
사용자 지정 DNS
Azure Databricks 엔드포인트가 프라이빗 IP 주소로 확인되도록 프라이빗 DNS를 구성합니다.
Azure 프라이빗 엔드포인트를 만들 때 자동으로 프라이빗 DNS 영역을 만듭니다.
아웃바운드
서버리스 송신 컨트롤(네트워크 정책 및 NCC 프라이빗 엔드포인트)은 강화된 연결 기준에서 상속됩니다. 이 아키텍처는 Hardened에서는 선택 사항인 외부 방화벽을 전체 클래식 컴퓨트 송신 트래픽 검사를 위해 필수로 만듭니다.
외부 방화벽(필수)
검사, 로깅 및 정책 적용을 위해 방화벽을 통해 모든 송신 트래픽을 라우팅합니다. 옵션은 다음과 같습니다.
- Azure Firewall 또는 타사 NVA(네트워크 가상 어플라이언스)입니다.
팁 (조언)
아티팩트 스토리지를 Azure Databricks 서비스 엔드포인트 정책을 사용하여 방화벽을 우회하여 데이터 전송 비용을 절감합니다. 아티팩트 스토리지만 클러스터 노드당 다운로드된 최대 11GB를 차지할 수 있습니다.
방화벽 규칙에서 허용해야 하는 필수 Azure Databricks 엔드포인트는 Azure Databricks 서비스 및 자산의 IP 주소와 도메인을 참조하세요.
팁 (조언)
최대 잠금을 위해 Python, R 및 Maven 패키지에 대한 프라이빗 패키지 리포지토리(예: JFrog Artifactory 또는 Sonatype Nexus)를 호스팅하는 것이 좋습니다. 이렇게 하면 PyPI와 같은 공용 패키지 인덱스에 대한 액세스를 허용하는 방화벽 규칙이 필요하지 않습니다.
경고
Azure Databricks 컨트롤 플레인 및 SCC 릴레이 연결은 인증서 고정과 함께 TLS를 사용합니다. 클러스터와 Azure Databricks 컨트롤 플레인 간의 트래픽에서 TLS 검사(암호 해독 및 다시 암호화)를 사용하도록 설정하지 마세요. 이렇게 하면 클러스터 오류가 발생합니다. TLS 가로채기 없이 대상 FQDN 또는 IP별로 이러한 연결을 허용하도록 방화벽 규칙을 구성합니다. 필수 엔드포인트는 Azure Databricks 서비스 및 자산에 대한 IP 주소 및 도메인을 참조하세요.
Important
잘못 구성된 방화벽 규칙은 Azure Databricks 기능을 손상할 수 있습니다. 비프로덕션 환경에서 철저히 테스트합니다.
데이터 반출 보호
무단 데이터 반출을 방지하도록 네트워크 정책 및 방화벽 컨트롤을 구성합니다.
- 네트워크 정책을 통한 서버리스 송신 제어
- 방화벽/NVA를 경유하는 기존 컴퓨팅 아웃바운드 트래픽
- 승인된 데이터 대상에 대한 프라이빗 엔드포인트 규칙입니다.
구현 지침은 데이터 반출 보호를 참조하세요.
클래식 컴퓨팅 기준
클래식 컴퓨팅 기준은 관리되는 보안에서 상속되며 클라우드 서비스 엔드포인트는 강화된 연결에서 상속됩니다. 이 아키텍처에는 추가 클래식 컴퓨팅 구성 요소가 필요하지 않습니다.
기준에는 VNet 주입, SCC(Secure Cluster Connectivity) 및 클래식 Private Link 포함됩니다. 클라우드 서비스 엔드포인트에는 고객 관리형 스토리지 계정에 대한 UDR(사용자 정의 경로), 서비스 엔드포인트 및 프라이빗 엔드포인트가 포함됩니다.
데이터 액세스를 위한 반출 방식
컴퓨팅 리소스에서 아웃바운드 데이터 액세스를 처리하는 방법에는 두 가지가 있습니다.
방화벽이 있는 NAT 게이트웨이: 아웃바운드 연결을 위한 NAT 게이트웨이를 배포하고 검사를 위해 방화벽을 통해 트래픽을 라우팅합니다. 이 방법을 사용하면 외부 패키지 리포지토리 및 API에 대한 제어된 액세스를 허용하고 트래픽 패턴에 대한 가시성을 유지합니다. 외부 리소스에 액세스해야 하지만 검사 및 로깅이 필요한 경우 이 방법을 사용합니다.
NAT 게이트웨이 없음(완전 프라이빗): 컴퓨팅 리소스에서 모든 공용 통신을 제거하기 위해 NAT 게이트웨이를 완전히 제거합니다. 모든 데이터 액세스는 프라이빗 엔드포인트 및 VPC 엔드포인트를 통해서만 발생합니다. 이 방법은 공용 송신 경로를 통해 데이터 반출 가능성을 제거하여 최고 수준의 보안을 유지합니다. 조직에서 컴퓨팅 리소스에서 공용 인터넷 통신을 금지하는 경우 이 방법을 사용합니다.
Implementation
배포된 강화 연결 기준부터 시작합니다. 다음 단계에서는 이 아키텍처를 정의하는 프라이빗 작업 영역 액세스 및 필요한 외부 방화벽을 추가합니다.
1단계: 인바운드 컨트롤
- Azure Azure Databricks UI 및 API에 대한 사용자 액세스가 공용 IP 대신 비공개로 라우팅되도록 인바운드 Private Link 구성합니다. 인바운드 프라이빗 링크 구성을 참조하세요.
- 작업 영역의 공유 네트워크 액세스를 Azure 포털에서 Disabled로 설정합니다. 실제로 퍼블릭 인그레스를 차단하는 것은 바로 이것입니다. 이것이 없으면 인바운드 Private Link가 구성된 경우에도 작업 영역은 여전히 인터넷 트래픽을 허용합니다.
- VPN 또는 Private Link 통해 사용자 액세스를 테스트하여 인증된 사용자가 프라이빗 네트워크 경로를 통해서만 작업 영역에 도달할 수 있고 공용 액세스가 차단되어 있는지 확인합니다.
2단계: 외부 방화벽(필수)
- 허브 VNet에 Azure Firewall 또는 타사 NVA(네트워크 가상 어플라이언스)를 배포하고 VNet 피어링 또는 가상 허브를 사용하여 작업 영역 VNet을 연결합니다.
- Azure Databricks 컴퓨팅의 아웃바운드 트래픽이 허브 방화벽을 통해 흐르도록 방화벽에 대한 기본 경로를 사용하여 작업 영역 서브넷에서 UDR(사용자 정의 경로)을 구성합니다. Azure Databricks에 대한 사용자 정의 경로 설정을 참조하세요.
- 제어 평면 및 SCC 릴레이 트래픽에 대한 TLS 가로채기 없이 필요한 Azure Databricks 엔드포인트(IP 주소 및 Azure Databricks 서비스 및 자산에 대한 도메인 참조)만 허용하도록 Azure Firewall 애플리케이션 및 네트워크 규칙을 구성합니다.
3단계: 유효성 검사
- Azure Firewall 로그와 진단을 검토하여 아웃바운드 제어를 검증하고, Azure Databricks 트래픽이 정책에 따라 검사 및 제한되고 있는지 확인하세요.
- 작업 영역 VNet의 클러스터 노드 또는 기타 Azure Databricks 관리형 컴퓨팅 리소스에 공용 IP 주소가 할당되지 않는지 확인합니다.
- 모든 제어, 데이터 및 들어오는 트래픽이 설계된 대로 구성된 Private Link 엔드포인트 및 허브 방화벽을 통해 흐르는지 확인합니다.
Azure Databricks Terraform SRA는 이 배포 패턴의 시작점으로 코드 기반 인프라 템플릿을 제공합니다.
Validation
아키텍처를 배포한 후 다음 검사를 실행하여 전체 네트워크 격리, 프라이빗 연결 및 송신 컨트롤이 구성된 대로 작동하는지 확인합니다.
| 확인 | 예상 결과 |
|---|---|
| VPN을 통해 액세스할 수 있는 작업 영역 | Yes |
| VPN 없이 액세스할 수 있는 작업 영역 | No |
| SCC를 사용하여 클러스터 시작 | 예, 공용 IP 없음 |
| 프라이빗 연결을 통한 데이터 액세스 | Yes |
| 방화벽 승인 없이 아웃바운드 차단됨 | Yes |
| DNS가 사설 IP 주소로 확인됨 | Yes |
Troubleshooting
유효성 검사에 실패하거나 워크로드가 필요한 엔드포인트에 연결할 수 없는 경우 다음 클라우드별 테이블을 사용하여 일반적인 문제를 진단합니다.
| Issue | 원인 | 해결 방법 |
|---|---|---|
| 클러스터를 시작하지 못했습니다. | 방화벽에 의해 차단된 필수 엔드포인트 또는 SCC, Azure Databricks 제어 평면, 스토리지 계정용으로 잘못 구성된 프라이빗 엔드포인트(NSG 규칙, 라우팅) | 방화벽 로그를 검토하고 Azure Databricks 인프라 규칙을 추가합니다. 프라이빗 엔드포인트 NSG 규칙이 클러스터 서브넷의 트래픽을 허용하는지 확인하고 UDR을 확인합니다. |
| DNS 확인 실패 | 잘못 구성된 프라이빗 DNS | 프라이빗 DNS 영역 및 VNet 링크 확인 |
| 스토리지 액세스 실패 | 프라이빗 엔드포인트 또는 라우팅 문제 | 프라이빗 엔드포인트 구성 및 경로 테이블 확인 |
| 패키지 설치 실패 | 방화벽에 의해 차단된 PyPI | 방화벽 허용 목록에 PyPI 추가 |
지속적인 유지 관리
- 방화벽 규칙: 송신 허용 목록을 정기적으로 검토하고 업데이트합니다.
- DNS 관리: 작업 영역을 추가할 때 레코드를 업데이트합니다.
- 엔드포인트 모니터링: 프라이빗 엔드포인트 상태 및 데이터 전송 비용을 추적합니다.
- 네트워크 정책: 승인된 새 데이터 원본에 대한 프라이빗 엔드포인트를 추가합니다.
- 방화벽 제거: 방화벽 운영 오버헤드가 너무 높거나 규정 준수 요구 사항이 완화되면 방화벽 구성 요소를 제거하고 프라이빗 연결 및 VPN 액세스를 유지할 수 있습니다.
- 강화된 연결로 다운그레이드: 프라이빗 작업 영역 액세스가 생산성 장벽이 되는 경우.
다음 단계
| Resource | Description |
|---|---|
| 데이터 반출 보호 | 데이터 반출을 방지하기 위해 네트워크 및 Unity 카탈로그 컨트롤을 결합하기 위한 자세한 참조 아키텍처입니다. |
| 네트워킹 | Azure Databricks 대한 네트워킹 옵션 및 개념입니다. |