Configuração de uma VPC gerenciada pelo cliente

Importante

Esse recurso requer que sua conta esteja no plano Premium.

Visão geral

Por default, os recursos clássicos de computação de seus workspaces do Databricks, como os clusters do Databricks Runtime, são criados em um cluster do GKE em uma rede de nuvem privada virtual (VPC) do Google Cloud. O Databricks cria e configura essa VPC em sua conta do Google Cloud.

Como alternativa, você pode escolher criar seus workspaces do Databricks em uma customer-managed VPC existente que você cria em sua account do Google Cloud. Você pode usar uma customer-managed VPC para ter maior controle sobre suas configurações de rede para cumprir os padrões específicos de segurança e governança em cloud que sua organização pode exigir. Para configurar seu workspace para usar o Private Service Connect para qualquer tipo de conexão, seu workspace deve usar um customer-managed VPC.

Uma VPC gerenciada pelo cliente é uma boa solução se você tiver:

  • Políticas de segurança que impeçam que provedores de PaaS criem VPCs em sua própria conta do Google Cloud.

  • Um processo de aprovação para criar uma nova VPC, no qual a VPC é configurada e protegida de maneira bem documentada pelas equipes internas de segurança da informação ou engenharia de nuvem.

Os benefícios incluem:

  • Níveis de privilégio inferiores: mantenha mais controle da sua própria conta do Google Cloud. O Databricks não precisa de mais permissões do que as necessárias para a VPC padrão gerenciada pelo Databricks. As permissões necessárias limitadas podem facilitar a obtenção de aprovação para usar o Databricks na pilha de sua plataforma. Consulte Nível de privilégio mais baixo para VPCs gerenciadas pelo cliente.

  • VPCs consolidadas: Configure vários workspaces do Databricks para compartilhar uma única VPC de plano de computação. Isso geralmente facilita o faturamento e gerenciamento de instâncias.

VPC gerenciada pelo cliente

Para usar uma customer-managed VPC, você deve especificá-la ao criar o workspace do Databricks por meio do console da account. Não é possível mover um workspace existente com uma VPC gerenciada pelo Databricks para sua própria VPC. Além disso, após a criação do workspace, não é possível alterar qual VPC gerenciada pelo cliente o workspace utiliza.

Menor nível de privilégio para VPCs gerenciadas pelo cliente

Ao criar um workspace, o Databricks cria uma conta de serviço e concede uma função com as permissões que o Databricks precisa para gerenciar seu workspace.

Se o seu workspace usar uma customer-managed VPC, ele não precisará de tantas permissões. A função que o Databricks cria omite permissões como criar, atualizar e excluir objetos como redes, roteadores e sub-redes. Para ver a lista completa, consulte Permissões necessárias para a account de serviço do workspace.

Requisitos

Requisitos de saída

Como parte da criação de um workspace, a Databricks cria um cluster GKE na VPC. Por default, esse é um cluster particular do GKE, o que significa que não há endereços IP públicos. Para um cluster do GKE privado, a sub-rede e os intervalos de IP secundários que você fornece devem permitir o tráfego público de saída da Internet, o que não é permitido por default. Para ativar a saída, você pode adicionar um NAT do Google Cloud ou usar uma abordagem semelhante. Consulte a Etapa 1: criar e configurar sua VPC. Se você configurar listas de acesso IP, esses endereços IP públicos deverão ser adicionados a uma lista de permissões. Consulte Configurar listas de acesso de IP para workspaces.

Observação

Se, em vez disso, o senhor escolher um GKE público cluster, o seu workspace não terá conectividade segura cluster porque os nós compute têm endereços IP públicos.

Requisitos de rede

A tabela a seguir lista os requisitos para recursos e atributos de rede usando a notação CIDR.

Recurso ou atributo de rede

Descrição

Intervalo válido

Intervalo de sub-rede

O intervalo de IP da sua VPC para alocar os nós do cluster GKE do seu workspace. Para recomendações de dimensionamento e cálculos, consulte Calcular tamanhos de sub-rede para um novo workspace.

O intervalo de /29 a /9.

Região da sub-rede

Região da sub-rede

A região da sub-rede deve corresponder à região do seu workspace para que o Databricks provisione um cluster do GKE para executar seu workspace.

Intervalo secundário para pods GKE

O intervalo de IPs de sua VPC a partir do qual serão alocados os pods do cluster GKE do seu workspace.

O intervalo de /21 a /9.

Intervalo secundário para serviços GKE

O intervalo de IP da sua VPC a partir do qual os serviços do cluster GKE do seu workspace serão alocados.

O intervalo de /27 a /16.

Compartilhando uma VPC com vários workspaces

Você pode usar uma VPC do Google Cloud com vários workspaces. Você deve garantir que as sub-redes de cada workspace não se sobreponham. Para usar projetos separados do Google Cloud para cada workspace, separados do projeto da VPC, use o que o Google chama de VPC compartilhada. Para obter mais detalhes, consulte Requisitos do projeto.

Requisitos do projeto

O projeto do Google Cloud associado à sua VPC pode corresponder ao projeto do workspace, mas não é necessário que isso aconteça.

Se você usa uma VPC padrão, que o Google chama de VPC independente, a Databricks usa o mesmo projeto do Google Cloud para os dois itens a seguir:

  • Sua rede VPC

  • Recursos que o Databricks cria para cada workspace para recursos de compute e armazenamento. Os recursos de compute incluem o cluster do GKE e seus nós de cluster. Os recursos de armazenamento incluem os dois buckets do GCS para dados do sistema e DBFS root.

Se você quiser que sua VPC tenha um projeto do Google Cloud diferente dos recursos de computação e armazenamento, você precisa criar o que o Google chama de VPC compartilhada em vez de uma VPC independente. Uma VPC compartilhada permite conectar recursos de vários projetos a uma rede VPC comum para se comunicarem entre si usando IPs internos dessa rede.

Observação

Notas de terminologia:

  • Não confunda o termo VPC compartilhada com o fato de vários workspaces compartilharem uma VPC. Tanto as VPCs independentes quanto as VPCs compartilhadas podem ser usadas com um único workspace do Databricks ou com vários workspaces.

  • Uma VPC compartilhada também é conhecida como rede interprojetos ou XPN (do inglês "Cross Project Network). A documentação da Databricks usa o termo VPC compartilhada para seguir o uso mais comum na documentação do Google.

Talvez você queira usar um projeto diferente para recursos de workspace por vários motivos:

  • Você deseja separar os metadados de cobrança de cada workspace para atribuição de custo e cálculos de orçamento para cada unidade de negócios que tem seu próprio workspace do Databricks, mas uma única VPC que hospeda todos os workspaces.

  • Você deseja limitar as permissões em cada projeto para cada finalidade. Por exemplo, o projeto que você usa para os recursos de computação e armazenamento de cada workspace não precisa de permissão para criar uma VPC.

  • Sua organização pode exigir essa abordagem nos aplicativos do Google Cloud.

O que o Google chama de projeto de host é o projeto da sua VPC. O que o Google chama de projeto de serviço é o projeto que o Databricks usa nos recursos de computação e armazenamento de cada workspace.

Requisitos de função

A entidade que executa uma operação deve ter as funções específicas necessárias para cada operação.

Importante

A entidade que precisa de funções específicas no projeto depende de como você realiza a operação.

  • Para usar o console de contas, a entidade é a sua conta de usuário administrador.

  • Para usar a API de conta, a entidade é a conta de serviço principal (SA-2) para autenticação OIDC. Lembre-se de que a conta de serviço não herda automaticamente suas funções como criador. Você deve adicionar funções para a conta de serviço no projeto.

Nas contas de VPCs independentes, há um projeto do Google Cloud para a VPC e os recursos implantados nela. Se a sua VPC for o que o Google chama de VPC compartilhada, isso significa que a VPC tem um projeto separado do projeto usado para os recursos de computação e armazenamento de cada workspace. Nas VPCs compartilhadas, a entidade que executa a operação (o usuário ou a conta de serviço) deve ter funções específicas tanto no projeto da VPC quanto no projeto do workspace. Consulte a tabela a seguir para obter detalhes. Para obter detalhes sobre VPCs compartilhadas, consulte Requisitos do projeto.

Para criar um workspace com um cliente-gerenciar VPC, o senhor precisa das funções para criar uma configuração de rede e um workspace. A tabela a seguir mostra as funções que devem ser concedidas ao criador do workspace no projeto GCP em que o workspace será provisionado e no projeto GCP em que o VPC reside (se esse projeto for diferente do projeto workspace ):

Operação

Funções necessárias no(s) projeto(s) GCP onde reside o VPC e/ou workspace

Execute todas as operações de VPC gerenciadas pelo cliente listadas abaixo

Proprietário (roles/owner) ou (b) Editor (roles/editor) e Administrador do Projeto IAM (roles/resourcemanager.projectIamAdmin).

Criar uma configuração de rede

Visualizador (roles/viewer)

Excluir configuração de rede

Nenhuma

Criar um workspace do Databricks

Proprietário (roles/owner) do projeto GCP onde reside o VPC e/ou workspace. Para obter mais detalhes, consulte Permissões necessárias.

Excluir um workspace

Proprietário (roles/owner) ou (b) Editor (editor/owner) e Administrador do Projeto IAM (roles/resourcemanager.projectIamAdmin).

Passo 1: criar e configurar sua VPC

  1. Decida se você quer criar o que o Google chama de VPC independente ou VPC compartilhada. A VPC compartilhada permite especificar um projeto do Google Cloud para a VPC e projetos separados para cada workspace. O Databricks usa o projeto do workspace para criar os recursos de armazenamento e computação do workspace. Consulte Requisitos do projeto.

    • Para usar o mesmo projeto para sua VPC e para os recursos de computação e armazenamento de cada workspace, crie uma VPC independente.

    • Caso contrário, crie uma VPC compartilhada.

  2. Crie a VPC de acordo com os requisitos de rede:

    • Para criar uma VPC independente, use o console do Google Cloud ou a CLI do Google. Para usar a CLI do Google para criar um VPC autônomo com intervalos de IP suficientes para um workspace do Databricks, execute os seguintes comandos. Substitua <region> pela região do Google Cloud na qual você planeja criar seu workspace do Databricks. Substitua <vpc-name> por um novo nome de VPC. Substitua <subnet-name> por um novo nome de sub-rede. Substitua <project-id> pelo ID do projeto da VPC autônoma.

      gcloud config set project  <project-id>
      
      gcloud compute networks create <vpc-name> --subnet-mode=custom
      
      gcloud compute networks subnets create <subnet-name> \
      --network=<vpc-name> --range=10.0.0.0/16 --region=<region> \
      --secondary-range pod=10.1.0.0/16,svc=10.2.0.0/20
      

      Neste exemplo, os intervalos de IP secundários são denominados pod e svc. Esses nomes são relevantes nos passos de configuração posteriores.

    • Para criar uma VPC compartilhada:

      1. Leia o artigo do Google "Visão geral da VPC compartilhada"".

      2. Siga as instruções do artigo do Google "Configuração de clusters com uma VPC compartilhada". O projeto de host é o projeto de sua VPC. O projeto de serviço é o projeto que a Databricks usa para os recursos de computação e armazenamento de cada workspace. Essa página fornece instruções para configurar uma VPC compartilhada, criar um cluster de teste do GKE na VPC compartilhada para teste e excluir o cluster de teste.

  3. Se você planeja usar um cluster GKE privado para qualquer workspace nessa VPC, que é a configuração padrão durante a criação do workspace, os nós de recursos de computação não têm endereços IP públicos.

    Observação

    Se você planeja usar um cluster GKE público durante a criação do workspace, que cria endereços IP públicos para nós de recursos de computação, pule para o próximo passo desta seção.

    Para oferecer suporte a workspaces com um cluster GKE privado, a VPC precisa incluir recursos que permitam o tráfego de saída da sua VPC para a internet pública para que seu workspace possa se conectar ao plano de controle do Databricks.

    Uma abordagem simples para ativar a saída é adicionar um Cloud NAT do Google. Siga as instruções do artigo do Google "Configurar a tradução de endereços de rede com o Cloud NAT". Essa abordagem permite a saída para todos os destinos. Se você quiser limitar a saída apenas aos destinos necessários, poderá fazê-lo agora ou mais tarde usando as instruções em Limitar a saída de rede para seu workspace usando um firewall.

    Se você usar a CLI do Google Cloud neste passo, poderá fazê-lo com os seguintes comandos. Substitua <vpc-name> pelo nome da sua VPC, conforme especificado nos passos anteriores. Substitua <nat-name> pelo novo nome do NAT. Substitua <region> pelo nome da região que você pretende usar com seu workspace (ou vários workspaces na mesma região):

    gcloud compute routers create my-router --network=<vpc-name> --region=<region>
    gcloud compute routers nats create <nat-name> \
        --router=my-router \
        --auto-allocate-nat-external-ips \
        --nat-all-subnet-ip-ranges \
        --router-region=<region>
    

    Para ver mais exemplos, consulte o artigo do Google "Exemplo de configuração do GKE".

Passo 2: confirme ou adicione funções nos projetos da sua conta de usuário administrador

A entidade que executa uma operação deve ter as funções específicas necessárias para cada operação. Consulte Requisitos de função para ver as funções necessárias para criar um workspace e outras operações relacionadas

Importante

A entidade que precisa de funções específicas no projeto depende de como você realiza a operação.

  • Para usar o console de contas, a entidade é a sua conta de usuário administrador.

  • Para usar a API de conta, a entidade é a conta de serviço principal (SA-2) para autenticação OIDC. Lembre-se de que a conta de serviço não herda automaticamente suas funções como criador. Você deve adicionar funções para a conta de serviço no projeto.

Para confirmar ou atualizar as funções da entidade em um projeto:

  1. Acesse a página de IAM do projeto no console do Google Cloud.

  2. Se necessário, altere o projeto no seletor de projetos da parte superior da página para corresponder ao projeto da VPC.

  3. Se a entidade já tiver funções nesse projeto, você poderá encontrá-lo nessa página e revisar suas funções na coluna Função.

  4. Para adicionar novas funções a uma entidade neste projeto:

    1. Na parte superior da página de IAM, clique em ADICIONAR.

    2. No campo Entidade, digite o endereço de e-mail da entidade a ser atualizada.

    3. Clique no campo Selecionar uma função. Escolha uma função listada como obrigatória. Consulte Requisitos de função. Nas funções Proprietário, Visualizador e Editor, você pode encontrá-las no seletor da categoria Básica.

      Observação

      Para criar um workspace com uma VPC gerenciada pelo cliente, você precisa das funções para criar uma configuração de rede e um workspace. Adicione funções para ambas as operações agora.

    4. Para adicionar outras funções, clique em ADICIONAR OUTRA FUNÇÃO e repita os passos anteriores em "Confirmar ou atualizar funções para a entidade em um projeto".

    5. Clique em SALVAR.

  5. Se você usar um VPC compartilhado do Google Cloud, que permite um projeto diferente do Google Cloud para os recursos do seu workspace, como recursos de computação e armazenamento, também precisará confirmar ou adicionar funções para a entidade no projeto do workspace. Repita os passos desta seção, mas use o projeto do workspace em vez do projeto da VPC.

Passo 3: Registre sua rede no Databricks, que cria um objeto de configuração de rede

Registre sua rede (VPC) como um novo objeto de configuração de rede do Databricks.

  1. Acesse o console da conta.

  2. Na barra de navegação à esquerda, clique em Recursos da nuvem recursos de nuvem.

  3. Clique em Adicionar configuração de rede.

  4. Em uma janela separada do navegador, abra o console do Google Cloud.

  5. Navegue até sua VPC.

  6. Clique no nome da sua sub-rede. O console do Google Cloud exibe uma página com detalhes da sub-rede e outras informações necessárias para o formulário.

  7. Copie as informações no formulário Adicionar configuração de rede.

    1. Digite um nome legível por humanos no primeiro campo da configuração da rede.

    2. Digite os valores corretos para o nome da VPC, o nome da sub-rede e a região da sub-rede.

    3. Insira os intervalos de IP secundários para os pods e serviços do GKE. Se você usou o exemplo anterior para criar a VPC independente com o comando gcloud CLI, esses intervalos de IP secundários serão nomeados pod e svc.

    4. Clique em Adicionar.

Passo 4: Crie um workspace do Databricks que faça referência à sua configuração de rede

Importante

Para criar um workspace, você deve ter algumas permissões necessárias do Google na sua account, que pode ser uma Google Account ou uma service account. Consulte Permissões necessárias.

Para criar um workspace usando o console da account, siga as instruções em Criar um workspace usando o console da account e configure os seguintes campos:

  • No ID do projeto do Google Cloud:

    • Se sua VPC for uma VPC independente, defina-a como o ID do projeto da sua VPC. Em uma VPC independente, esse também é o projeto que seu workspace usará para seus recursos.

    • Se sua VPC for uma VPC compartilhada, defina-a como o ID do projeto para os recursos desse workspace.

  • Em Modo de rede, selecione Rede gerenciada pelo cliente.

  • Na Configuração de rede, selecione sua configuração de rede no seletor.

o passo 5: Adicionar regra de firewall para permitir a implementação do compute

Para permitir que o Databricks implante o recurso GCE compute no seu account, o Databricks tenta adicionar automaticamente uma regra de firewall ao seu VPC. Para evitar que a tentativa falhe devido à falta de privilégios, o senhor deve adicionar a seguinte regra de firewall à sua VPC. Essa regra de firewall permite o tráfego entre Databricks-gerenciar VMs em seu VPC. A regra não permite a entrada de pessoas de fora da VPC.

A regra exigida deve ser:

  • Nome da regra: databricks-{WORKSPACE_ID}-ingress

  • Direção: Ingress

  • Prioridade: 1000

  • Alvos: Network tag: databricks-{WORKSPACE_ID}

  • Filtro de origem: IPv4 range: primary CIDR range of subnet

  • Protocolos e portas: permitir tudo