Pular para o conteúdo principal

Configurar a rede para os aplicativos Databricks

Databricks Apps oferece suporte a controle de rede detalhado para ajudar você a proteger e gerenciar como seu aplicativo se comunica com a Internet e recursos internos. Você pode configurar regras de tráfego de entrada (entrada) e saída (saída) usando uma combinação de listas de acesso IP, conectividade privada de front-end e políticas de rede.

Arquitetura de rede

Databricks implantou aplicativos no plano compute serverless , onde eles recebem tráfego diretamente. Isso é semelhante a outros serviços otimizados para rotas, como o modelo de posto e o Vector Search.

O processo de conexão funciona da seguinte forma:

  1. As solicitações iniciais do usuário para um aplicativo Databricks iniciam a autenticação OAuth com o plano de controle para validar a sessão e autorizar o acesso ao aplicativo.
  2. Após a autenticação bem-sucedida, todas as solicitações subsequentes são roteadas diretamente para o plano compute serverless , sem atravessar o plano de controle.

As políticas de segurança de rede configuradas para o plano compute serverless se aplicam ao tráfego dos aplicativos Databricks . Isso inclui listas de acesso IP e configurações de conectividade privada de front-end.

Controles de entrada

Use o recurso a seguir para limitar o acesso ao seu Databricks workspace e aos aplicativos da Internet pública.

  • Listas de acesso IP: restrinja o acesso workspace e ao aplicativo a intervalos de IP conhecidos e confiáveis habilitando listas de acesso IP no nível workspace . Somente tráfego dos intervalos de IP configurados é permitido. Para obter detalhes, consulte Configurar listas de acesso IP para o espaço de trabalho.

  • Conectividade privada de front-end: roteie o tráfego de entrada por meio do seu próprio endpoint de interface VPC em vez da Internet pública.

    Você deve configurar o encaminhamento DNS condicional para o domínio databricksapps.com para garantir a resolução de nomes adequada por meio de sua conexão privada. Caso contrário, as consultas de DNS para o domínio do seu aplicativo podem ser resolvidas para endereços IP públicos em vez do endpoint privado. Para obter instruções de configuração, consulte Configurar PrivateLink de entrada.

Controles de saída

Para controlar o tráfego de saída do seu aplicativo, crie uma configuração de conectividade de rede (NCC) e aplique políticas de rede ao site workspace que hospeda o aplicativo.

Configurações de conectividade de rede

Use uma configuração de conectividade de rede para atribuir IPs de saída estáveis e controlar como seu aplicativo se conecta ao serviço externo. Os NCCs fornecem endereços IP públicos fixos que o senhor pode adicionar às listas de permissões de sistemas externos para permitir com segurança o tráfego do Databricks.

Para restringir a saída para destinos privados, como um bucket S3 ou um balanceador de carga de rede (NLB), configure as conexões PrivateLink como parte da configuração do NCC.

Políticas de rede

Use políticas de rede para impor restrições de saída em aplicativos Databricks e outras cargas de trabalho serverless. Isso é útil quando o senhor precisa atender aos requisitos organizacionais ou compliance para controlar a conectividade de saída.

nota

As políticas de rede estão disponíveis somente no nível Enterprise.

Aplique uma política de rede se seu aplicativo:

  • Deve limitar o acesso a um conjunto específico de domínios externos aprovados
  • Precisa evitar a exfiltração acidental de dados
  • Deve estar em conformidade com os padrões de segurança ou compliance que restringem o tráfego de saída da Internet

Domínios de saída necessários para a implantação do aplicativo

Ao usar políticas de rede de saída restritas, você deve adicionar domínios específicos à lista de permissões para que as compilações ou o tempo de execução do aplicativo sejam bem-sucedidos. Sem esses domínios, as implantações de aplicativos falham porque o processo de compilação não consegue download as dependências nem se comunicar com o serviço necessário.

Os seguintes domínios são obrigatórios para todas as implementações de aplicativos Databricks:

Domínio

Propósito

*.databricksapps.com

Serviço de aplicativos e conectividade do usuário

pypi.org, files.pythonhosted.org

downloads de pacotes Python durante a compilação do aplicativo (necessário se o seu aplicativo usar requirements.txt)

registry.npmjs.org

O pacote Node.js downloads durante a compilação do aplicativo (necessário se o seu aplicativo usar package.json).

Além disso, as implementações na AWS podem exigir estes domínios:

Domínio

Propósito

*.amazonaws.com

Endpoint de serviço AWS (S3, STS) usado por aplicativos que se conectam ao recurso AWS

:::

:::

:::

Seu aplicativo pode exigir domínios adicionais, dependendo de suas dependências específicas ou das APIs externas que ele utiliza. Por exemplo, se seu aplicativo chama uma API REST de terceiros, adicione o domínio dessa API à lista de permissões.

importante

Em ambientes de Private Link com saída restrita, a ausência de entradas na lista de permissões de domínio geralmente causa falhas na implantação de aplicativos. Se a implantação do seu aplicativo falhar, verifique a tabela de sistema system.access.outbound_network em busca de tentativas de conexão negadas para identificar quais domínios adicionar. Consulte a seção "Verificar logsde negação".

Práticas recomendadas para configurar políticas de rede

Siga estas diretrizes para evitar interrupções não intencionais e garantir que seus aplicativos possam acessar os recursos necessários:

  • Permitir apenas os destinos necessários. Adicione nomes de domínio totalmente qualificados (FQDNs) para recursos públicos ou privados que seu aplicativo precise. Consulte Domínios de saída necessários para a implantação do aplicativo para obter o conjunto mínimo de domínios necessários para a implantação.

  • Inclua pacotes repositórios conforme necessário. Se seu aplicativo instalar pacotes públicos Python ou Node.js , você pode precisar permitir domínios como pypi.org para Python ou registry.npmjs.org para Node. Sua aplicação pode exigir domínios adicionais ou diferentes, dependendo de suas dependências específicas. Sem esses repositórios, as compilações de aplicativos que dependem de requirements.txt ou package.json podem falhar.

  • Use o modo de execução seca para validar sua política de rede. Esse modo simula a aplicação de políticas sem bloquear o tráfego.

  • Analise as tentativas de conexão negadas usando a tabela system.access.outbound_network. Isso ajuda a identificar domínios que talvez você precise permitir. Consulte Recusa de cheque logs.

  • Adicione todos os domínios externos necessários, como APIs ou AWS serviço de endpoint confiável, como S3 ou STS.

Se o seu workspace utiliza conectividade privada de front-end, você deve concluir etapas de configuração adicionais para implantar e usar aplicativos Databricks . Sem essa configuração, as implantações de aplicativos podem falhar ou os usuários podem não conseguir acessar o aplicativo.

Configuração de DNS

Você deve configurar o encaminhamento condicional de DNS para o domínio databricksapps.com para que os URLs do aplicativo sejam resolvidos para endereços IP privados em vez de endereços IP públicos. Sem essa configuração, os usuários em uma rede privada não conseguem acessar os aplicativos implantados.

Adicione uma regra de encaminhamento DNS condicional para databricksapps.com que encaminhe as consultas para o resolvedor DNS da sua VPC. Isso garante que os URLs dos aplicativos sejam resolvidos por meio da sua conexão PrivateLink. Para obter instruções detalhadas sobre a configuração de DNS, consulte Configurar Inbound PrivateLink.

Requisitos de saída

Em ambientes de Private Link com saída restrita, os aplicativos exigem conectividade de saída para domínios específicos durante o tempo de compilação e em tempo de execução. Consulte Domínios de saída necessários para a implantação do aplicativo para obter a lista completa de domínios a serem permitidos.

Para configurar a saída de aplicativos em um ambiente de link privado:

  1. Crie ou atualize uma configuração de conectividade de rede (NCC) e associe-a ao workspace que hospeda seu aplicativo.
  2. Crie ou atualize uma política de rede para permitir os domínios necessários.
  3. Use primeiro o modo de execução a seco para validar sua configuração sem bloquear o tráfego.
  4. Verifique a tabela do sistema system.access.outbound_network para quaisquer tentativas de conexão negadas durante a implantação do aplicativo.

Se o seu aplicativo não for implantado em um ambiente de link privado:

  1. Verifique logs de negação de saída. Consulte a tabela de sistema system.access.outbound_network para eventos de negação recentes. Consulte a seção Verificar logsde negação.

    SQL
    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
  2. Verificar resolução de DNS. Confirme se o URL do seu aplicativo aponta para um endereço IP privado, e não para um endereço IP público. Use nslookup de dentro da sua rede privada para verificar:

    Bash
    nslookup <your-app-name>.databricksapps.com
  3. Revisar a configuração da política de rede. Verifique se os domínios necessários estão na lista de permissões. Domínios ausentes para pacotes repositórios (pypi.org, registry.npmjs.org) são a causa mais comum de falhas de compilação.

  4. Reinicie o aplicativo. Após atualizar as políticas de rede, reimplemente ou reinicie o aplicativo para que as políticas atualizadas entrem em vigor. Consulte Reiniciar ou reimplantar cargas de trabalho serverless.

Criptografia e roteamento de tráfego

Os aplicativos Databricks usam caminhos de roteamento dedicados e várias camadas de criptografia para proteger as comunicações de rede e os dados.

Roteamento de tráfego

O tráfego entre o plano de controle Databricks , o plano compute , outros recursos Databricks e o serviço cloud trafega pela rede global do provedor cloud e não atravessa a internet pública.

O tráfego entre usuários e databricksapps.com pode atravessar a Internet pública dependendo da localização da rede do usuário. Para evitar o roteamento público da Internet, configure a conectividade privada de front-end.

Criptografia em trânsito

Todas as comunicações de rede de e para aplicativos são criptografadas:

  • Tráfego de usuários: a comunicação entre usuários e databricksapps.com usa criptografia TLS (Transport Layer Security) 1.3.
  • Tráfego do plano de controle: a comunicação entre o plano de controle Databricks e o plano compute usa TLS mútuo (mTLS) para operações de gerenciamento, incluindo criação, atualizações e exclusão de aplicativos.

Criptografia em repouso

Databricks Apps criptografa os dados armazenados usando os seguintes métodos:

  • Código do aplicativo: Databricks armazena o código do aplicativo em arquivos workspace e usa a mesma criptografia do Notebook e de outros arquivos workspace .
  • armazenamento de computação: os aplicativos usam discos temporários do sistema operacional do host criptografados com AES-256 e a implementação de criptografia default do provedor cloud .