Privates IP-Netzwerk mit Looker (Google Cloud Core)

Nachdem Sie eine Looker (Google Cloud Core)-Instanz so eingerichtet haben, dass nur private IP-Adressen oder sowohl eine private IP-Adresse als auch eine öffentliche IP-Adresse verwendet werden, sollten Sie Ihr Netzwerk so konfigurieren, dass bestimmte Looker (Google Cloud Core)-Funktionen verwendet werden oder die Kommunikation mit externen Diensten oder dem Internet zulassen oder einschränken.

E-Mail-Zustellungen auf externe Domains beschränken

Looker (Google Cloud Core)-Instanzen, die nur private IP-Adressen oder sowohl private als auch öffentliche IP-Adressen verwenden, ermöglichen standardmäßig die E-Mail-Übermittlung an externe Domains. Wenn Sie die Domains einschränken möchten, an die Looker-Nutzer E-Mail-Übermittlungen senden können, können Sie eine Zulassungsliste für E-Mail-Domains einrichten.

Benutzerdefinierte Domain erstellen und darauf zugreifen

Wenn Sie eine Looker (Google Cloud Core)-Instanz nur mit privater IP-Adresse verwenden, müssen Sie eine benutzerdefinierte Domain einrichten, um auf die Instanz zuzugreifen. Außerdem müssen Sie Ihr Netzwerk so konfigurieren, dass es Zugriff auf die private IP-Domain ermöglicht. Die Art der Konfiguration hängt von den Ursprüngen des Traffics der Instanz ab. Auf der Dokumentationsseite Benutzerdefinierte Domain-Netzwerkoptionen für private IP-Instanzen von Looker (Google Cloud Core) finden Sie eine Zusammenfassung der Konfigurationsoptionen und Links zur Dokumentation für jede Option.

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

Looker (Google Cloud Core)-Instanzen, die nur private IP-Adressen oder sowohl private als auch öffentliche IP-Adressen verwenden, erfordern möglicherweise eine zusätzliche Konfiguration, um eine Verbindung zu Diensten oder Ressourcen außerhalb des VPC-Netzwerk der Instanz herzustellen. In den folgenden Abschnitten werden zusätzliche Konfigurationsoptionen beschrieben.

Verbindung zu anderen VPCs über den Zugriff auf private Dienste herstellen

Wenn Sie mithilfe interner IP-Adressen eine Verbindung zu Diensten in anderen VPCs herstellen möchten, die entweder von Google oder Drittanbietern gehostet werden, können Sie den Zugriff auf private Dienste verwenden.

Beim Erstellen der Looker (Google Cloud Core)-Instanz haben Sie eine Verbindung für den Zugriff auf private Dienste erstellt, um Ihre VPC mit dem Looker (Google Cloud Core)-Dienst zu verbinden. Sie können auch die IP-Zuweisung einer vorhandenen Verbindung für den Zugriff auf private Dienste aktualisieren, ohne den Traffic zu unterbrechen.

So richten Sie eine Verbindung für den Zugriff auf private Dienste ein:

  1. Weisen Sie einen internen IP-Bereich in Ihrem VPC-Netzwerk zu.
  2. Richten Sie die private Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers mithilfe des zugewiesenen IP-Bereichs ein. Diese private Verbindung richtet eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrer VPC und dem anderen Netzwerk ein.

Private Verbindungen sind eine 1:1-Beziehung zwischen Ihrem VPC-Netzwerk und einem Dienstersteller. Wenn ein einzelner Dienstersteller mehrere Dienste anbietet, benötigen Sie nur eine private Verbindung für alle Dienste des Erstellers.

Verbindung zu lokalen Ressourcen oder Diensten von Drittanbietern herstellen

Sie können eine der folgenden beiden Optionen verwenden, um Looker (Google Cloud Core)-Instanzen nur über eine private IP-Adresse oder sowohl über eine private als auch über eine öffentliche IP-Adresse mit lokalen Ressourcen oder Diensten von Drittanbietern zu verbinden:

Bei beiden Methoden sind folgende Schritte erforderlich:

  • Konfigurieren Sie für jede lokale Ressource eine dynamische Route in Ihrer Looker (Google Cloud Core)-VPC.
  • Richten Sie auf allen Cloud Routern, die in der VPC von Looker (Google Cloud Core) bereitgestellt werden, ein benutzerdefiniertes Routen-Advertising für das Subnetz für den Zugriff auf private Dienste von Looker (Google Cloud Core) ein.
  • Aktualisieren Sie Ihre lokalen Firewalls, um Traffic mit dem Subnetz von Looker (Google Cloud Core) zuzulassen.
  • Konfigurieren Sie die DNS-Weiterleitung, damit Looker (Google Cloud Core) eine Verbindung zu allen lokalen Ressourcen herstellen kann.

Cloud Interconnect und Cloud Router

Das folgende Netzwerkdiagramm zeigt, wie Cloud Interconnect und Cloud Router mit dem Dienst Looker (Google Cloud Core) interagieren, um eine Verbindung zu einem lokalen Netzwerk herzustellen:

  1. Durch den Zugriff auf private Dienste wird der Dienst von Looker (Google Cloud Core) mithilfe von VPC-Peering über interne IP-Adressen mit der VPC verbunden.
  2. Cloud Router verwendet das Border Gateway Protocol (BGP), um die privaten IP-Präfixe anzubieten und dynamische Routen basierend auf dem BGP-Advertising zu programmieren, das er von einem Peer erhält. Cloud Interconnect wird für die Verbindung mit dem lokalen Netzwerk verwendet.

Cloud VPN und Cloud Router

Eine Anleitung zum Erstellen einer Looker (Google Cloud Core)-Instanz mit privater und öffentlicher IP-Adresse und zum Verbinden mit einer lokalen Datenbank mithilfe von Cloud VPN und Cloud Router finden Sie im Codelab Looker Cloud über Hybridnetzwerke verbinden.

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

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

Zugriff auf private IP-Instanzen gewähren

Damit Parteien außerhalb Ihrer VPC eine Schnittstelle zu einer Looker (Google Cloud Core)-Instanz haben, für die nur private IP-Adressen aktiviert sind, können Sie einen Proxyserver und eine benutzerdefinierte Domain einrichten. Der Rest dieses Abschnitts enthält ein Beispiel für das Einrichten eines Proxyservers.

Hinweise

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

Proxyserver einrichten

Das folgende Beispiel zeigt, wie Sie über die Befehlszeile einen NGINX-Proxyserver für eine vorhandene Looker (Google Cloud Core)-Instanz mit aktivierter Netzwerkverbindung über private IP-Adressen einrichten. Obwohl NGINX-Server mit Konfigurationen für öffentliche IP-Adressen oder private IP-Adressen (mit aktiviertem VPN-Zugriff) instanziiert werden können, zeigt dieses Beispiel eine öffentliche IP-Konfiguration.

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

  1. Benutzerdefinierte Domain erstellen. Die benutzerdefinierte Domain wird der externen IP-Adresse des Proxyservers zugeordnet, wenn Sie den DNS-Eintrag später in diesem Vorgang einrichten.
  2. Öffnen Sie Cloud Shell.

    Zu Cloud Shell

  3. Erstellen Sie ein Subnetzwerk und eine Ubuntu 18-NGINX-VM mit aktivierter öffentlicher IP-Adresse in Ihrem VPC-Netzwerk. Führen Sie dazu die folgenden Befehle aus:

    • Legen Sie die Variablen fest:

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

      Ersetzen Sie Folgendes:

      • PROJECT: Die ID des Google Cloud-Projekts, in dem Sie Ihre Looker (Google Cloud Core)-Instanz erstellt haben.
      • NETWORK: Der Name des VPC-Netzwerk, das Sie für Ihre Looker (Google Cloud Core)-Instanz konfiguriert haben.
      • SUBNETNAME: Kann ein neues Subnetz, das Sie in dieser Prozedur erstellen, oder ein beliebiges Subnetz in Ihrem VPC-Netzwerk sein. Muss nicht mit dem Subnetznamen Ihrer Looker (Google Cloud Core)-Instanz übereinstimmen.
      • IP_RANGE: ein beliebiger nicht in Konflikt stehender Bereich. Verwenden Sie mindestens /22 (z. B. 10.10.0.0/22).
      • REGION: Die Region, in der Sie den Proxyserver erstellen möchten.
      • ZONE: Die Zone, in der Sie den Proxyserver erstellen möchten. Verfügbare Zonen können durch Ausführen von gcloud compute zones list bestimmt werden.
      • INSTANCE_NAME: Der Name des Proxyservers.
    • Erstellen Sie das Subnetz. Alternativ können Sie ein Subnetz verwenden, das beim Erstellen des VPC-Netzwerks erstellt wurde, wenn Sie das VPC-Netzwerk im automatischen Modus erstellt haben:

      gcloud compute networks subnets create $SUBNETNAME --network=$NETWORK \
      --range=$IP_RANGE --region=$REGION --project=$PROJECT
      
    • Erstellen Sie die Proxy-Instanz:

      INSTANCE_EXTERNAL_IP=$(gcloud compute instances create $INSTANCE_NAME \
      --project=$PROJECT --zone=$ZONE --network=$NETWORK --subnet=$SUBNETNAME \
      --format="json" | jq '.[].networkInterfaces[].accessConfigs[].natIP')
      
    • Führen Sie nach dem Erstellen der Proxy-Instanz den folgenden Befehl aus, um die öffentliche IP-Adresse der Proxy-Instanz zu generieren:

      echo $INSTANCE_EXTERNAL_IP
      

      Notieren Sie sich die externe IP-Adresse für später.

  4. Erstellen Sie eine Firewall, um Traffic zu Ihrer Instanz über die Ports 80, 443 und 22 (oder andere Ports, die von NGINX überwacht werden) zuzulassen. Führen Sie dazu die folgenden Befehle aus:

    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
    
  5. Erstellen Sie einen öffentlichen DNS-Eintrag mit der benutzerdefinierten Domain, die Sie zu Beginn dieses Prozesses für Ihre Looker (Google Cloud Core)-Instanz eingerichtet haben, und verweisen Sie auf die öffentliche IP-Adresse der NGINX-VM, die nach der VM-Erstellung ausgegeben wurde.

  6. Erstellen Sie ein Drittanbieterzertifikat für den Zugriff auf die öffentliche URL. In diesem Beispiel wird Let's Encrypt von NGINX verwendet, um ein Let's Encrypt-Zertifikat zu generieren. Sie können jedoch ein beliebiges Verschlüsselungszertifikat verwenden.

    • Stellen Sie eine Verbindung zur NGINX-VM her.

    • Installieren Sie das Let's Encrypt-Tool:

      sudo apt-get update
      sudo apt-get install certbot python3-certbot-nginx
      
    • Greifen Sie auf die Datei nginx.config zu:

      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 das Monitoring einzurichten:

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

      Ersetzen Sie SERVER_NAME durch den Namen des DNS-Eintrags.

    • NGINX aktualisieren:

      sudo nginx -t && sudo nginx -s reload
      
    • Generieren Sie ein Zertifikat:

      sudo certbot --nginx -d SERVER_NAME
      

      Ersetzen Sie SERVER_NAME durch den Namen des DNS-Eintrags.

  7. Ersetzen Sie in der Datei nginx.config die Serverkonfiguration aus dem vorherigen Schritt durch die folgende Serverkonfiguration, um Traffic an Ihre Looker (Google Cloud Core)-Instanz zu leiten:

    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;
    }
    

    Ersetzen Sie Folgendes:

    • PRIVATE_IP_ADDRESS: die Ihrer Looker (Google Cloud Core)-Instanz zugewiesene private IP-Adresse, die Sie in der Google Cloud Console auf der Seite DETAILS der Instanz ansehen können
    • SERVER_NAME: Der Name des DNS-Eintrags.
  8. Überprüfen Sie die Datei nginx.config und laden Sie sie neu:

    sudo nginx -t && sudo nginx -s reload
    
  9. Nachdem die Konfiguration validiert wurde, Traffic an die Instanz von Looker (Google Cloud Core) weitergeleitet und Ihre benutzerdefinierte Domain eingerichtet wurde, können Sie die benutzerdefinierte Domain der Instanz im Bereich Autorisierte Weiterleitungs-URIs des OAuth-Clients eingeben. Anschließend können Sie die Instanz aufrufen, indem Sie die Instanz-URL aufrufen, Nutzer hinzufügen, Looker (Google Cloud Core) mit Ihrer Datenbank verbinden und mit der Instanzeinrichtung fortfahren.

Nächste Schritte