Depois de configurar uma instância do Looker (Google Cloud Core) com uma conexão IP privada, configure a instância ou o projeto do Google Cloud para usar determinados Looker (Google Cloud Core) Looker ou para permitir ou restringir a comunicação com serviços externos ou com a Internet.
Como restringir entregas de e-mail para domínios externos
Por padrão, as instâncias do Looker (Google Cloud Core) que usam uma configuração de IP particular permitem a entrega de e-mails para domínios externos. Para restringir os domínios aos quais os usuários do Looker podem enviar entregas de e-mail, configure uma lista de permissões de domínio de e-mail.
Como conectar uma instância privada de Looker IP (Google Cloud Core) a serviços externos
As instâncias do Looker (Google Cloud Core) que usam uma rede IP particular podem exigir configuração adicional do projeto do Google Cloud para se conectar a serviços ou recursos fora de um perímetro do VPC Service Controls. As opções de configuração são descritas nas seções a seguir.
Como se conectar a um recurso ou serviço do Google Cloud
Para se conectar a outro recurso ou serviço do Google Cloud, talvez seja necessário configurar regras de entrada e saída se o projeto em que o recurso está estiver localizado fora do perímetro do VPC Service Controls. Para informações sobre como configurar uma conexão privada a fontes de dados hospedadas por outro provedor de serviços de nuvem, consulte esta página.
Como se conectar a bancos de dados hospedados por outros provedores de serviços em nuvem
Para que você possa configurar uma conexão particular com bancos de dados ou serviços hospedados por outros provedores de serviços em nuvem, seu projeto do Google Cloud precisa estar configurado para rotear o tráfego para esses provedores de serviços de nuvem a fim de permitir a troca de dados. Saiba mais sobre como conectar ambientes de nuvem na página de documentação Padrões para conectar outros provedores de serviços de nuvem ao Google Cloud.
Como se conectar a recursos locais
Para configurar uma conexão particular com bancos de dados locais, use o Cloud VPN. Você precisará configurar uma rota dinâmica na sua VPC para cada banco de dados local. Se você tiver configurado o encaminhamento de DNS para o projeto em que a instância do Looker (Google Cloud Core) reside, o Looker poderá se conectar a todos os recursos locais.
Como se conectar a outros serviços da Internet
Para se conectar a serviços baseados na Internet, você precisa configurar uma rota dinâmica na VPC para cada serviço. Também é possível usar o Cloud NAT para criar conexões de saída.
Conceder acesso público a instâncias de IP privadas
Para controlar melhor como as partes externas interagem com sua instância do Looker (Google Cloud Core), é possível configurar um servidor proxy para conceder acesso à Internet pública a uma instância que tenha apenas IP privado ativado.
Antes de começar
Antes de configurar um servidor proxy, instale ou atualize para a versão mais recente da Google Cloud CLI.
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 existente do Looker (Google Cloud Core) que tem uma conexão de rede IP privado ativada. Embora os servidores NGINX possam ser instanciados com configurações de IP público ou IP privado (com acesso à VPN permitido), este exemplo demonstra uma configuração de IP público.
Você pode usar qualquer servidor da Web que possa ser configurado como um servidor proxy reverso. Você não precisa configurar um servidor NGINX especificamente.
Usando a linha de comando, crie uma sub-rede e uma VM NGINX do Ubuntu 18 com IP público ativado na sua rede VPC. Basta executar estes comandos:
PROJECT="NAME_OF_CLOUD_PROJECT_THAT_CREATES_LOOKER" NETWORK="VPC_PEERED_WITH_SERVICE_NETWORKING" SUBNETNAME="NAME_SUBNET_WHEN_CREATED_INSTANCE" IP_RANGE=ANY_NONCONFLICTING_RANGE REGION="REGION gcloud compute networks subnets create $SUBNETNAME --network=$NETWORK \ --range=$IP_RANGE --region=$REGION --project=$PROJECT
ZONE="ZONE_THE_INSTANCE_NEEDS_TO_BE_CREATED_IN" INSTANCE_NAME="THE_NAME_FOR_THE_VM_INSTANCE" INSTANCE_EXTERNAL_IP=$(gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT --zone=$ZONE --network=$NETWORK --subnet=$SUBNETNAME \ --format="json" | jq '.[].networkInterfaces[].accessConfigs[].natIP')
PROJECT
é o nome 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).- Defina
IP_RANGE
como pelo menos/22
(por exemplo,10.10.0.0/22
). SUBNETNAME
pode ser qualquer nome. Não precisa corresponder ao nome da sub-rede da sua instância do Looker (Google Cloud Core).ZONE
pode ser determinado executandogcloud compute zones list
.INSTANCE_NAME
pode ser chamado de qualquer coisa. Isso se refere ao nome da sua instância de VM.
Depois de executar os dois comandos gcloud, execute este comando:
echo $INSTANCE_EXTERNAL_IP
Isso gera o endereço IP público da sua instância de VM.
Crie um firewall para permitir o tráfego para sua instância nas portas 80, 443 e 22 (ou outras portas que o NGINX detectará) executando estes comandos:
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
Crie um certificado de terceiros para acessar o URL público. Este exemplo usa Let's Encrypt do NGINX para gerar um certificado Let's Encrypt, mas você pode usar qualquer certificado de criptografia.
Faça login na VM do 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 escutar:server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; server_name SERVER_NAME>; }
SERVER_NAME
é o nome do registro DNS do domínio personalizado para sua instância do Looker (Google Cloud Core).
Atualize o NGINX:
sudo nginx -t && sudo nginx -s reload
Gere um certificado:
sudo certbot --nginx -d SERVER_NAME
SERVER_NAME
é o nome do registro DNS do domínio personalizado para sua instância do Looker (Google Cloud Core).
No arquivo
nginx.config
, substitua a configuração do servidor da Etapa 3 pela seguinte configuração do servidor para transmitir 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; }
PRIVATE_IP_ADDRESS
é o endereço IP particular atribuído à sua instância do Looker (Google Cloud Core), que você pode ver na página DETALHES da instância no Console do Google Cloud.SERVER_NAME
é o nome do registro DNS do domínio personalizado da sua instância do Looker (Google Cloud Core).
Valide o arquivo
nginx.config
e atualize-o:sudo nginx -t && sudo nginx -s reload
A seguir