Dopo aver configurato un'istanza di Looker (Google Cloud Core) con una connessione IP privata, puoi configurare la tua istanza o il tuo progetto Google Cloud in modo che utilizzi determinate funzionalità di Looker (Google Cloud Core) o per consentire o limitare la comunicazione con i servizi esterni o con Internet.
Limitazione delle consegne email a domini esterni
Per impostazione predefinita, le istanze Looker (Google Cloud Core) che utilizzano una configurazione IP privata consentono il recapito delle email ai domini esterni. Per limitare i domini a cui gli utenti di Looker possono inviare recapiti email, puoi configurare una lista consentita dei domini email.
Connessione di un'istanza di Looker IP privato (Google Cloud Core) ai servizi esterni
Le istanze Looker (Google Cloud Core) che utilizzano una rete IP privata potrebbero richiedere una configurazione aggiuntiva del progetto Google Cloud per la connessione a servizi o risorse al di fuori del perimetro dei Controlli di servizio VPC. Le opzioni di configurazione sono descritte nelle sezioni seguenti.
Connessione a una risorsa o a un servizio Google Cloud
Per connetterti a un'altra risorsa o un altro servizio Google Cloud, potresti dover configurare regole per il traffico in entrata e in uscita, se il progetto in cui si trova la risorsa si trova al di fuori del perimetro Controlli di servizio VPC. Per informazioni sulla configurazione di una connessione privata a origini dati ospitate da un altro provider di servizi cloud, consulta Connessione a database ospitati da altri provider di servizi cloud in questa pagina.
Connessione a database ospitati da altri provider di servizi cloud
Per poter configurare una connessione privata a database o servizi ospitati da altri provider di servizi cloud, il tuo progetto Google Cloud deve essere configurato in modo da instradare il traffico a quei provider di servizi cloud per consentire lo scambio di dati. Scopri di più sulla connessione di ambienti cloud, consulta la pagina della documentazione Modelli per la connessione di altri provider di servizi cloud a Google Cloud.
Connessione alle risorse on-premise
Per configurare una connessione privata ai database on-premise, utilizza Cloud VPN. Dovrai configurare una route dinamica nel tuo VPC per ogni database on-premise. Se hai configurato l'inoltro DNS per il progetto in cui si trova l'istanza di Looker (Google Cloud Core), Looker sarà in grado di connettersi a qualsiasi risorsa on-prem.
Connessione ad altri servizi Internet
Per connetterti ai servizi basati su Internet, devi configurare una route dinamica nel tuo VPC per ogni servizio. Puoi inoltre utilizzare Cloud NAT per creare connessioni in uscita.
Concedi l'accesso pubblico alle istanze IP private
Per controllare ulteriormente il modo in cui le parti esterne si interfacciano con la tua istanza di Looker (Google Cloud core), puoi configurare un server proxy in modo da concedere l'accesso a Internet pubblico a un'istanza che ha solo IP privato abilitato.
Prima di iniziare
Prima di poter configurare un server proxy, devi installare o eseguire l'aggiornamento alla versione più recente di Google Cloud CLI.
Configura un server proxy
L'esempio seguente mostra come utilizzare la riga di comando per configurare un server proxy NGINX per un'istanza di Looker (Google Cloud Core) esistente per cui è abilitata una connessione di rete IP privato. Anche se è possibile creare istanze di server NGINX con configurazioni con IP pubblico o IP privato (con accesso VPN consentito), questo esempio illustra una configurazione con IP pubblico.
Puoi utilizzare qualsiasi server web che possa essere configurato come server proxy inverso. Non è necessario configurare un server NGINX nello specifico.
Utilizzando la riga di comando, crea una subnet e crea una VM NGINX Ubuntu con IP pubblico abilitato nella tua rete VPC eseguendo questi comandi:
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
è il nome del progetto Google Cloud in cui hai creato la tua istanza di Looker (Google Cloud Core).NETWORK
è il nome della rete VPC che hai configurato per l'istanza di Looker (Google Cloud Core).- Imposta
IP_RANGE
su almeno/22
(ad esempio,10.10.0.0/22
). SUBNETNAME
può essere qualsiasi nome; non deve corrispondere al nome della subnet della tua istanza di Looker (Google Cloud Core).ZONE
può essere determinato eseguendogcloud compute zones list
.INSTANCE_NAME
può essere chiamato in qualsiasi modo, questo si riferisce al nome della tua istanza VM.
Dopo aver eseguito entrambi i comandi gcloud, esegui questo comando:
echo $INSTANCE_EXTERNAL_IP
Verrà generato l'indirizzo IP pubblico della tua istanza VM.
Crea un firewall per consentire il traffico verso la tua istanza sulle porte 80, 443 e 22 (o su altre porte su cui NGINX è in ascolto) eseguendo questi comandi:
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
Crea un certificato di terze parti per accedere all'URL pubblico. In questo esempio viene utilizzato Let's Encrypt di NGINX per generare un certificato di crittografia, ma puoi utilizzare qualsiasi certificato di crittografia.
Accedi alla VM NGINX.
Installa lo strumento Let's Encrypt:
sudo apt-get update sudo apt-get install certbot python3-certbot-nginx
Accedi al file
nginx.config
:sudo vi /etc/nginx/sites-available/default
Nel file
nginx.config
, sostituisci la configurazione del server esistente per configurare il server e la porta 80 per l'ascolto:server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; server_name SERVER_NAME>; }
SERVER_NAME
è il nome del record DNS del dominio personalizzato per la tua istanza di Looker (Google Cloud Core).
Ricarica NGINX:
sudo nginx -t && sudo nginx -s reload
Genera un certificato:
sudo certbot --nginx -d SERVER_NAME
SERVER_NAME
è il nome del record DNS del dominio personalizzato per la tua istanza di Looker (Google Cloud Core).
Nel file
nginx.config
, sostituisci la configurazione del server del passaggio 3 con la seguente configurazione del server, per passare il traffico alla tua istanza di 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
è l'indirizzo IP privato assegnato alla tua istanza di Looker (Google Cloud Core), che puoi visualizzare nella pagina DETTAGLI dell'istanza nella console Google Cloud.SERVER_NAME
è il nome del record DNS del dominio personalizzato per la tua istanza di Looker (Google Cloud Core).
Convalida il file
nginx.config
e ricaricalo:sudo nginx -t && sudo nginx -s reload
Che cosa succede dopo?