다음을 통해 공유


클러스터의 보안 연결 기능 활성화

이 문서에서는 Azure Databricks 작업 영역에 보안 클러스터 연결을 사용하는 방법을 설명합니다. 보안 클러스터 연결은 공용 IP가 없는(NPIP) 방식으로도 알려져 있습니다. 서버리스 컴퓨팅 평면은 보안 클러스터 연결을 사용하지 않지만 서버리스 컴퓨팅 리소스에는 공용 IP 주소가 없습니다.

보안 클러스터 연결 개요

보안 클러스터 연결을 사용하도록 설정하면 고객 가상 네트워크에는 열린 포트가 없으며 클래식 컴퓨팅 평면의 컴퓨팅 리소스에는 공용 IP 주소가 없습니다.

  • 각 클러스터는 클러스터 생성 시 제어 평면의 보안 클러스터 연결 릴레이에 연결을 시작합니다. 클러스터는 HTTPS(포트 443)를 사용하여 이 연결을 설정하고 웹 애플리케이션 및 REST API에 사용되는 것과 다른 IP 주소를 사용합니다.
  • 컨트롤 플레인에서 클러스터 관리 작업을 수행하는 경우 이러한 요청은 이 터널을 통해 클러스터로 전송됩니다.

참고 항목

클래식 컴퓨트 플레인 VNet과 Azure Databricks 컨트롤 플레인 간의 모든 Azure Databricks 네트워크 트래픽은 Microsoft 네트워크 백본을 통해 전달되며, 공용 인터넷을 거치지 않습니다. 보안 클러스터 연결이 사용하지 않도록 설정된 경우에도 마찬가지입니다.

새 작업 영역에서 보안 클러스터 연결을 사용하도록 설정하거나 이미 VNet 삽입사용하는 기존 작업 영역에 추가할 수 있습니다.

새 작업 영역에서 보안 클러스터 연결 사용

Azure Portal 또는 ARM(Azure Resource Manager) 템플릿을 사용하여 작업 영역을 만들 때 보안 클러스터 연결을 사용하도록 설정할 수 있습니다.

  • Azure Portal: 작업 영역을 프로비전할 때 네트워킹 탭에서 보안 클러스터 연결(공용 IP 없음) 사용하여 Azure Databricks 작업 영역 배포 설정하여 예.

    Azure Portal을 사용하여 Azure Databricks 작업 영역을 생성하는 방법에 대한 자세한 지침은 포털을 사용하여 Azure Databricks 작업 영역 만들기를 참조하십시오.

  • ARM 템플릿: 새 작업 영역을 만드는 Microsoft.Databricks/workspaces 리소스에서 enableNoPublicIp 부울 매개변수를 true로 설정합니다.

    ARM 템플릿을 사용하여 작업 영역을 만드는 방법에 대한 자세한 지침은 ARM 템플릿사용하여 작업 영역 배포를 참조하세요. VNet 삽입을 사용하는 ARM 템플릿에 대해 알아보려면 Azure Resource Manager 템플릿을 사용한 고급 구성을참조하세요.

기존 작업 영역에 보안 클러스터 연결 추가

Azure Portal, ARM 템플릿 또는 azurerm Terraform 공급자 버전 3.41.0 이상에서 기존 작업 영역에서 보안 클러스터 연결을 사용하도록 설정할 수 있습니다. 업그레이드하려면 작업 영역에서 VNet 삽입을 사용해야 합니다.

Important

방화벽 또는 기타 네트워크 구성 변경 내용을 사용하여 클래식 컴퓨팅 평면의 수신 또는 송신을 제어하는 경우 이러한 변경 내용이 완전히 적용되려면 방화벽 또는 네트워크 보안 그룹 규칙을 동시에 업데이트해야 할 수 있습니다. 예를 들어 보안 클러스터 연결을 사용하면 컨트롤 플레인에 대한 추가 나가는 연결이 있으며 컨트롤 플레인에서 들어오는 연결은 더 이상 사용되지 않습니다.

1단계: 모든 컴퓨팅 리소스 중지

클러스터, 풀 또는 클래식 SQL 웨어하우스와 같은 모든 클래식 컴퓨팅 리소스를 중지합니다. Databricks는 가동 중지 시간에 대한 업그레이드 타이밍을 계획하는 것이 좋습니다.

2단계: 작업 영역 업데이트

Azure Portal, ARM 템플릿 또는 Terraform을 사용하여 작업 영역을 업데이트할 수 있습니다.

Azure Portal 사용

  1. Azure Portal에서 Azure Databricks 작업 영역으로 이동합니다.
  2. 설정 아래의 왼쪽 탐색 영역에서 네트워킹을 클릭합니다.
  3. 네트워크 액세스 탭에서 Azure Databricks 작업 영역 배포를 보안 클러스터 연결(공용 IP 없음)로 사용로 설정.
  4. 저장을 클릭합니다.

네트워크 업데이트를 완료하는 데 15분 이상 걸릴 수 있습니다.

Azure Portal을 사용하여 업데이트된 ARM 템플릿 적용

ARM 템플릿을 사용하여 enableNoPublicIp 매개 변수를 True(true)로 설정합니다.

참고 항목

관리되는 리소스 그룹에 사용자 지정 이름이 있는 경우 템플릿을 적절하게 수정해야 합니다. 더 자세한 내용은 Azure Databricks 계정 팀에 문의하세요.

  1. 다음 업그레이드 ARM 템플릿 JSON을 복사합니다.

      {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "location": {
                "defaultValue": "[resourceGroup().location]",
                "type": "String",
                "metadata": {
                    "description": "Location for all resources."
                }
            },
            "workspaceName": {
                "type": "String",
                "metadata": {
                    "description": "The name of the Azure Databricks workspace to create."
                }
            },
            "apiVersion": {
                "defaultValue": "2023-02-01",
                "allowedValues": [
                  "2018-04-01",
                  "2020-02-15",
                  "2022-04-01-preview",
                  "2023-02-01"
                ],
                "type": "String",
                "metadata": {
                    "description": "2018-03-15 for 'full region isolation control plane' and 2020-02-15 for 'FedRAMP certified' regions"
                }
            },
            "enableNoPublicIp": {
                "defaultValue": true,
                "type": "Bool"
            },
            "pricingTier": {
                "defaultValue": "premium",
                "allowedValues": [
                    "premium",
                    "standard",
                    "trial"
                ],
                "type": "String",
                "metadata": {
                    "description": "The pricing tier of workspace."
                }
            },
            "publicNetworkAccess": {
              "type": "string",
              "defaultValue": "Enabled",
              "allowedValues": [
                "Enabled",
                "Disabled"
              ],
              "metadata": {
                "description": "Indicates whether public network access is allowed to the workspace - possible values are Enabled or Disabled."
              }
            },
            "requiredNsgRules": {
              "type": "string",
              "defaultValue": "AllRules",
              "allowedValues": [
                "AllRules",
                "NoAzureDatabricksRules"
              ],
              "metadata": {
                "description": "Indicates whether to retain or remove the AzureDatabricks outbound NSG rule - possible values are AllRules or NoAzureDatabricksRules."
              }
            }
            },
        "variables": {
            "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]",
            "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', variables('managedResourceGroupName'))]"
        },
        "resources": [
            {
                "type": "Microsoft.Databricks/workspaces",
                "apiVersion": "[parameters('apiVersion')]",
                "name": "[parameters('workspaceName')]",
                "location": "[parameters('location')]",
                "sku": {
                    "name": "[parameters('pricingTier')]"
                },
                "properties": {
                    "ManagedResourceGroupId": "[variables('managedResourceGroupId')]",
                    "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
                    "requiredNsgRules": "[parameters('requiredNsgRules')]",
                    "parameters": {
                        "enableNoPublicIp": {
                            "value": "[parameters('enableNoPublicIp')]"
                        }
                    }
                }
            }
        ]
    }
    
    1. Azure Portal 사용자 지정 배포 페이지로 이동합니다.

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

    3. 복사한 템플릿의 JSON에 붙여넣습니다.

    4. 저장을 클릭합니다.

    5. 매개 변수를 입력합니다.

    6. 기존 작업 영역을 업데이트하려면 작업 영역을 만들 때 사용한 매개 변수와 동일한 매개 변수를 사용하되, enableNoPublicIptrue로 지정해야 합니다. 기존 VNet의 구독, 지역, 작업 영역 이름, 서브넷 이름, 리소스 ID를 설정합니다.

      Important

      리소스 그룹 이름, 작업 영역 이름 및 서브넷 이름은 기존 작업 영역과 동일하므로 이 명령은 새 작업 영역을 만드는 대신 기존 작업 영역을 업데이트합니다.

    7. 검토 + 만들기를 클릭합니다.

    8. 유효성 검사 문제가 없으면 만들기를 클릭합니다.

    네트워크 업데이트를 완료하는 데 15분 이상 걸릴 수 있습니다.

Terraform을 사용하여 업데이트 적용

Terraform으로 만든 작업 영역의 경우 작업 영역을 다시 만들지 않고도 작업 영역을 업데이트할 수 있습니다.

Important

버전 3.41.0 이상을 사용해야 terraform-provider-azurerm 하므로 필요에 따라 Terraform 공급자 버전을 업그레이드합니다. 이전 버전에서는 이러한 설정을 변경하는 경우 작업 영역을 다시 만들려고 시도합니다.

다음 작업 영역 설정을 변경합니다.

  • no_public_ip 블록에서 . custom_parameters 로 변경할 falsetrue수 있습니다.

네트워크 업데이트를 완료하는 데 15분 이상 걸릴 수 있습니다.

3단계: 업데이트 유효성 검사

작업 영역이 활성 상태이면 업데이트 작업이 완료됩니다. 업데이트가 적용되었는지 확인합니다.

  1. 웹 브라우저에서 Azure Databricks를 엽니다.

  2. 작업 영역의 클러스터 중 하나를 시작하고 클러스터가 완전히 시작될 때까지 기다립니다.

  3. Azure Portal에서 작업 영역 인스턴스로 이동합니다.

  4. 관리되는 리소스 그룹 필드 옆에 있는 파란색 ID를 클릭합니다.

  5. 해당 그룹에서 클러스터의 VM을 찾고 그 중 하나를 클릭합니다.

  6. VM 설정의 속성 내에서 네트워킹 영역에서 필드를 찾습니다.

  7. 공용 IP 주소 필드가 비어 있는지 확인합니다.

    채워지면 VM에 공용 IP 주소가 있습니다. 즉, 업데이트에 실패했습니다.

보안 클러스터 연결로 업그레이드의 임시 롤백

배포 중에 문제가 발생하면 프로세스를 임시 롤백으로 되돌릴 수 있지만 나중에 업그레이드를 계속하기 전에 임시 롤백 외에는 작업 영역에서 SCC를 사용하지 않도록 설정할 수 없습니다. 일시적으로 필요한 경우 업그레이드를 위해 위의 지침을 따르지만 enableNoPublicIp true 대신 false 설정할 수 있습니다.

작업 영역 서브넷에서의 송신

보안 클러스터 연결을 사용하도록 설정하면 클러스터 노드에 공용 IP 주소가 없으므로 두 작업 영역 서브넷이 모두 프라이빗 서브넷이 됩니다.

네트워크 egress 구성의 세부 사항은 기본(관리형) VNet을 사용하는지, 아니면 VNet 주입을 사용하여 작업 영역을 배포할 자체 VNet을 제공하는지에 따라 달라집니다.

Important

보안 클러스터 연결을 사용하면 송신 트래픽의 증가로 인해 추가 비용이 발생할 수 있습니다. 가장 안전한 배포를 위해 Microsoft 및 Databricks는 보안 클러스터 연결을 사용하도록 설정하는 것이 좋습니다.

기본(관리형) VNet의 송신

Azure Databricks가 만드는 기본 VNet과 보안 클러스터 연결을 사용하는 경우 Azure Databricks는 작업 영역의 서브넷에서 Azure 백본 및 공용 네트워크로의 아웃바운드 트래픽에 대한 NAT 게이트웨이를 자동으로 만듭니다. NAT 게이트웨이는 Azure Databricks에 의해 관리되는 관리형 리소스 그룹 안에 만들어집니다. 이 리소스 그룹과 리소스 그룹 내에 프로비저닝된 리소스는 수정할 수 없습니다. 이 NAT 게이트웨이에는 추가 비용이 발생합니다.

VNet 주입을 사용하여 송신

VNet 삽입을 사용하는 작업 영역에서 보안 클러스터 연결을 사용하도록 설정하는 경우 Databricks는 작업 영역에 안정적인 송신 공용 IP가 있는 것이 좋습니다. 안정적인 송신 공용 IP 주소는 외부 허용 목록에 추가할 수 있으므로 유용합니다. 예를 들어 안정적인 송신 IP 주소를 사용하여 Azure Databricks에서 Salesforce로 연결합니다.

Warning

Microsoft는 2025년 9월 30일에 Azure의 가상 머신에 대한 기본 아웃바운드 액세스 연결이 사용 중지될 것이라고 발표했습니다. 이 공지 사항을 참조하세요. 즉, 안정적인 송신 공용 IP가 아닌 기본 아웃바운드 액세스를 사용하는 기존 Azure Databricks 작업 영역은 해당 날짜 이후에도 계속 작동하지 않을 수 있습니다. Databricks는 해당 날짜 이전에 작업 영역에 대한 명시적 아웃바운드 메서드를 추가하는 것이 좋습니다.

작업 영역에 명시적 아웃바운드 메서드를 추가하려면 Azure NAT 게이트웨이 또는 UDR(사용자 정의 경로)을 사용합니다.

  • Azure NAT 게이트웨이 : 배포에 일부 사용자 지정만 필요한 경우, Azure NAT 게이트웨이를 사용하십시오. 작업 영역의 양쪽 서브넷에서 Azure 백본 및 공용 네트워크로의 모든 아웃바운드 트래픽이 통과할 게이트웨이를 구성합니다. 클러스터에 안정적인 송신 공용 IP가 있으며, 사용자 지정 송신 요구 사항의 구성을 수정할 수 있습니다. Azure 템플릿 또는 Azure Portal을 사용하여 구성할 수 있습니다.
  • UDR: 배포에 복잡한 라우팅 요구 사항이 필요하거나 작업 영역에서 송신 방화벽과 함께 VNet 주입을 사용하는 경우 UDR을 사용합니다. UDR을 사용하면 작업 영역에 대해 네트워크 트래픽이 필수 엔드포인트로 직접 또는 송신 방화벽을 통해 올바르게 라우팅됩니다. UDR을 사용하려면 Azure Databricks 보안 클러스터 연결 릴레이 및 Azure Databricks대한 사용자 정의 경로 설정에 나열된 기타 필수 엔드포인트에 대한 직접 경로 또는 허용된 방화벽 규칙을 추가해야 합니다.

Warning

보안 클러스터 연결을 사용하도록 설정된 작업 영역에서 송신 부하 분산 장치를 사용하지 마세요. 프로덕션 시스템에서 송신 부하 분산 장치는 포트 소모 위험을 초래할 수 있습니다.