Pular para o conteúdo principal

Limite a saída de rede para seu workspace usando um firewall

Esta página mostra como configurar regras de firewall VPC , rotas e DNS privado para restringir a saída de rede do seu workspace Databricks no Google Cloud apenas aos serviços e destinos essenciais.

Antes de começar, você precisará de:

  • Familiaridade com a arquitetura do Databricks. Veja Arquitetura de alto nível.
  • Se você planeja usar o comando CLI gcloud , instale o SDKdo Google Cloud.
  • Você deve ter a função roles/iam.networkAdmin ou permissões suficientes.

Visão geral da configuração do firewall

Essa configuração utiliza uma abordagem de negação pordefault : bloqueia todo o tráfego de saída e, em seguida, permite seletivamente apenas as conexões necessárias. A configuração possui três componentes principais:

  1. Acesso privado ao Google : Permite que as máquinas virtuais acessem Google Cloud Storage e outros serviços do Google por meio da rede interna do Google. Isso permite que Databricks grave logs workspace no GCS sem exigir IPs públicos nos nós cluster .

  2. RotasVPC e DNS : Direcione o tráfego API do Google através de restricted.googleapis.com, que fornece acesso apenas a serviços compatíveis com VPC Service Controls . Isso impede a exfiltração de dados para serviços do Google não suportados.

  3. Regras de firewall para o serviço Databricks : Permitir saída para um endpoint específico do plano de controle Databricks :

    • Plano de controle Databricks e recurso do sistema de gerenciamento Databricks
    • Comunicação intra-sub-rede para funcionalidade de cluster
    • Hive metastore padrão (porta 3306) é usado, a menos que você utilize um Hive metastore Apache externo (legado).
dica

Os endereços IP do serviço do plano de controle variam conforme a região. Mantenha os endereços IP e domínios do Databricks serviço e ativo disponíveis ao configurar as regras de firewall na etapa 3. Você precisará dos endereços IP e portas regionais do seu workspace.

Passo 1: Planeje o dimensionamento da sua rede

Antes de criar seu workspace, planeje o tamanho da sua rede para garantir espaço de IP suficiente para suas cargas de trabalho. Alterar a sub-rede após a criação workspace exige a atualização da configuração de rede do workspace. Consulte Atualizar a configuração de rede workspace.

Se a sub-rede for muito pequena, o workspace esgotará seu espaço de IP e fará com que a tarefa falhe. Para obter orientações sobre como dimensionar sua sub-rede com base no tamanho cluster e na quantidade workspace , consulte Dimensionamento de sub-rede para um novo workspace.

o passo 2: Adicionar regras de firewall VPC

Após criar seu workspace, configure as regras do firewall para implementar o modelo de segurança de negação pordefault . Substitua os marcadores de posição no comando abaixo pelos valores específicos do seu workspace :

Obtenha o nome da sua VPC

  1. Na página workspace do consoleaccount, clique no seu workspace para iniciá-lo.
  2. Copie a parte numérica do URL após ?o=. Por exemplo, se o URL workspace for https://1676665108650415.5.gcp.databricks.com/?o=1676665108650415#, o ID workspace será 1676665108650415.
  3. O nome da sua VPC é databricks-managed-<workspace-ID>. Por exemplo, databricks-managed-1676665108650415.

Como alternativa, use a página de VPCs do Google Cloud Console para view e gerenciar regras de firewall por meio da interface do usuário.

Bloquear todas as saídas (negar pordefault)

Crie uma regra para bloquear todo o tráfego de saída. Defina a prioridade para 1100 para que ela se aplique após todas as regras de permissão específicas (que usam prioridades de 1000 a 1099). Bloquear toda a saída também bloqueia o acesso a repositórios de pacotes públicos, como pypi.org e Maven Central. Planeje isso antes de ativar uma regra de negação total.

Bash
gcloud compute firewall-rules create deny-egress \
--action DENY \
--rules all \
--destination-ranges 0.0.0.0/0 \
--direction EGRESS \
--priority 1100 \
--network <vpc-name>
importante

Defina a prioridade desta regra como 1100. Números de prioridade mais baixos são avaliados primeiro, portanto, definir uma prioridade abaixo das suas regras de permissão, como 1000 ou 1099, impede que Databricks acesse serviços essenciais. Isso torna seu workspace inutilizável.

dica

Se você precisar acessar o espaço de IP interno (10.0.0.0/8, 172.16.0.0/20 ou 192.168.0.0/16), adicione regras de saída específicas para esses intervalos com prioridade de 1000 a 1099.

Permitir APIs do Google (acesso restrito)

Habilite o acesso ao serviço Google Cloud por meio de um endpoint compatível com VPC Service Controls . Essas duas regras funcionam em conjunto para fornecer acesso seguro às APIs do Google:

  • 199.36.153.4/30Acesso restrito à API principal para GCE
  • 34.126.0.0/18Ponto de entrada para serviços compatíveis VPC Service Controls .
Bash
gcloud compute firewall-rules create to-google-apis \
--action ALLOW \
--rules all \
--destination-ranges 199.36.153.4/30 \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

gcloud compute firewall-rules create to-google-apis-entry-point \
--action ALLOW \
--rules tcp:443 \
--destination-ranges 34.126.0.0/18 \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

Permitir comunicação dentro da sub-rede

Para garantir o funcionamento correto do cluster, permita o tráfego dentro da sua sub-rede Databricks. Utilize o intervalo de IP primário para os nós do GCE a partir das configurações avançadas do seu workspace durante a criação.

Bash
gcloud compute firewall-rules create databricks-<workspace-id>-egress-intra-subnet \
--action ALLOW \
--rules all \
--destination-ranges <databricks-subnet-cidr> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

Permitir o serviço do plano de controle Databricks (se o PSC não estiver ativado)

Permitir a saída para o endpoint do plano de controle Databricks nas portas 443 e 8443-8451. Obtenha os endereços IP regionais para seu workspace em Endereços IP e domínios para Databricks serviço e ativo.

Substitua os endereços IP de espaço reservado:

  • <web-app-ips>Endereços de entrada regionais para a aplicação web (normalmente vários blocos CIDR)
  • <scc-relay-ip>Endereço IP regional para o servidor de retransmissão de conectividade segura do cluster .
Bash
gcloud compute firewall-rules create to-databricks-control-plane \
--action ALLOW \
--rules tcp:443,tcp:8443-8451 \
--destination-ranges <web-app-ips>,<scc-relay-ip> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>
importante

A Databricks recomenda o uso de um firewall que suporte regras baseadas em FQDN em vez de regras baseadas em IP. Os endereços IP Databricks podem mudar e podem interromper a criação de workspace ou cluster se as regras do firewall não forem atualizadas.

Permitir que o endpoint de conexão do serviço privado seja ativado.

Se você habilitou a opção "Habilitar Conexão de Serviço Privado" para seu workspace, permita a saída para a sub-rede endpoint do PSC em vez dos IPs públicos do plano de controle.

Bash
gcloud compute firewall-rules create egress-to-databricks-psc-subnet \
--description "Allow egress traffic to Databricks Private Service Connect (PSC) endpoint subnet for workspace access over HTTPS." \
--direction EGRESS \
--priority 1000 \
--network <vpc-name> \
--allow tcp:443,tcp:8443-8451 \
--destination-ranges <psc-subnet-range>

Permitir Hive metastore default (opcional)

Se você usar o metastore default , permita a saída para o endereço IP do metastore regional na porta 3306. Se você usa um Hive metastore Apache Hive externo (legado), crie uma regra para o seu metastore externo.

Bash
gcloud compute firewall-rules create to-databricks-managed-hive \
--action ALLOW \
--rules tcp:3306 \
--destination-ranges <metastore-ip> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>
importante

Recomendamos o uso do What is Unity Catalog? em vez do antigo Hive metastore.

Adicionar regras personalizadas (opcional)

Adicione quaisquer regras de saída adicionais que sua organização precise para a fonte de dados e outros sistemas. Defina todas as regras personalizadas ALLOW com valores de prioridade de 1000 a 1099 para que o firewall as avalie antes da regra de negação total em 1100.

As regras do seu firewall devem ser semelhantes às seguintes:

Nome

Tipo

Filtros

Protocolos e portas

Ação

Prioridade

to-google-apis

Saída

Faixas de IP: 199.36.153.4/30

Todos

Permitir

1000

to-databricks-control-plane

Saída

Intervalos de IP: Intervalos de IP do Plano de Controle Regional ou IPs de ponto de extremidade do PSC

tcp:443, 8443-8451

Permitir

1000

databricks-<workspace-id>-egress-intra-subnet

Saída

Intervalos de IP: intervalo de sub-rede do espaço de trabalho

Todos

Permitir

1000

deny-egress

Saída

Intervalos de IP: 0.0.0.0/0

Todos

Negar

1100

databricks-<workspace-id>-ingress

Entrada

Intervalos de IP: intervalo de sub-rede do espaço de trabalho

Todos

Permitir

1000

o passo 3: Atualizar rotas VPC

Adicione rotas estáticas personalizadas para direcionar o tráfego da API do Google através dos intervalos VIP restritos. Cada rota utiliza o gateway de internet default como próximo salto. Essa configuração garante que máquinas virtuais sem IPs públicos possam acessar o endpoint da API restrita do Google.

Criar rotas para os seguintes intervalos de destino:

  • 199.36.153.4/30: Endpoint API de acesso privado do Google para restricted.googleapis.com
  • 34.126.0.0/18Ponto de entrada de API restrito para restricted.googleapis.com
Bash
# Route for Private Google Access API endpoints
gcloud compute routes create allow-private-google-access \
--network <vpc-name> \
--destination-range 199.36.153.4/30 \
--next-hop-gateway default-internet-gateway \
--description "Route for Private Google Access (199.36.153.4/30)"

# Route for Restricted API entry points
gcloud compute routes create allow-restricted-google-apis \
--network <vpc-name> \
--destination-range 34.126.0.0/18 \
--next-hop-gateway default-internet-gateway \
--description "Route for restricted.googleapis.com entry point (34.126.0.0/18)"

Para obter mais informações sobre como o Cloud NAT interage com o Acesso Privado do Google, consulte Interações de produtos NAT na documentação do Google Cloud.

Passo 4: Configurar DNS privado para APIsrestritas do Google

Configure uma zona DNS privada para redirecionar todo o tráfego da API do Google para restricted.googleapis.com. Isso garante que as VMs Databricks acessem apenas APIs do Google compatíveis com VPC Service Controls , evitando a exfiltração de dados para serviços não suportados. Para obter mais informações, consulte as opções de Acesso Privado do Google na documentação do Google Cloud.

Crie uma zona DNS privada para googleapis.com

Configure uma zona de gerenciamento DNS privada na nuvem com o domínio googleapis.com. Anexe esta zona à VPC onde suas cargas de trabalho serão executadas. Isso garante que sua zona DNS privada resolva solicitações para *.googleapis.com, não DNS público.

Bash
# Create a private DNS managed zone
gcloud dns managed-zones create restricted-apis-zone \
--description "Private DNS zone for restricted.googleapis.com" \
--dns-name "googleapis.com." \
--visibility private \
--networks "projects/<project-id>/global/networks/<vpc-name>"

Adicione registros A para restricted.googleapis.com

Adicione registros A com todos os quatro VIPs (199.36.153.4199.36.153.7) para restricted.googleapis.com.

Bash
# Add A records for restricted.googleapis.com VIPs
gcloud dns record-sets create "restricted.googleapis.com." \
--type A \
--ttl 300 \
--zone restricted-apis-zone \
--rrdatas "199.36.153.4" "199.36.153.5" "199.36.153.6" "199.36.153.7"

Redirecione o tráfego da API usando CNAMEs.

Dentro da zona DNS privada, crie um registro CNAME curinga (*.googleapis.com) apontando para restricted.googleapis.com. Isso força todo o tráfego da API do Google (por exemplo, storage.googleapis.com, bigquery.googleapis.com) a ser resolvido para o VIP restrito.

Bash
# Create a wildcard CNAME record pointing to restricted.googleapis.com
gcloud dns record-sets create "*.googleapis.com." \
--type CNAME \
--ttl 300 \
--zone restricted-apis-zone \
--rrdatas "restricted.googleapis.com."
importante

Essa configuração direciona todas as solicitações da API do Google por meio do endpoint restrito. Somente APIs compatíveis com VPC Service Controlssão acessíveis. Essa configuração bloqueia serviços como o Gmail ou o Maps.

o passo 5: Validar configuração

Teste a configuração do firewall para verificar se o workspace funciona corretamente com a saída de rede restrita:

  1. Crie e inicie um recurso compute de uso geral.
  2. Confirme se o processo foi iniciado com sucesso e atingiu o estado "Em execução" .
  3. Anexe um Notebook ao compute recurso e execute um teste simples, como o SELECT 1+1.

Automatize a implantação com o Terraform.

Para implantações em produção ou gerenciamento de múltiplos espaços de trabalho, Databricks recomenda o uso Terraform para automatizar a configuração do firewall descrita acima. A Arquitetura de Referência de Segurança (SRA) fornece módulos Terraform prontos para produção que automatizam:

  • Regras de firewallVPC para negar pordefault o tráfego de saída, o acesso ao plano de controle Databricks e APIsdo Google restritas.
  • Rotas VPC para acesso privado ao Google
  • Zonas e registros DNS privados para restricted.googleapis.com

Para começar:

  1. Clone o repositório SRA: git clone https://github.com/databricks/terraform-databricks-sra.git.
  2. Analise o módulo de implantação workspace GCP.
  3. Configure o módulo com os valores específicos do seu projeto.
  4. Aplique a configuração Terraform para provisionar seu workspace com regras de firewall.
nota

A Arquitetura de Referência de Segurança (SRA) é orientada pela comunidade e não tem suporte oficial da Databricks.