Mise en réseau IP privée avec Looker (Google Cloud Core)

Une fois que vous avez configuré une instance Looker (Google Cloud Core) pour n'utiliser qu'une adresse IP privée, ou à la fois une adresse IP privée et une adresse IP publique, vous pouvez configurer votre réseau de façon à utiliser certaines fonctionnalités de Looker (Google Cloud Core), ou pour autoriser ou restreindre la communication avec des services externes ou Internet.

Restreindre la distribution des e-mails vers des domaines externes

Par défaut, les instances Looker (Google Cloud Core) qui n'utilisent qu'une adresse IP privée, ou à la fois une adresse IP privée et une adresse IP publique, autorisent la distribution d'e-mails à des domaines externes. Pour limiter les domaines auxquels les utilisateurs de Looker peuvent envoyer des e-mails, vous pouvez configurer une liste d'autorisation de domaines de messagerie.

Créer un domaine personnalisé et y accéder

Lorsque vous utilisez une instance Looker (Google Cloud Core) avec adresse IP privée uniquement, vous devez configurer un domaine personnalisé pour accéder à l'instance. De plus, vous devez configurer votre réseau pour fournir l'accès au domaine personnalisé d'adresse IP privée. Le type de configuration dépend des origines du trafic de l'instance. Consultez la page de documentation Options de mise en réseau de domaines personnalisés pour les instances d'adresses IP privées Looker (Google Cloud Core) pour obtenir un résumé des options de configuration et des liens vers la documentation de chaque option.

Connecter une instance Looker (Google Cloud Core) d'une adresse IP privée à des services externes

Les instances Looker (Google Cloud Core) qui n'utilisent qu'une adresse IP privée, ou à la fois une adresse IP privée et une adresse IP publique, peuvent nécessiter une configuration supplémentaire pour se connecter à des services ou à des ressources en dehors du réseau VPC de l'instance. Les sections suivantes décrivent des options de configuration supplémentaires.

Se connecter à d'autres VPC à l'aide de l'accès aux services privés

Pour utiliser des adresses IP internes afin de vous connecter aux services d'autres VPC hébergés par Google ou par des tiers, vous pouvez utiliser l'accès aux services privés.

Lors de la création d'une instance Looker (Google Cloud Core), vous avez créé une connexion d'accès aux services privés pour connecter votre VPC au service Looker (Google Cloud Core). Vous pouvez également mettre à jour l'attribution d'adresses IP d'une connexion d'accès aux services privés existante sans perturber le trafic.

Pour configurer une connexion d'accès aux services privés:

  1. Attribuez une plage d'adresses IP internes à votre réseau VPC.
  2. Configurez la connexion privée entre votre réseau VPC et le réseau du producteur de services, en utilisant la plage d'adresses IP allouée. Cette connexion privée établit une connexion d'appairage de réseaux VPC entre votre VPC et l'autre réseau.

Les connexions privées sont des relations un à un entre votre réseau VPC et un producteur de services. Si un seul producteur de services propose plusieurs services, vous n'avez besoin que d'une seule connexion privée pour tous les services du producteur.

Se connecter à des ressources sur site ou à des services tiers

Vous pouvez utiliser l'une des deux options suivantes pour connecter des instances Looker (Google Cloud Core) n'utilisant qu'une adresse IP privée, ou une adresse IP privée et publique, à des ressources sur site ou à des services tiers:

Quelle que soit la méthode choisie, vous devez procéder comme suit:

  • Configurez une route dynamique dans votre VPC Looker (Google Cloud Core) pour chaque ressource sur site.
  • Configurez une annonce de routage personnalisée pour le sous-réseau d'accès aux services privés Looker (Google Cloud Core) sur tous les routeurs Cloud Router déployés dans le VPC Looker (Google Cloud Core).
  • Mettez à jour vos pare-feu sur site pour autoriser le trafic avec le sous-réseau Looker (Google Cloud Core).
  • Configurez le transfert DNS pour permettre à Looker (Google Cloud Core) de se connecter à toutes les ressources sur site.

Cloud Interconnect et Cloud Router

Le schéma réseau suivant montre comment Cloud Interconnect et Cloud Router interagissent avec le service Looker (Google Cloud Core) pour se connecter à un réseau sur site:

  1. L'accès aux services privés connecte le service Looker (Google Cloud Core) au VPC via des adresses IP internes à l'aide de l'appairage de VPC.
  2. Cloud Router utilise le protocole BGP (Border Gateway Protocol) pour annoncer les préfixes IP privés et programmer des routes dynamiques en fonction des annonces BGP qu'il reçoit d'un pair. Cloud Interconnect permet de se connecter au réseau sur site.

Cloud VPN et Cloud Router

Pour découvrir comment créer une instance Looker (Google Cloud Core) avec adresse IP privée et publique, et la connecter à une base de données sur site à l'aide de Cloud VPN et Cloud Router, consultez l'atelier de programmation Connecter Looker Cloud via une mise en réseau hybride.

Se connecter à des bases de données hébergées par d'autres fournisseurs de services cloud

Pour établir une connexion privée à des bases de données ou à des services hébergés par d'autres fournisseurs de services cloud, votre projet Google Cloud doit être configuré de manière à acheminer le trafic vers ces fournisseurs de services cloud afin de permettre l'échange de données. Pour en savoir plus sur la connexion d'environnements cloud, consultez la page de documentation Modèles de connexion d'autres fournisseurs de services cloud avec Google Cloud.

Accorder l'accès aux instances d'adresses IP privées

Pour permettre à des parties externes à votre VPC de communiquer avec une instance Looker (Google Cloud Core) pour laquelle seule l'adresse IP privée est activée, vous pouvez configurer un serveur proxy et un domaine personnalisé. Le reste de cette section fournit un exemple de configuration d'un serveur proxy.

Avant de commencer

Pour pouvoir configurer un serveur proxy, vous devez installer ou mettre à jour la dernière version de Google Cloud CLI.

Configurer un serveur proxy

L'exemple suivant montre comment utiliser la ligne de commande pour configurer un serveur proxy NGINX pour une instance Looker (Google Cloud Core) existante pour laquelle une connexion réseau Adresse IP privée est activée. Bien que les serveurs NGINX puissent être instanciés avec des configurations d'adresses IP publiques ou privées (avec accès au VPN autorisé), cet exemple illustre une configuration d'adresse IP publique.

Vous pouvez utiliser n’importe quel serveur Web pouvant être configuré comme serveur proxy inverse. Vous n'avez pas besoin de configurer spécifiquement un serveur NGINX.

  1. Créez un domaine personnalisé. Le domaine personnalisé sera mappé à l'adresse IP externe du serveur proxy lorsque vous configurerez l'enregistrement DNS plus tard au cours de ce processus.
  2. Ouvrez Cloud Shell.

    Accéder à Cloud Shell

  3. Créez un sous-réseau et une VM NGINX Ubuntu 18 avec une adresse IP publique activée dans votre réseau VPC en exécutant les commandes suivantes:

    • Définissez vos variables:

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

      Remplacez les éléments suivants :

      • PROJECT: ID du projet Google Cloud dans lequel vous avez créé votre instance Looker (Google Cloud Core).
      • NETWORK: nom du réseau VPC que vous avez configuré pour votre instance Looker (Google Cloud Core).
      • SUBNETNAME: il peut s'agir d'un nouveau sous-réseau que vous créez dans cette procédure ou de n'importe quel sous-réseau de votre réseau VPC. Il ne doit pas nécessairement correspondre au nom de sous-réseau de votre instance Looker (Google Cloud Core).
      • IP_RANGE: toute plage non contradictoire. Utilisez au moins /22 (par exemple, 10.10.0.0/22).
      • REGION: région dans laquelle vous souhaitez créer le serveur proxy.
      • ZONE: zone dans laquelle vous souhaitez créer le serveur proxy. Les zones disponibles peuvent être déterminées en exécutant gcloud compute zones list.
      • INSTANCE_NAME: nom du serveur proxy.
    • Créez le sous-réseau (vous pouvez également utiliser un sous-réseau créé lors de la création de votre réseau VPC si vous avez créé le réseau VPC en mode automatique):

      gcloud compute networks subnets create $SUBNETNAME --network=$NETWORK \
      --range=$IP_RANGE --region=$REGION --project=$PROJECT
      
    • Créez l'instance de proxy:

      INSTANCE_EXTERNAL_IP=$(gcloud compute instances create $INSTANCE_NAME \
      --project=$PROJECT --zone=$ZONE --network=$NETWORK --subnet=$SUBNETNAME \
      --format="json" | jq '.[].networkInterfaces[].accessConfigs[].natIP')
      
    • Après avoir créé l'instance de proxy, exécutez la commande suivante pour générer l'adresse IP publique de votre instance de proxy:

      echo $INSTANCE_EXTERNAL_IP
      

      Notez l'adresse IP externe. Vous en aurez besoin plus tard dans la procédure.

  4. Créez un pare-feu pour autoriser le trafic vers votre instance sur les ports 80, 443 et 22 (ou d'autres ports que NGINX écoutera) en exécutant les commandes suivantes:

    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. Créez un enregistrement DNS public en utilisant le domaine personnalisé que vous avez configuré pour votre instance Looker (Google Cloud Core) au début de ce processus et pointant vers l'adresse IP publique de la VM NGINX qui a été générée après la création de la VM.

  6. Créez un certificat tiers pour accéder à l'URL publique. Cet exemple utilise la fonctionnalité Let's Encrypt de NGINX pour générer un certificat Let's Encrypt, mais vous pouvez utiliser n'importe quel certificat de chiffrement.

    • Connectez-vous à la VM NGINX.

    • Installez l'outil Let's Encrypt:

      sudo apt-get update
      sudo apt-get install certbot python3-certbot-nginx
      
    • Accédez au fichier nginx.config:

      sudo vi /etc/nginx/sites-available/default
      
    • Dans le fichier nginx.config, remplacez la configuration existante du serveur pour configurer le serveur et le port 80 pour l'écoute:

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

      Remplacez SERVER_NAME par le nom de l'enregistrement DNS.

    • Actualisez NGINX:

      sudo nginx -t && sudo nginx -s reload
      
    • Générez un certificat:

      sudo certbot --nginx -d SERVER_NAME
      

      Remplacez SERVER_NAME par le nom de l'enregistrement DNS.

  7. Dans le fichier nginx.config, remplacez la configuration du serveur de l'étape précédente par la configuration de serveur suivante, afin de transmettre le trafic à votre instance 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;
    }
    

    Remplacez les éléments suivants :

    • PRIVATE_IP_ADDRESS: adresse IP privée attribuée à votre instance Looker (Google Cloud Core), que vous pouvez afficher sur la page DÉTAILS de l'instance dans la console Google Cloud.
    • SERVER_NAME: nom de l'enregistrement DNS.
  8. Validez le fichier nginx.config, puis actualisez-le:

    sudo nginx -t && sudo nginx -s reload
    
  9. Une fois la configuration validée et le trafic acheminé vers l'instance Looker (Google Cloud Core) et après avoir configuré votre domaine personnalisé, vous pouvez saisir le domaine personnalisé de l'instance dans la section URI de redirection autorisés du client OAuth. Pour afficher l'instance, accédez à son URL, ajoutez des utilisateurs, connectez Looker (Google Cloud Core) à votre base de données, puis configurez l'instance.

Étape suivante