Rede IP privada com o Looker (Google Cloud Core)

Depois de configurar uma instância do Looker (Google Cloud Core) para usar somente IP privado ou IP privado e público, configure sua rede para usar determinados recursos do Looker (Google Cloud Core) ou permitir ou restringir a comunicação com serviços externos ou a Internet.

Restringir entregas de e-mails a domínios externos

Por padrão, as instâncias do Looker (Google Cloud Core) que usam apenas IP privado ou IP privado e público permitem a entrega de e-mails para domínios externos. Para restringir os domínios a que os usuários do Looker podem enviar entregas de e-mails, configure uma lista de permissões de domínios de e-mail.

Conectar uma instância de IP privado do Looker (Google Cloud Core) a serviços externos

As instâncias do Looker (Google Cloud Core) que usam apenas IP privado ou privado e público podem exigir configuração adicional para se conectar a serviços ou recursos fora da rede VPC da instância. As seções a seguir descrevem outras opções de configuração.

Como se conectar a outras VPCs usando o acesso a serviços particulares

Para usar IPs internos para se conectar a serviços em outras VPCs hospedadas pelo Google ou por terceiros, use o Acesso a serviços privados.

Durante a criação da instância do Looker (Google Cloud Core), você criou uma conexão de acesso a serviços particulares para conectar sua VPC ao serviço do Looker (Google Cloud Core). Também é possível atualizar a alocação de IP de uma conexão de acesso a serviços particulares sem interromper o tráfego.

Para configurar uma conexão de acesso a serviços particulares:

  1. Aloque um intervalo de IP interno na rede VPC.
  2. Configure a conexão particular entre sua rede VPC e a rede do produtor de serviços usando o intervalo de IP alocado. Essa conexão particular estabelece uma conexão de peering de rede VPC entre sua VPC e a outra rede.

Conexões particulares são um relacionamento um para um entre sua rede VPC e um produtor de serviços. Se um produtor de serviços oferecer vários serviços, você só vai precisar de uma conexão particular para todos eles.

Como se conectar a recursos no local ou serviços de terceiros

É possível usar uma das duas opções a seguir para conectar instâncias do Looker (Google Cloud Core) usando apenas IP privado ou IP privado e público a recursos no local ou serviços de terceiros:

Com qualquer um dos métodos, você precisará fazer o seguinte:

Cloud Interconnect e Cloud Router

O diagrama de rede a seguir mostra como o Cloud Interconnect e o Cloud Router interagem com o serviço Looker (Google Cloud Core) para se conectar a uma rede local:

  1. O acesso a serviços particulares conecta o serviço do Looker (Google Cloud Core) à VPC por endereços IP internos usando o peering de VPC.
  2. O Cloud Router usa o protocolo de gateway de borda (BGP) para divulgar os prefixos de IP privados e programar rotas dinâmicas com base nos anúncios do BGP recebidos de um par. O Cloud Interconnect é usado para se conectar à rede local.

Cloud VPN e Cloud Router

Para conferir um tutorial sobre como criar uma instância de IP público e privado do Looker (Google Cloud Core) e conectá-la a um banco de dados local usando a VPN de alta disponibilidade e o Cloud Router, consulte o codelab Conectar o Looker Cloud em uma rede híbrida.

Como se conectar a bancos de dados hospedados por outros provedores de serviços em nuvem

Para configurar uma conexão particular com bancos de dados ou serviços hospedados por outros provedores de serviços de nuvem, seu projeto do Google Cloud precisa ser configurado para rotear o tráfego para esses provedores e permitir a troca de dados. Saiba como conectar ambientes de nuvem na página de documentação Padrões de conexão de outros provedores de serviços de nuvem ao Google Cloud.

Conceder acesso a instâncias de IP particulares

Para permitir que partes externas à VPC interajam com uma instância do Looker (Google Cloud Core) que tenha apenas IP privado ativado, configure um servidor proxy e um domínio personalizado. Veja nesta seção um exemplo de como configurar um servidor proxy.

Antes de começar

Antes de configurar um servidor proxy, instale ou atualize a Google Cloud CLI para a versão mais recente.

Configurar um servidor proxy

O exemplo a seguir mostra como usar a linha de comando para configurar um servidor proxy NGINX para uma instância atual do Looker (Google Cloud Core) com uma conexão de rede de IP privado ativada. Embora os servidores NGINX possam ser instanciados com configurações de IP público ou privado (com acesso VPN permitido), este exemplo demonstra uma configuração de IP público.

É possível usar qualquer servidor da Web que possa ser configurado como um servidor proxy reverso. Você não precisa configurar um servidor NGINX especificamente.

  1. Abra o Cloud Shell.

    Acessar o Cloud Shell

  2. Execute os comandos a seguir para criar uma sub-rede e uma VM NGINX do Ubuntu 18 com IP público ativado na rede VPC:

    • Defina suas variáveis:

      PROJECT="PROJECT"
      NETWORK="NETWORK"
      SUBNETNAME="SUBNETNAME"
      IP_RANGE=IP_RANGE
      REGION="REGION"
      ZONE="ZONE"
      INSTANCE_NAME="INSTANCE_NAME"
      

      Substitua:

      • PROJECT: o ID do projeto do Google Cloud em que você criou a instância do Looker (Google Cloud Core).
      • NETWORK: o nome da rede VPC que você configurou para a instância do Looker (Google Cloud Core).
      • SUBNETNAME: pode ser uma nova sub-rede que você cria neste procedimento ou qualquer sub-rede na sua rede VPC; não precisa corresponder ao nome da sub-rede da sua instância do Looker (Google Cloud Core).
      • IP_RANGE: qualquer intervalo não conflitante. Use pelo menos /22 (por exemplo, 10.10.0.0/22).
      • REGION: a região em que o servidor proxy será criado.
      • ZONE: a zona em que o servidor proxy será criado. As zonas disponíveis podem ser determinadas executando gcloud compute zones list.
      • INSTANCE_NAME: o nome do servidor proxy.
    • Crie a sub-rede. Você também pode usar uma sub-rede que foi criada quando criou a rede VPC, caso tenha usado o modo automático para isso:

      gcloud compute networks subnets create $SUBNETNAME --network=$NETWORK \
      --range=$IP_RANGE --region=$REGION --project=$PROJECT
      
    • Crie a instância do proxy:

      INSTANCE_EXTERNAL_IP=$(gcloud compute instances create $INSTANCE_NAME \
      --project=$PROJECT --zone=$ZONE --network=$NETWORK --subnet=$SUBNETNAME \
      --format="json" | jq '.[].networkInterfaces[].accessConfigs[].natIP')
      
    • Depois de criar a instância de proxy, execute este comando para gerar o endereço IP público dela:

      echo $INSTANCE_EXTERNAL_IP
      

      Anote o IP externo para mais tarde no procedimento.

  3. Execute estes comandos para criar um firewall que permita o tráfego para sua instância nas portas 80, 443 e 22 (ou outras portas que o NGINX detectará):

    gcloud compute firewall-rules create managementnet-allow-http-https-ssh \
    --direction=INGRESS --priority=1000 --network=$NETWORK --action=ALLOW \
    --rules=tcp:80,tcp:443,tcp:22 --source-ranges=0.0.0.0/0 --project=$PROJECT
    
  4. Crie um registro DNS público usando o domínio que você quer para sua instância do Looker (Google Cloud Core) e apontando para o endereço IP público da VM NGINX gerado após a criação da VM. Esse registro também pode ser criado durante o processo de configuração de um domínio personalizado no console do Google Cloud.

  5. Crie um certificado de terceiros para acessar o URL público. Este exemplo usa o Let's Encrypt do NGINX para gerar um certificado "Let's Encrypt", mas é possível usar qualquer certificado de criptografia.

    • Conecte-se à VM NGINX.

    • Instale a ferramenta Let's Encrypt:

      sudo apt-get update
      sudo apt-get install certbot python3-certbot-nginx
      
    • Acesse o arquivo nginx.config:

      sudo vi /etc/nginx/sites-available/default
      
    • No arquivo nginx.config, substitua a configuração do servidor atual para definir o servidor e a porta 80 para detecção:

      server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        server_name SERVER_NAME;
      }
      

      Substitua SERVER_NAME pelo nome do registro DNS.

    • Atualize o NGINX:

      sudo nginx -t && sudo nginx -s reload
      
    • Gere um certificado:

      sudo certbot --nginx -d SERVER_NAME
      

      Substitua SERVER_NAME pelo nome do registro DNS.

  6. No arquivo nginx.config, substitua a configuração do servidor da Etapa 5 pela seguinte configuração de servidor para transmitir o tráfego à sua instância do Looker (Google Cloud Core):

    server {
      listen 443 ssl http2;
      listen [::]:443 ssl http2;
      server_name SERVER_NAME
      ssl_certificate /etc/letsencrypt/live/SERVER_NAME/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/SERVER_NAME/privkey.pem;
      include /etc/letsencrypt/options-ssl-nginx.conf;
      ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
      location / {
        set $priv_dns "private.lookerapp";
        proxy_pass https://PRIVATE_IP_ADDRESS/$request_uri;
        proxy_set_header Host $server_name;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_protocols TLSv1.3;
        proxy_ssl_verify off;
        proxy_http_version 1.1;
        proxy_pass_request_headers on;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect https://$priv_dns/ https://SERVER_NAME/;
      }
    }
    server {
      if ($host = SERVER_NAME) {
        return 301 https://$host$request_uri;
      }
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name SERVER_NAME;
      return 404;
    }
    

    Substitua:

    • PRIVATE_IP_ADDRESS: o endereço IP particular atribuído à sua instância do Looker (Google Cloud Core), que pode ser visualizado na página DETALHES da instância no console do Google Cloud
    • SERVER_NAME: o nome do registro DNS.
  7. Valide o arquivo nginx.config e recarregue-o:

    sudo nginx -t && sudo nginx -s reload
    
  8. Depois que a configuração for validada, o tráfego estiver roteando para a instância do Looker (Google Cloud Core) e você tiver configurado seu domínio personalizado, insira o domínio personalizado da instância na seção URIs de redirecionamento autorizados do cliente OAuth. Para conferir a instância, acesse o URL dela, adicione usuários, conecte o Looker (Google Cloud Core) ao banco de dados e continue a configuração da instância.

    A seguir