Habilitar conexões de back-end e front-end do Link Privado do Azure

Este artigo resume o uso do Link Privado do Azure para permitir a conectividade privada entre os usuários e os respectivos workspaces do Databricks, bem como entre clusters no plano de computação clássico e os principais serviços no painel de controle dentro da infraestrutura do workspace do Databricks.

Esse recurso não altera o acesso à rede para SQL warehouses sem servidor. No entanto, há um recurso separado para controlar o acesso à rede de SQL warehouses a fontes de dados. Consulte Configurar a conectividade privada a partir da computação sem servidor.

Visão geral

O Link Privado fornece conectividade privada de VNets do Azure e redes locais aos serviços do Azure sem expor o tráfego à rede pública. O Azure Databricks dá suporte aos seguintes tipos de conexão do Link Privado:

  • Link Privado de front-end, também conhecido como usuário para workspace: uma conexão do Link Privado de front-end permite que os usuários se conectem ao aplicativo Web do Azure Databricks, à API REST e à API do Databricks Connect por um ponto de extremidade de interface de VNet. A conexão front-end também é usada pelas integrações JDBC/ODBC e Power BI. O tráfego de rede para uma conexão de link privado de front-end entre uma VNet de trânsito e o plano de controle do Azure Databricks do workspace percorre a rede de backbone da Microsoft.
  • Link Privado de back-end, também conhecido como plano de computação para painel de controle: clusters do Databricks Runtime em uma VNet gerenciada pelo cliente (o plano de computação) conectam-se aos principais serviços de um workspace do Azure Databricks (o painel de controle) na conta de nuvem do Azure Databricks. Isso habilita a conectividade privada dos clusters com o ponto de extremidade de retransmissão de conectividade do cluster seguro e o ponto de extremidade da API REST.
  • Ponto de extremidade privado da autenticação do navegador: para dar suporte às conexões de front-end privadas com o aplicativo Web do Azure Databricks para clientes que não têm conectividade com a Internet pública, adicione um ponto de extremidade privado de autenticação do navegador para dar suporte a retornos de chamada de SSO (logon único) ao aplicativo Web do Azure Databricks a partir do Microsoft Entra ID (antigo Azure Active Directory). Caso permita conexões da rede com a Internet pública, a adição de um ponto de extremidade privado de autenticação do navegador será recomendada, mas não necessária. Um ponto de extremidade privado de autenticação do navegador é uma conexão privada com o tipo de sub-recurso browser_authentication.

Se você implementar o Link Privado para conexões de front-end e de back-end, poderá exigir conectividade privada para o workspace, o que significa que o Azure Databricks rejeita todas as conexões pela rede pública. Se você recusar a implementação dos tipos de conexão de front-end ou de back-end, não poderá impor esse requisito.

A maior parte deste artigo é sobre como criar um novo workspace, mas você pode habilitar ou desabilitar o Link Privado em um workspace existente. Confira habilitar ou desabilitar o Link Privado do Azure em um workspace existente.

Terminologia

A tabela a seguir descreve uma terminologia importante.

Terminologia Descrição
Link Privado do Azure Uma tecnologia do Azure que fornece conectividade privada de VNets do Azure e redes locais aos serviços do Azure, sem expor o tráfego à rede pública.
Serviço de Link Privado do Azure Um serviço que pode ser o destino de uma conexão do Link Privado. Cada instância do painel de controle do Azure Databricks publica um serviço do Link Privado do Azure.
Ponto de extremidade privado do Azure Um ponto de extremidade privado do Azure permite uma conexão privada entre uma VNet e um serviço de Link Privado. Para conectividade de front-end e back-end, o destino de um ponto de extremidade privado do Azure é o painel de controle do Azure Databricks.

Para obter informações gerais sobre pontos de extremidade privados, consulte o artigo da Microsoft O que é um ponto de extremidade privado?.

Escolher implantação padrão ou simplificada

Há dois tipos de implantação de Link Privado compatíveis com o Azure Databricks e você deve escolher um:

  • Implantação padrão (recomendada): para melhorar a segurança, o Databricks recomenda que você use um ponto de extremidade privado separado para sua conexão de front-end de uma VNet de trânsito separada. Você pode implementar conexões de front-end e de back-end do Link Privado ou apenas a conexão de back-end. Use uma VNet diferente para encapsular o acesso do usuário, a qual seja separada da VNet que você usa para seus recursos de computação no plano de computação clássico. Crie pontos de extremidade do Link Privado separados para acesso de back-end e front-end. Siga as instruções em Habilitar Link Privado do Azure como uma implantação padrão.
  • Implantação simplificada: algumas organizações não podem usar a implantação padrão por vários motivos de política de rede, como não permitir mais de um ponto de extremidade privado ou desencorajar VNets de trânsito separadas. Como alternativa, você pode usar a implantação simplificada do Link Privado. Nenhuma VNet separada separa o acesso do usuário da VNet que você usa para seus recursos de computação no plano de computação clássico. Em vez disso, uma sub-rede de trânsito na VNet do plano de computação é usada para acesso do usuário. Haverá apenas um ponto de extremidade do Link Privado. Normalmente, a conectividade de front-end e back-end é configurada. Opcionalmente, você pode configurar apenas a conexão de back-end. Não é possível usar apenas as conexões de front-end nesse tipo de implantação. Siga as instruções em Habilitar Link Privado do Azure como uma implantação simplificada.

Requisitos

Assinatura do Azure

Seu workspace do Azure Databricks deve estar na camada Premium ou Enterprise.

Arquitetura de rede do workspace do Azure Databricks

  • Seu workspace do Azure Databricks precisa usar a injeção de VNet para adicionar qualquer conexão do Link Privado (até mesmo uma conexão somente de front-end).
  • Se você implementar a conexão do Link Privado de back-end, o workspace do Azure Databricks deverá usar a Conectividade de cluster segura (SCC/sem IP público/NPIP).
  • Você precisa de uma VNet que atenda aos requisitos de injeção de VNet.
    • Conforme discutido no artigo principal sobre injeção de VNet, você deve definir duas sub-redes (referidas na interface do usuário como a sub-rede pública e a sub-rede privada). Os intervalos de IP de VNet e sub-rede usados para o Azure Databricks definem o número máximo de nós de cluster que você pode usar ao mesmo tempo. Escolha esses valores com atenção.
    • Para implementar o Link Privado de front-end, o Link Privado de back-end ou ambos, a VNet do workspace precisa de uma terceira sub-rede que contenha o ponto de extremidade do Link Privado, e seu intervalo de endereços IP não pode se sobrepor ao intervalo das outras sub-redes do workspace. Este artigo refere-se a esta terceira sub-rede como a sub-rede de ponto de extremidade privado. Exemplos e capturas de tela presumem o nome de sub-rede private-link. Ele pode ser tão pequeno quanto o intervalo de CIDR /27. Não defina regras de NSG para sub-redes que contêm pontos de extremidade privados.
    • Se você usar a interface do usuário para criar objetos, precisará criar a rede e as sub-redes manualmente antes de criar o workspace do Azure Databricks. Se você quer usar um modelo, o modelo que o Azure Databricks fornece cria uma VNet e as sub-redes apropriadas para você, incluindo as duas sub-redes regulares e outra para pontos de extremidade privados.
  • Se você usar ou planejar usar um grupo de segurança de rede ou firewall em torno de sua VNet para controlar a saída, deverá permitir as portas 443, 6666, 3306 e 8443 a 8451 na sub-rede do ponto de extremidade privado para saída para conexões com o plano de controle do Azure Databricks, incluindo a retransmissão de conectividade segura do cluster. Se você tiver uma política de grupos de segurança de rede habilitada no ponto de extremidade privado, também precisará permitir as portas 443, 6666 e 8443 a 8451 para entrada no grupo de segurança de rede na sub-rede em que o ponto de extremidade privado é implantado.

Arquitetura de rede de conexão de front-end

Apenas para Link Privado de front-end, para que os usuários acessem o workspace de sua rede local, você deve adicionar a conectividade privada dessa rede à sua rede do Azure. Adicione essa conectividade antes de configurar o Link Privado. Os detalhes variam conforme você escolhe a implantação padrão do Link Privado ou a implantação simplificada.

  • Para a implantação padrão, você cria ou usa uma VNet de trânsito existente, às vezes chamada de VNet bastion ou VNet hub. Essa VNet precisa ser acessível no ambiente do usuário local usando o Expressroute ou uma conexão de gateway de VPN. Para o Link Privado de front-end, o Databricks recomenda criar uma VNet separada para sua conectividade com o painel de controle, em vez de compartilhar a VNet do workspace. Observe que a VNet de trânsito e a sub-rede podem estar na mesma região, zona e grupo de recursos que a VNet do workspace e suas sub-redes, mas não precisam ser correspondentes. Crie um grupo de recursos para a VNet de trânsito separada e use uma zona DNS privada diferente para esse ponto de extremidade privado. Se você usar dois pontos de extremidade privados separados, não poderá compartilhar a zona DNS.
  • Na implantação simplificada, você cria uma sub-rede de trânsito na VNet do seu workspace. Nessa implantação, a sub-rede de trânsito não tem um ponto de extremidade privado separado. A sub-rede de trânsito na VNet do workspace usa apenas um ponto de extremidade privado para conexões de back-end e front-end.

Permissões de usuário do Azure

Como usuário do Azure, você deve ter permissões de leitura/gravação suficientes para:

  • Provisionar um novo workspace do Azure Databricks.
  • Criar pontos de extremidade do Link Privado do Azure na VNet do workspace e também (para uso de front-end) na VNet de trânsito.

Se o usuário que criou o ponto de extremidade privado para a VNet de trânsito não tiver permissões de proprietário/colaborador para o workspace, um usuário separado com essas permissões para o workspace deverá aprovar manualmente a solicitação de criação do ponto de extremidade privado.

Você pode habilitar o Link Privado em um workspace existente. A atualização requer que o workspace use Injeção de VNet, conectividade de cluster segura e tipo de preço Premium. Você pode fazer o upgrade a conectividade de cluster segura e para o tipo de preço Premium durante a atualização.

Você pode usar um modelo do ARM ou azurerm provedor Terraform versão 3.41.0+. Você pode usar o portal do Azure para aplicar um modelo personalizado e modificar o parâmetro na interface do usuário. No entanto, não há suporte a interface de usuário do Portal do Azure para esta atualização na própria instância do workspace do Azure Databricks.

Se algo der errado com a atualização,repita a etapa de atualização do workspace, mas, defina os campos para desativar o Link Privado.

Embora o foco dessa seção seja habilitar o Link Privado em um workspace existente, você pode desabilitá-lo em um workspace existente usando a mesma chamada de atualização do workspace com o modelo do ARM ou uma atualização do Terraform. Confira a etapa Etapa 4: aplicar a atualização do workspace para obter detalhes.

Etapa 1: leitura dos requisitos e da documentação nesta página

Antes de tentar uma atualização para o Link Privado, existem conceitos e requisitos importantes que você deve ler:

  1. Antes de prosseguir, leia esse artigo que contém conceitos e requisitos.
  2. Determine se deseja usar a implantação padrão ou simplificada.
  3. Na página para implantação padrão ou implantação simplificada (qualquer abordagem usada), examine cuidadosamente a página, incluindo os vários cenários. Localize o cenário que corresponde ao seu caso de uso. Anote quais valores você pretende usar para publicNetworkAccess e requiredNsgRules. Para a configuração recomendada do Link Privado tanto no front-end quanto no back-end, com a conectividade do front-end bloqueada, utilize as configurações publicNetworkAccess=Disabled e requiredNsgRules=NoAzureDatabricksRules

Etapa 2: parar todos os recursos de computação

Antes de tentar realizar essa atualização, você deve parar todos os recursos de computação, como clusters, pools ou warehouses SQL clássicos. Nenhum recurso de computação do workspace pode estar em execução ou a tentativa de atualização falhará. O Databricks recomenda planejar o tempo da atualização considerando o tempo de inatividade.

Importante

Não tente iniciar nenhum recurso de computação durante a atualização. Se o Azure Databricks determinar que os recursos de computação foram iniciados (ou ainda estão iniciando), o Azure Databricks os encerrará após a atualização.

Etapa 3: criar sub-rede e pontos de extremidade privados

  1. Adicione uma sub-rede à VNet do workspace para seus pontos de extremidade privados de back-end.

  2. Abra o artigo para implantação padrão ou implantação simplificada (qualquer abordagem que você usar).

    Siga as instruções nessa página para criar os ponto de extremidade privados que correspondem ao seu tipo de implantação.

  3. Crie todos os pontos de extremidade privados para suporte de back-end antes de fazer a atualização do workspace.

  4. Para acesso à interface do usuário, crie um ponto de extremidade privado com sub-recurso databricks_ui_api para dar suporte ao SSO de sua VNet de trânsito. Se você tiver mais de uma VNet de trânsito que acessa o workspace para acesso front-end, crie vários pontos de extremidade privados com o sub-recurso databricks_ui_api.

Etapa 4: aplicar a atualização do workspace

Em vez de criar um workspace, você precisa aplicar a atualização do workspace.

Você deve atualizar os parâmetros publicNetworkAccess e requiredNsgRules para os valores que escolheu em uma etapa anterior.

Use um destes métodos:

Aplicar um modelo de ARM atualizado usando o portal do Azure

Observação

Se seu grupo de recursos gerenciados tiver um nome personalizado, você deverá modificar o modelo de acordo. Entre em contato com sua equipe de conta do Azure Databricks para obter mais informações.

  1. Copie o seguinte modelo do ARM de atualização 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"
               }
           },
           "publicNetworkAccess": {
               "defaultValue": "Enabled",
               "allowedValues": [
                   "Enabled",
                   "Disabled"
               ],
               "type": "String",
               "metadata": {
                   "description": "Whether the workspace allows access from the public Internet"
               }
           },
           "requiredNsgRules": {
               "defaultValue": "AllRules",
               "allowedValues": [
                   "AllRules",
                   "NoAzureDatabricksRules"
               ],
               "type": "String",
               "metadata": {
                   "description": "The security rules that are applied to the security group of the Vnet"
               }
           },
           "enableNoPublicIp": {
               "defaultValue": true,
               "type": "Bool"
           },
           "pricingTier": {
               "defaultValue": "premium",
               "allowedValues": [
                   "premium",
                   "standard",
                   "trial"
               ],
               "type": "String",
               "metadata": {
                   "description": "The pricing tier of workspace."
               }
           },
           "privateSubnetName": {
               "defaultValue": "private-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the private subnet."
               }
           },
           "publicSubnetName": {
               "defaultValue": "public-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the public subnet."
               }
           },
           "vnetId": {
               "type": "String",
               "metadata": {
                   "description": "The virtual network Resource ID."
               }
           }
       },
       "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')]"
                       },
                       "customVirtualNetworkId": {
                           "value": "[parameters('vnetId')]"
                       },
                       "customPublicSubnetName": {
                           "value": "[parameters('publicSubnetName')]"
                       },
                       "customPrivateSubnetName": {
                           "value": "[parameters('privateSubnetName')]"
                       }
                   }
               }
           }
       ]
    }
    
    1. Acesse a página de Implantação personalizada do portal do Azure.

    2. Clique em Criar seu próprio modelo no editor.

    3. Cole o JSON para o modelo que você copiou.

    4. Clique em Save (Salvar).

    5. Para habilitar o Link Privado, defina os parâmetros publicNetworkAccess e requiredNsgRules de acordo com seu caso de uso.

      Para desabilitar o Link Privado, defina publicNetworkAccess como true e defina requiredNsgRules como AllRules.

    6. Para outros campos, use os mesmos parâmetros usados para criar o workspace, como assinatura, região, nome do workspace, nomes de sub-rede, ID de recurso da VNet existente.

      Importante

      O nome do grupo de recursos, o nome do workspace e os nomes da sub-rede devem ser idênticos ao seu workspace existente, para que esse comando atualize o workspace existente em vez de criar um novo workspace.

    7. Clique em Examinar + Criar.

    8. Se não houver problemas de validação, clique em Criar.

    A atualização da rede pode levar mais de 15 minutos para ser concluída.

Aplicar uma atualização usando o Terraform

Para workspaces criados com o Terraform, atualize o workspace para usar o Link Privado.

Importante

Você deve usar o terraform-provider-azurerm versão 3.41.0 ou posterior e atualizar sua versão do provedor do Terraform conforme necessário. Versões anteriores tentam recriar o workspace se você alterar qualquer uma dessas configurações.

As etapas de alto nível são:

  1. Altere as seguintes configurações do workspace:

    • public_network_access_enabled: defina como true (Habilitado) ou false (Desabilitado)
    • network_security_group_rules_required: Defina como AllRules ou NoAzureDatabricksRules.

    A atualização da rede pode levar mais de 15 minutos para ser concluída.

  2. Crie seus pontos de extremidade privados.

Para obter um guia detalhado de como habilitar o Link Privado e criar os pontos de extremidade privados:

A atualização da rede pode levar mais de 15 minutos para ser concluída.

Etapa 5: testar a autenticação SSO do usuário e a conectividade de back-end

Siga sua página principal de implantação para obter detalhes sobre como:

  • Testar a autenticação SSO do usuário em seu workspace.
  • Testar a conexão de Link Privado de back-end (necessário para uma conexão de back-end)

Etapa 6: validar a atualização

  1. Acesse sua instância de serviço do Azure Databricks no portal do Azure.
  2. Na navegação à esquerda, em Configurações, clique em Rede.
  3. Confirme se o valor para Permitir Acesso à Rede Pública corresponde ao valor que você definiu.
  4. Confirme se o valor de Regras NSG Necessárias corresponde ao valor que você definiu.

Recuperação de falha

Se uma atualização do workspace falhar, o workspace pode ser marcado como um estado Com falha, o que significa que o workspace não pode executar operações de computação. Para restaurar um workspace com falha de volta para o estado Ativo, revise as instruções na mensagem de status da operação de atualização. Depois de corrigir os problemas, refaça a atualização no workspace com falha. Repita as etapas até que a atualização seja concluída com sucesso. Se você tiver dúvidas, entre em contato com sua equipe de conta do Azure Databricks.