Private IP-Looker-Instanz (Google Cloud Core) konfigurieren

Nachdem Sie eine Looker-Instanz (Google Cloud Core) mit einer privaten IP-Verbindung eingerichtet haben, können Sie die Instanz oder das Google Cloud-Projekt so konfigurieren, dass bestimmte Looker-Funktionen verwendet werden oder die Kommunikation mit externen Diensten oder dem Internet zugelassen oder eingeschränkt wird.

E-Mail-Zustellung auf externe Domains beschränken

Bei Looker-Instanzen (Google Cloud-Kern) mit einer privaten IP-Konfiguration ist standardmäßig die Zustellung von E-Mails an externe Domains zulässig. Wenn Sie die Domains einschränken möchten, an die Looker-Nutzer E-Mails senden können, können Sie eine Zulassungsliste für E-Mail-Domains einrichten.

Private IP-Looker-Instanz (Google Cloud Core) mit externen Diensten verbinden

Für Looker-Google Cloud-Kerninstanzen, die ein privates IP-Netzwerk verwenden, ist möglicherweise eine zusätzliche Konfiguration des Google Cloud-Projekts erforderlich, um eine Verbindung zu Diensten oder Ressourcen außerhalb eines Perimeters von VPC Service Controls herzustellen. Die Konfigurationsoptionen werden in den folgenden Abschnitten beschrieben.

Verbindung zu einer Google Cloud-Ressource oder einem Google Cloud-Dienst herstellen

Damit Sie eine Verbindung zu einer anderen Google Cloud-Ressource oder einem anderen Google Cloud-Dienst herstellen können, müssen Sie möglicherweise Regeln für eingehenden und ausgehenden Traffic einrichten, wenn sich das Projekt, in dem sich die Ressource befindet, außerhalb des Perimeters von VPC Service Controls befindet. Informationen zum Einrichten einer privaten Verbindung zu Datenquellen, die von einem anderen Cloud-Dienstanbieter gehostet werden, finden Sie unter Verbindung zu Datenbanken herstellen, die von anderen Cloud-Dienstanbietern gehostet werden auf dieser Seite.

Verbindung zu Datenbanken herstellen, die von anderen Cloud-Dienstanbietern gehostet werden

Damit Sie eine private Verbindung zu Datenbanken oder Diensten einrichten können, die von anderen Cloud-Dienstanbietern gehostet werden, muss Ihr Google Cloud-Projekt so konfiguriert sein, dass der Traffic an diese Cloud-Dienstanbieter weitergeleitet wird, um den Datenaustausch zu ermöglichen. Weitere Informationen zum Verbinden von Cloud-Umgebungen finden Sie auf der Seite Muster zum Verbinden anderer Cloud-Dienstanbieter mit Google Cloud.

Verbindung zu lokalen Ressourcen herstellen

Verwenden Sie Cloud VPN, um eine private Verbindung zu lokalen Datenbanken einzurichten. Sie müssen in Ihrer VPC für jede lokale Datenbank eine dynamische Route konfigurieren. Wenn Sie die DNS-Weiterleitung für das Projekt konfiguriert haben, in dem sich die Looker-Instanz (Google Cloud-Kern) befindet, kann Looker eine Verbindung zu allen lokalen Ressourcen herstellen.

Verbindung zu anderen Internetdiensten herstellen

Wenn Sie eine Verbindung mit internetbasierten Diensten herstellen möchten, müssen Sie in Ihrer VPC für jeden Dienst eine dynamische Route konfigurieren. Sie können außerdem Cloud NAT verwenden, um ausgehende Verbindungen zu erstellen.

Öffentlichen Zugriff auf private IP-Instanzen gewähren

Wenn Sie weitere Möglichkeiten haben, die Schnittstelle von externen Parteien mit Ihrer Looker-Instanz (Google Cloud Core) zu steuern, können Sie einen Proxyserver einrichten, um öffentlichen Internetzugriff auf eine Instanz zu gewähren, für die nur private IP-Adresse aktiviert ist.

Hinweise

Bevor Sie einen Proxyserver einrichten können, müssen Sie die neueste Version der Google Cloud CLI installieren oder auf die neueste Version aktualisieren.

Proxyserver einrichten

Im folgenden Beispiel wird gezeigt, wie Sie mit der Befehlszeile einen NGINX-Proxyserver für eine vorhandene Looker-Instanz (Google Cloud Core) einrichten, für die eine private IP-Netzwerkverbindung aktiviert ist. Obwohl NGINX-Server entweder mit Konfigurationen für öffentliche IP-Adressen oder mit privaten IP-Adressen (mit VPN-Zugriff) instanziiert werden können, wird in diesem Beispiel eine öffentliche IP-Konfiguration veranschaulicht.

Sie können einen beliebigen Webserver verwenden, der als Reverse-Proxyserver konfiguriert werden kann. Sie müssen keinen NGINX-Server speziell einrichten.

  1. Erstellen Sie mit der Befehlszeile mithilfe der folgenden Befehle ein Subnetzwerk und eine Ubuntu 18 NGINX VM mit öffentlicher IP-Adresse in Ihrem VPC-Netzwerk:

    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 ist der Name des Google Cloud-Projekts, in dem Sie die Looker-Instanz (Google Cloud Core) erstellt haben.
    • NETWORK ist der Name des VPC-Netzwerk, das Sie für Ihre Looker-Instanz (Google Cloud-Kern) konfiguriert haben.
    • Setzen Sie IP_RANGE auf mindestens /22 (z. B. 10.10.0.0/22).
    • SUBNETNAME kann ein beliebiger Name sein. Er muss nicht mit dem Subnetznamen Ihrer Looker-Instanz (Google Cloud Core) übereinstimmen.
    • ZONE kann durch Ausführen von gcloud compute zones list ermittelt werden.
    • INSTANCE_NAME kann beliebig aufgerufen werden. Dies bezieht sich auf den Namen der VM-Instanz.

    Führen Sie den folgenden gcloud-Befehl aus:

    echo $INSTANCE_EXTERNAL_IP
    

    Dadurch wird die öffentliche IP-Adresse Ihrer VM-Instanz generiert.

  2. Erstellen Sie eine Firewall, damit Traffic zu Ihrer Instanz an den Ports 80, 443 und 22 (oder anderen Ports, die NGINX annimmt) mithilfe der folgenden Befehle zugelassen wird:

    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
    
  3. Erstellen Sie ein Drittanbieterzertifikat, um auf die öffentliche URL zugreifen zu können. In diesem Beispiel wird Let's Encrypt verwendet, um ein Let's Encrypt-Zertifikat zu generieren. Sie können aber ein beliebiges Verschlüsselungszertifikat verwenden.

    Melden Sie sich auf der NGINX-VM an.

    Installieren Sie das Let's Encrypt-Tool:

    sudo apt-get update
    sudo apt-get install certbot python3-certbot-nginx
    

    Rufen Sie die Datei nginx.config auf:

    sudo vi /etc/nginx/sites-available/default
    

    Ersetzen Sie in der Datei nginx.config die vorhandene Serverkonfiguration, um den Server und Port 80 für die Überwachung einzurichten:

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

    NGINX neu laden:

    sudo nginx -t && sudo nginx -s reload
    

    Generieren Sie ein Zertifikat:

    sudo certbot --nginx -d SERVER_NAME
    
  4. Ersetzen Sie in der Datei nginx.config die Serverkonfiguration aus Schritt 3 durch die folgende Serverkonfiguration, um Traffic an Ihre Looker-Instanz (Google Cloud Core) weiterzuleiten:

    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 ist die private IP-Adresse, die Ihrer Looker- (Google Cloud-Core-)Instanz zugewiesen ist. Sie können sie in der Google Cloud Console auf der Seite DETAILS der Instanz ansehen.
    • SERVER_NAME ist der Name des DNS-Eintrags aus der benutzerdefinierten Domain für Ihre Looker-Instanz (Google Cloud-Kern)
  5. Validieren Sie die Datei nginx.config und laden Sie sie neu:

    sudo nginx -t && sudo nginx -s reload
    

    Nächste Schritte