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 qu'elle utilise uniquement une adresse IP privée ou à la fois une adresse IP privée et une adresse IP publique, vous pouvez configurer votre réseau pour utiliser certaines fonctionnalités de Looker (Google Cloud Core), ou pour autoriser ou limiter la communication avec des services externes ou Internet.

Restriction de l'envoi par e-mail aux domaines externes

Par défaut, les instances Looker (Google Cloud Core) qui utilisent uniquement une adresse IP privée, ou à la fois une adresse IP privée et publique, autorisent l'envoi 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.

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

Les instances Looker (Google Cloud Core) qui utilisent uniquement une adresse IP privée, ou à la fois une adresse IP privée et 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 vous connecter à des services dans d'autres VPC hébergés par Google ou des tiers à l'aide d'adresses IP internes, 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'allocation d'adresses IP d'une connexion d'accès aux services privés existante sans interrompre le trafic.

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

  1. Attribuez une plage d'adresses IP internes dans 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 de type un à un entre votre réseau VPC et un producteur de services. Si un producteur de services offre 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) en utilisant uniquement une adresse IP privée, ou les deux à la fois, à 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 du sous-réseau d'accès aux services privés de Looker (Google Cloud Core) sur tous les routeurs cloud 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 les routes dynamiques en fonction des annonces BGP reçues 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 IP publique et privée pour Looker (Google Cloud Core) et la connecter à une base de données sur site à l'aide d'un VPN haute disponibilité et de Cloud Router, consultez l'atelier de programmation Connecter le cloud Looker sur une mise en réseau hybride.

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

Pour configurer une connexion privée à des bases de données ou à des services hébergés par d'autres fournisseurs de services cloud, vous devez configurer votre projet Google Cloud de manière à acheminer le trafic vers ces fournisseurs 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 pour la connexion d'autres fournisseurs de services cloud à Google Cloud.

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

Pour permettre à des parties externes à votre VPC de communiquer avec une instance Looker (Google Cloud Core) sur 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

Avant de pouvoir configurer un serveur proxy, vous devez installer la dernière version de la Google Cloud CLI ou installer la dernière version disponible.

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 sur laquelle une connexion réseau Adresse IP privée est activée. Bien que les serveurs NGINX puissent être instanciés avec une adresse IP publique ou une adresse IP privée (avec accès VPN autorisé), cet exemple illustre une configuration d'adresse IP publique.

Vous pouvez utiliser n’importe quel serveur Web pouvant être configuré en tant que serveur de proxy inverse. Vous n'avez pas à configurer de serveur NGINX spécifiquement.

  1. Créez un domaine personnalisé. Le domaine personnalisé sera mappé sur l'adresse IP externe du serveur proxy lorsque vous configurerez l'enregistrement DNS ultérieurement 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 l'adresse IP publique activée sur 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 sous-réseau que vous créez au cours de 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 conflictuelle. 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. Vous pouvez déterminer les zones disponibles 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 utilisé le mode automatique pour créer le réseau VPC):

      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, car 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 sur 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 en 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 NGINX's Encrypt 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 de serveur existante afin de définir 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 de 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 et actualisez-le:

    sudo nginx -t && sudo nginx -s reload
    
  9. Une fois que la configuration a été validée et que le trafic est acheminé vers l'instance Looker (Google Cloud Core) et que vous avez configuré votre domaine personnalisé, vous pouvez saisir le domaine personnalisé de l'instance dans la section URI de redirection autorisés du client OAuth. Vous pouvez ensuite afficher l'instance en accédant à son URL, ajouter des utilisateurs, connecter Looker (Google Cloud Core) à votre base de données et poursuivre la configuration de l'instance.

    Étape suivante