Configurer une instance IP privée Looker (Google Cloud Core)

Une fois que vous avez configuré une instance Looker (Google Cloud Core) avec une connexion IP privée, vous pouvez configurer votre instance ou votre projet Google Cloud pour utiliser certaines fonctionnalités de Looker (Google Cloud Core), ou pour autoriser ou limiter la communication avec des services externes ou Internet.

Restreindre la distribution des e-mails aux domaines externes

Par défaut, les instances Looker (Google Cloud Core) qui utilisent une configuration IP privée autorisent la distribution des e-mails aux 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 IP privée (Google Cloud Core) à des services externes

Les instances Looker (Google Cloud Core) qui utilisent un réseau IP privé peuvent nécessiter une configuration supplémentaire du projet Google Cloud pour se connecter à des services ou à des ressources en dehors d'un périmètre VPC Service Controls. Les options de configuration sont décrites dans les sections suivantes.

Se connecter à une ressource ou à un service Google Cloud

Pour vous connecter à une autre ressource ou à un autre service Google Cloud, vous devrez peut-être configurer des règles d'entrée et de sortie si le projet dans lequel se trouve la ressource se trouve en dehors du périmètre de VPC Service Controls. Pour savoir comment configurer une connexion privée à des sources de données hébergées par un autre fournisseur de services cloud, consultez Se connecter aux bases de données hébergées par d'autres fournisseurs de services cloud sur cette page.

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

Pour que vous puissiez configurer 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é pour acheminer le trafic vers ces fournisseurs de services cloud et permettre l'échange de données. Pour en savoir plus sur la connexion d'environnements cloud, consultez la page Modèles de connexion à d'autres fournisseurs de services cloud avec Google Cloud.

Se connecter aux ressources sur site

Pour configurer une connexion privée aux bases de données sur site, utilisez Cloud VPN. Vous devez configurer une route dynamique dans votre VPC pour chaque base de données sur site. Si vous avez configuré le transfert DNS pour le projet dans lequel se trouve l'instance Looker (Google Cloud Core), Looker pourra se connecter à toutes les ressources sur site.

Connexion à d'autres services Internet

Pour vous connecter aux services Internet, vous devez configurer une route dynamique dans votre VPC pour chaque service. Vous pouvez également utiliser Cloud NAT pour créer des connexions sortantes.

Accorder un accès public aux instances IP privées

Pour mieux contrôler l'interface des parties externes avec votre instance Looker (Google Cloud Core), vous pouvez configurer un serveur proxy afin d'accorder un accès Internet public à une instance pour laquelle seule l'adresse IP privée est activée.

Avant de commencer

Avant de configurer un serveur proxy, vous devez installer ou installer 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 IP publique ou privée (avec accès VPN autorisé), cet exemple illustre une configuration IP publique.

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

  1. À l'aide de la ligne de commande, créez un sous-réseau et créez une VM NGINX Ubuntu 18 avec l'adresse IP publique activée sur votre réseau VPC en exécutant les commandes suivantes:

    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 est le nom du projet Google Cloud dans lequel vous avez créé votre instance Looker (Google Cloud Core).
    • NETWORK est le nom du réseau VPC que vous avez configuré pour votre instance Looker (Google Cloud Core).
    • Définissez IP_RANGE sur au moins /22 (par exemple, 10.10.0.0/22).
    • SUBNETNAME peut être n'importe quel nom et ne doit pas nécessairement correspondre au nom du sous-réseau de votre instance Looker (Google Cloud Core).
    • ZONE peut être déterminé en exécutant gcloud compute zones list.
    • INSTANCE_NAME peut être nommé comme suit : il s'agit du nom de votre instance de VM.

    Après avoir exécuté les deux commandes gcloud, exécutez la commande suivante:

    echo $INSTANCE_EXTERNAL_IP
    

    Cette opération génère l'adresse IP publique de votre instance de VM.

  2. 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 va écouter) en exécutant ces commandes:

    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. Créez un certificat tiers pour accéder à l'URL publique. Cet exemple utilise Let's Encrypt de NGINX pour générer un certificat Let's Encrypt, mais vous pouvez utiliser n'importe quel certificat.

    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 afin de 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>;
    }
    
    • SERVER_NAME est le nom d'enregistrement DNS du domaine personnalisé pour votre instance Looker (Google Cloud Core).

    Actualisez NGINX:

    sudo nginx -t && sudo nginx -s reload
    

    Générez un certificat:

    sudo certbot --nginx -d SERVER_NAME
    
    • SERVER_NAME est le nom d'enregistrement DNS du domaine personnalisé pour votre instance Looker (Google Cloud Core).
  4. Dans le fichier nginx.config, remplacez la configuration du serveur de l'étape 3 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;
    }
    
    • PRIVATE_IP_ADDRESS est l'adresse IP privée attribuée à votre instance Looker (Google Cloud Core). Vous pouvez la consulter sur la page Détails de l'instance dans la console Google Cloud.
    • SERVER_NAME est le nom d'enregistrement DNS du domaine personnalisé pour votre instance Looker (Google Cloud Core).
  5. Validez le fichier nginx.config et actualisez-le:

    sudo nginx -t && sudo nginx -s reload
    

    Étape suivante