Privates IP-Netzwerk mit Looker (Google Cloud Core)

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

E-Mail-Zustellung auf externe Domains beschränken

Standardmäßig erlauben Instanzen von Looker (Google Cloud Core), die nur private IP-Adressen oder sowohl private als auch öffentliche IP-Adressen verwenden, E-Mails an externe Domains. 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.

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

Looker (Google Cloud Core)-Instanzen, die nur eine private IP-Adresse oder sowohl eine private als auch eine öffentliche IP-Adresse 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 interne IP-Adressen verwenden möchten, um eine Verbindung zu Diensten in anderen VPCs herzustellen, die von Google oder Drittanbietern gehostet werden, können Sie den Zugriff auf private Dienste nutzen.

Beim Erstellen von Instanzen von Looker (Google Cloud Core) haben Sie eine Verbindung für den Zugriff auf private Dienste erstellt, um Ihre VPC mit dem Dienst von Looker (Google Cloud Core) 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 stellt eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrer VPC und dem anderen Netzwerk her.

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 beiden folgenden Optionen verwenden, um Instanzen von Looker (Google Cloud Core) entweder nur über private IP-Adressen oder sowohl über private als auch öffentliche IP-Adressen mit lokalen Ressourcen oder Drittanbieterdiensten zu verbinden:

Bei beiden Methoden müssen Sie Folgendes tun:

  • Konfigurieren Sie eine dynamische Route in Ihrer VPC von Looker (Google Cloud Core) für jede lokale Ressource.
  • Richten Sie ein benutzerdefiniertes Routen-Advertising für das Zugriffssubnetz für private Dienste von Looker (Google Cloud Core) auf allen Cloud Routern ein, die in der VPC von Looker (Google Cloud Core) bereitgestellt werden.
  • Aktualisieren Sie Ihre lokalen Firewalls, um Traffic mit dem Looker (Google Cloud Core)-Subnetz 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. Beim Zugriff auf private Dienste wird der Dienst 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) zum Bewerben der privaten IP-Präfixe und zum Programmieren dynamischer Routen auf der Grundlage der BGP-Werbung, die er von einem Peer erhält. Cloud Interconnect wird für die Verbindung zum lokalen Netzwerk verwendet.

Cloud VPN und Cloud Router

Eine Schritt-für-Schritt-Anleitung zum Erstellen einer privaten und öffentlichen Looker (Google Cloud Core)-IP-Instanz und deren Verbindung mit einer lokalen Datenbank über HA VPN und Cloud Router finden Sie im Codelab Looker Cloud über Hybridnetzwerk 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 zum Verbinden anderer Cloud-Dienstanbieter mit Google Cloud.

Zugriff auf private IP-Instanzen gewähren

Damit externe Personen außerhalb Ihrer VPC eine Schnittstelle zu einer Looker (Google Cloud Core)-Instanz haben, für die nur eine private IP-Adresse aktiviert ist, können Sie einen Proxyserver und eine benutzerdefinierte Domain einrichten. Der Rest dieses Abschnitts enthält ein Beispiel für die Einrichtung 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 mit der Befehlszeile einen NGINX-Proxyserver für eine vorhandene Looker (Google Cloud Core)-Instanz einrichten, für die eine Netzwerkverbindung mit einer privaten IP-Adresse aktiviert ist. Obwohl NGINX-Server entweder mit einer öffentlichen oder einer privaten IP-Konfiguration (mit erlaubtem VPN-Zugriff) instanziiert werden können, zeigt dieses Beispiel eine Konfiguration mit öffentlicher IP-Adresse.

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

  1. Öffnen Sie Cloud Shell.

    Zu Cloud Shell

  2. Erstellen Sie in Ihrem VPC-Netzwerk ein Subnetzwerk und eine NGINX-VM für Ubuntu 18 mit aktivierter öffentlicher IP-Adresse. 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 sein, das Sie in diesem Verfahren erstellen, oder ein beliebiges Subnetz in Ihrem VPC-Netzwerk. Muss nicht mit dem Subnetznamen Ihrer Looker (Google Cloud Core)-Instanz übereinstimmen.
      • IP_RANGE: Jeder Bereich ohne Konflikt. 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 ermittelt werden.
      • INSTANCE_NAME: Der Name des Proxyservers.
    • Erstellen Sie das Subnetz. Alternativ können Sie ein Subnetz verwenden, das beim Erstellen Ihres VPC-Netzwerk erstellt wurde, wenn Sie zum Erstellen des VPC-Netzwerk den automatischen Modus verwendet 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 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.

  3. Erstellen Sie mit den folgenden Befehlen eine Firewall, um Traffic zu Ihrer Instanz über die Ports 80, 443 und 22 (oder andere Ports, die von NGINX überwacht werden) zuzulassen:

    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. Erstellen Sie einen öffentlichen DNS-Eintrag mit der Domain, die Sie für Ihre Looker (Google Cloud Core)-Instanz haben möchten, und verweisen Sie auf die öffentliche IP-Adresse der NGINX-VM, die nach der VM-Erstellung ausgegeben wurde. Dieser Eintrag kann auch beim Einrichten einer benutzerdefinierten Domain in der Google Cloud Console erstellt werden.

  5. Erstellen Sie ein Drittanbieterzertifikat für den Zugriff auf die öffentliche URL. In diesem Beispiel wird mit NGINX's Let's Encrypt ein Let's Encrypt-Zertifikat generiert. Sie können aber 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
      
    • 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;
      }
      

      Ersetzen Sie SERVER_NAME durch den Namen des DNS-Eintrags.

    • NGINX neu laden:

      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.

  6. Ersetzen Sie in der Datei nginx.config die Serverkonfiguration aus Schritt 5 durch die folgende Serverkonfiguration, um Traffic an Ihre Instanz von Looker (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;
    }
    

    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.
  7. Prüfen Sie die Datei nginx.config und laden Sie sie neu:

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

    Nächste Schritte