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:
- 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.
- 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.compara 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.
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 |
|---|---|
| Serviço de aplicativos e conectividade do usuário |
| downloads de pacotes Python durante a compilação do aplicativo (necessário se o seu aplicativo usar |
| O pacote Node.js downloads durante a compilação do aplicativo (necessário se o seu aplicativo usar |
Além disso, as implementações na AWS podem exigir estes domínios:
Domínio | Propósito |
|---|---|
| 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.
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.orgpara Python ouregistry.npmjs.orgpara 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 derequirements.txtoupackage.jsonpodem 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.
implantou aplicativos em ambientes de Link Privado
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:
- Crie ou atualize uma configuração de conectividade de rede (NCC) e associe-a ao workspace que hospeda seu aplicativo.
- Crie ou atualize uma política de rede para permitir os domínios necessários.
- Use primeiro o modo de execução a seco para validar sua configuração sem bloquear o tráfego.
- Verifique a tabela do sistema
system.access.outbound_networkpara quaisquer tentativas de conexão negadas durante a implantação do aplicativo.
Solução de problemas de falhas na implantação de links privados
Se o seu aplicativo não for implantado em um ambiente de link privado:
-
Verifique logs de negação de saída. Consulte a tabela de sistema
system.access.outbound_networkpara eventos de negação recentes. Consulte a seção Verificar logsde negação.SQLSELECT *
FROM system.access.outbound_network
WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
ORDER BY event_time DESC; -
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
nslookupde dentro da sua rede privada para verificar:Bashnslookup <your-app-name>.databricksapps.com -
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. -
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.comusa 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 .