다음을 통해 공유


작업 영역 스토리지 계정에 대한 방화벽 지원 사용

각 Azure Databricks 작업 영역에는 작업 영역 스토리지 계정이라고 하는 관리되는 리소스 그룹에 연결된 Azure Storage 계정이 있습니다. 작업 영역 스토리지 계정에는 작업 영역 시스템 데이터(작업 출력, 시스템 설정 및 로그), DBFS 루트 및 경우에 따라 Unity 카탈로그 작업 영역 카탈로그가 포함됩니다. 이 문서에서는 ARM(Azure Resource Manager) 템플릿, Azure CLI 또는 PowerShell을 사용하여 권한 있는 리소스 및 네트워크에서만 작업 영역 스토리지 계정에 대한 액세스를 제한하는 방법을 설명합니다.

작업 영역 스토리지 계정에 대한 방화벽 지원은 무엇인가요?

기본적으로 작업 영역 스토리지 계정에 대한 Azure Storage 계정은 모든 네트워크에서 인증된 연결을 허용합니다. 작업 영역 스토리지 계정에 대해 방화벽 지원을 사용하도록 설정하여 이 액세스를 제한할 수 있습니다. 그러면 공용 네트워크 액세스가 허용되지 않으며 권한 없는 네트워크에서 작업 영역 스토리지 계정에 액세스할 수 없습니다. 조직에 스토리지 계정이 비공개로 유지되도록 하는 Azure 정책이 있는 경우 이를 구성할 수 있습니다.

작업 영역 스토리지 계정에 대한 방화벽 지원을 사용하도록 설정한 경우 Azure Databricks 외부의 서비스에서 모든 액세스는 Private Link에서 승인된 프라이빗 엔드포인트를 사용해야 합니다. Azure Databricks는 Azure 관리 ID를 사용하여 스토리지에 연결하는 액세스 커넥터를 만듭니다. Azure Databricks 서버리스 컴퓨팅에서 액세스하려면 서비스 엔드포인트 또는 프라이빗 엔드포인트를 사용해야 합니다.

요구 사항

  • 작업 영역에서 클래식 컴퓨팅 평면의 연결을 위해 VNet 인젝션을 활성화해야 합니다.

  • 작업 영역은 클래식 컴퓨팅 평면의 연결에 보안 클러스터 연결(공용 IP/NPIP 없음) 사용하도록 설정해야 합니다.

  • 작업 영역은 프리미엄 플랜에 있어야 합니다.

  • 스토리지 계정의 프라이빗 엔드포인트에 대해 별도의 서브넷이 있어야 합니다. 이는 기본 Azure Databricks 기능을 위한 두 개의 주요 서브넷에 추가됩니다.

    서브넷은 작업 영역과 동일한 VNet 또는 작업 영역에서 액세스할 수 있는 별도의 VNet에 있어야 합니다. CIDR 표기법에서 최소 크기 /28을 사용합니다.

  • Microsoft Fabric Power BI 서비스와 함께 Cloud Fetch를 사용하는 경우 항상 작업 영역 스토리지 계정에 대한 프라이빗 액세스를 위해 게이트웨이를 사용하거나 Cloud Fetch를 사용하지 않도록 설정해야 합니다. 2단계(권장): Cloud Fetch 클라이언트 VNet에 대한 프라이빗 엔드포인트 구성을 참조하세요.

  • Azure CLI 또는 PowerShell 배포 방법의 경우 Azure Databricks 액세스 커넥터를 만들고 리소스 ID를 저장해야 합니다. 이를 위해서는 시스템 할당 또는 사용자 할당 관리 ID를 사용해야 합니다. Access Connector를 Databricks에서 참조하십시오. 관리되는 리소스 그룹에서는 Azure Databricks 액세스 커넥터를 사용할 수 없습니다.

5단계: 작업 영역 스토리지 계정 방화벽을 사용하도록 설정하여 새 작업 영역을 만들 때 ARM 템플릿을 사용할 수도 있습니다. 이 경우 1~4단계를 따르기 전에 작업 영역의 모든 컴퓨팅을 종료합니다.

1단계: 스토리지 계정에 대한 프라이빗 엔드포인트 만들기

대상 하위 리소스 값(dfsblob)에 대해 VNet 삽입에 사용한 VNet에서 작업 영역 스토리지 계정에 대한 두 개의 프라이빗 엔드포인트를 만듭니다.

참고

프라이빗 엔드포인트를 만들 때 관리되는 리소스 그룹에 대한 거부 할당 오류가 발생하는 경우 작업 영역의 모든 컴퓨팅을 종료하고 5단계: 1~4단계를 수행하기 전에 작업 영역 스토리지 계정에 방화벽을 사용하도록 설정합니다 .

  1. 작업 영역으로 이동

  2. Essentials에서 관리되는 리소스 그룹의 이름을 클릭합니다.

  3. 리소스아래, 작업 영역 스토리지 계정의 이름을 기록합니다. 이름은 dbstorage시작합니다.

  4. 포털 맨 위에 있는 검색 상자에 프라이빗 엔드포인트입력하고 선택합니다.

  5. + 만들기를 클릭합니다.

  6. 리소스 그룹 이름 필드에서 리소스 그룹을 설정합니다.

    중요

    리소스 그룹은 작업 영역 스토리지 계정이 있는 관리되는 리소스 그룹과 동일하지 않아야 합니다.

  7. 이름 필드에 이 프라이빗 엔드포인트의 고유한 이름을 입력하십시오.

    • 각 원본 네트워크에 대해 만든 첫 번째 프라이빗 엔드포인트에 대해 DFS 엔드포인트를 만듭니다. Databricks는 -dfs-pe 접미사를 추가하는 것이 좋습니다.
    • 각 원본 네트워크에 대해 만드는 두 번째 프라이빗 엔드포인트의 경우 Blob 엔드포인트를 만듭니다. Databricks는 -blob-pe 접미사를 추가하는 것이 좋습니다.

    네트워크 인터페이스 이름 필드가 자동으로 채워집니다.

  8. 지역 필드를 작업 영역의 영역으로 설정합니다.

  9. 다음: 리소스 을 클릭합니다.

  10. 연결 방법에서 내 디렉터리의 Azure 리소스에 연결을 선택합니다.

  11. 구독에서, 작업 영역이 포함된 구독을 선택합니다.

  12. 리소스 유형에서 Microsoft.Storage/storageAccounts을(를) 선택합니다.

  13. 리소스에서 워크스페이스 스토리지 계정을 선택합니다.

  14. 대상 하위 리소스대상 리소스 유형을 선택합니다.

    • 각 원본 네트워크에 대해 만든 첫 번째 프라이빗 엔드포인트의 경우 dfs설정합니다.
    • 각 원본 네트워크에 대해 만드는 두 번째 프라이빗 엔드포인트는 blob로 설정합니다.
  15. 을 클릭한 후 다음: Virtual Network으로 이동합니다.

  16. 가상 네트워크 필드에서 VNet을 선택합니다.

  17. 서브넷 필드에서 스토리지 계정의 프라이빗 엔드포인트에 대해 가지고 있는 별도의 서브넷으로 서브넷을 설정합니다.

    이 필드는 프라이빗 엔드포인트에 대한 서브넷으로 자동 채워질 수 있지만 명시적으로 설정해야 할 수도 있습니다. 일반적으로 호출되는 private-subnetpublic-subnet이라는 기본 Azure Databricks 작업 영역 기능에 사용되는 두 작업 영역 서브넷 중 하나를 사용할 수 없습니다.

  18. 필요한 경우 프라이빗 IP 구성 애플리케이션 보안 그룹 기본값을 변경합니다.

  19. 다음 DNS클릭합니다. DNS 탭은 이전에 선택한 올바른 구독 및 리소스 그룹에 자동으로 채워집니다. 필요한 경우 변경합니다.

  20. 다음: 태그 클릭하고 원하는 경우 태그를 추가합니다.

  21. 다음: 검토 + 만들기를 클릭합니다. 그런 다음 필드를 검토합니다.

  22. 만들기를 클릭합니다.

2단계(권장): Cloud Fetch 클라이언트 VNet에 대한 프라이빗 엔드포인트 구성

Cloud Fetch는 데이터를 BI 도구로 더 빠르게 가져오기 위해 클라우드 스토리지를 통해 병렬로 데이터를 가져오는 ODBC 및 JDBC의 메커니즘입니다. BI 도구에서 1MB보다 큰 쿼리 결과를 가져오는 경우 Cloud Fetch를 사용할 가능성이 높습니다.

참고

Azure Databricks에서 Microsoft Fabric Power BI 서비스를 사용하는 경우 이 기능이 Fabric Power BI에서 작업 영역 스토리지 계정에 대한 직접 액세스를 차단하므로 Cloud Fetch를 사용하지 않도록 설정해야 합니다. 또는 가상 네트워크 데이터 게이트웨이나 온-프레미스 데이터 게이트웨이를 구성하여 작업 영역 스토리지 계정에 대한 프라이빗 액세스를 허용할 수 있습니다. 이는 Power BI 데스크톱에는 적용되지 않습니다. Cloud Fetch를 사용하지 않도록 설정하려면 EnableQueryResultDownload=0 구성을 사용합니다.

Cloud Fetch를 사용하는 경우 Cloud Fetch 클라이언트의 VNet에서 작업 영역 스토리지 계정에 대한 프라이빗 엔드포인트를 만듭니다.

Cloud Fetch 클라이언트에 대한 각 원본 네트워크에 대해 두 개의 서로 다른 대상 하위 리소스 값인 dfsblob사용하는 두 개의 프라이빗 엔드포인트를 만듭니다. 자세한 단계는 1단계: 스토리지 계정에 대한 프라이빗 엔드포인트 만들기를 참조하세요. 이러한 단계에서 프라이빗 엔드포인트를 만들 때 가상 네트워크 필드의 경우 각 Cloud Fetch 클라이언트에 대한 원본 VNet을 지정해야 합니다.

3단계: 엔드포인트 승인 확인

스토리지 계정에 대한 모든 프라이빗 엔드포인트를 만든 후 승인되었는지 확인합니다. 자동 승인하거나 스토리지 계정에서 승인해야 할 수 있습니다.

  1. Azure Portal에서 작업 영역으로 이동합니다.
  2. Essentials에서 관리되는 리소스 그룹의 이름을 클릭합니다.
  3. 리소스에서 저장소 계정 유형의 이름이 dbstorage로 시작하는 리소스를 클릭합니다.
  4. 사이드바에서 네트워킹을 클릭합니다.
  5. 프라이빗 엔드포인트 연결을 클릭합니다.
  6. 연결 상태를 확인하여 가 승인됨인지 확인하거나 선택하여 승인을(를) 클릭하십시오.

4단계: 서버리스 컴퓨팅 연결 권한 부여

NCC(네트워크 연결 구성)를 작업 영역에 연결하여 작업 영역 스토리지 계정에 연결하도록 서버리스 컴퓨팅에 권한을 부여해야 합니다. NCC가 작업 영역에 연결되면 네트워크 규칙이 작업 영역 스토리지 계정에 대한 Azure Storage 계정에 자동으로 추가됩니다. 지침은 서버리스 컴퓨팅 액세스를 위한 방화벽 구성을 참조하세요.

프라이빗 엔드포인트를 사용하여 Azure Databricks 서버리스 컴퓨팅에서 액세스를 사용하도록 설정하려면 Azure Databricks 계정 팀에 문의하세요.

5단계: 작업 영역 스토리지 계정에 방화벽 사용

ARM 템플릿 배포, Azure CLI 또는 PowerShell을 사용하여 Databricks 작업 영역에 대한 스토리지 방화벽 지원을 구성합니다.

ARM 템플릿을 사용하여 스토리지 방화벽 지원 사용

이 단계에서는 ARM 템플릿을 사용하여 Azure Databricks 작업 영역을 관리합니다. Terraform을 사용하여 작업 영역을 업데이트하거나 만들 수도 있습니다. azurerm_databricks_workspace Terraform 공급자를 참조하세요. 작업 영역 스토리지 계정의 방화벽 지원을 비활성화하려면 동일한 프로세스를 따르되storageAccountFirewall 매개 변수인 스토리지 계정 방화벽을 Disabled로 설정하십시오.

  1. Azure Portal에서 Deploy a custom template검색하고 선택합니다.

  2. 편집기에서 사용자 고유의 템플릿을 빌드합니다.를 클릭합니다.

  3. 작업 영역 스토리지 계정에 대한 방화벽 지원을 위해 ARM 템플릿에서 ARM 템플릿을 복사하여 편집기에서 붙여넣습니다.

  4. 저장을 클릭합니다.

  5. 필드를 검토하고 편집합니다. 구독, 지역, 작업 영역 이름, 서브넷 이름, 기존 VNet의 리소스 ID와 같은 작업 영역을 만드는 데 사용한 것과 동일한 매개 변수를 사용합니다.

    필드에 대한 설명은 ARM 템플릿 필드를 참조하세요.

  6. 검토 및 만들기, 만들기를 차례로 클릭합니다.

참고

작업 영역 스토리지 계정의 공용 네트워크 액세스가 선택한 가상 네트워크 및 IP 주소에서 사용 가능으로 설정되어 있으며, 프라이빗 엔드포인트 없이 서버리스 컴퓨팅 리소스를 지원하기 위해 사용 안 함으로 설정되지 않았습니다. 작업 영역 스토리지 계정은 관리되는 리소스 그룹에 있으며 스토리지 방화벽은 서버리스 연결을 위해 NCC(네트워크 연결 구성)를 작업 영역에 추가할 때만 업데이트할 수 있습니다. 프라이빗 엔드포인트를 사용하여 Azure Databricks 서버리스 컴퓨팅에서 액세스를 사용하도록 설정하려면 Azure Databricks 계정 팀에 문의하세요.

Azure CLI를 사용하여 스토리지 방화벽 지원 사용

  • 시스템 할당 ID가 있는 액세스 커넥터를 사용하여 방화벽 지원을 사용하도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    az databricks workspace update \
       --resource-group "<resource-group-name>" \
       --name "<workspace-name>" \
       --subscription "<subscription-id>" \
       --default-storage-firewall "Enabled" \
       --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"SystemAssigned\"}"
    
  • 사용자 할당 ID가 있는 액세스 커넥터를 사용하여 방화벽 지원을 사용하도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    az databricks workspace update \
    --resource-group "<resource-group-name>" \
    --name "<workspace-name>" \
    --subscription "<subscription-id>" \
    --default-storage-firewall "Enabled" \
    --access-connector "{\"id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>\", \"identity-type\":\"UserAssigned\", \"user-assigned-identity-id\":\"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>\"}"
    
  • 액세스 커넥터를 사용하여 방화벽 지원을 사용하지 않도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    az databricks workspace update \
       --name "<workspace-name>" \
       --subscription "<subscription-id>" \
       --resource-group "<resource-group-name>" \
       --default-storage-firewall "Disabled"
    

PowerShell을 사용하여 스토리지 방화벽 지원 사용

  • 시스템 할당 ID가 있는 액세스 커넥터를 사용하여 방화벽 지원을 사용하도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    Update-AzDatabricksWorkspace `
       -Name "<workspace-name>" `
       -ResourceGroupName "<resource-group-name>" `
       -SubscriptionId "<subscription-ID>" `
       -Sku "Premium" `
       -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" `
       -AccessConnectorIdentityType "SystemAssigned" `
       -DefaultStorageFirewall "Enabled"
    
  • 사용자 할당 ID가 있는 액세스 커넥터를 사용하여 방화벽 지원을 사용하도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    Update-AzDatabricksWorkspace `
       -Name "<workspace-name>" `
       -ResourceGroupName "<resource-group-name>" `
       -SubscriptionId "<subscription-ID>" `
       -Sku "Premium" `
       -AccessConnectorId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/accessConnectors/<access-connector-name>" `
       -AccessConnectorIdentityType "UserAssigned" `
       -AccessConnectorUserAssignedIdentityId "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>" `
       -DefaultStorageFirewall "Enabled"
    
  • 액세스 커넥터를 사용하여 방화벽 지원을 사용하지 않도록 설정하려면 Cloud Shell에서 다음을 실행합니다.

    Update-AzDatabricksWorkspace `
       -Name "<workspace-name>" `
       -ResourceGroupName "<resource-group-name>" `
       -SubscriptionId "<subscription-ID>" `
       -DefaultStorageFirewall "Disabled"