1. Introduction
Looker (Google Cloud Core) permet de simplifier et de rationaliser le provisionnement, la configuration et la gestion d'une instance Looker depuis la console Google Cloud. Certaines tâches d'administration d'instance peuvent également être effectuées à partir de la console.
Il existe trois configurations réseau pour les instances Looker (Google Cloud Core) :
- Public: la connexion réseau utilise une adresse IP externe accessible par Internet.
- Privée: la connexion réseau utilise une adresse IP de cloud privé virtuel (VPC) interne hébergée par Google.
- Publique et privée : la connexion réseau utilise à la fois une adresse IP publique et une adresse IP privée, le trafic entrant étant acheminé via l'adresse IP publique et le trafic sortant via l'adresse IP privée.
Dans ce tutoriel, vous allez déployer un réseau privé complet de bout en bout pour permettre la connectivité Looker à un VPC sur site via un VPN haute disponibilité qui peut être répliqué pour répondre à vos exigences de connectivité multicloud et sur site.
Looker (Google Cloud Core) est compatible avec les adresses IP privées pour les instances qui répondent aux critères suivants :
- Les éditions d'instance doivent être Enterprise ou Embed.
Objectifs de l'atelier
Dans ce tutoriel, vous allez créer un déploiement de réseau Looker privé complet dans un VPC autonome offrant une connectivité hybride multicloud et sur site.
Vous allez configurer un réseau VPC appelé on-prem-vpc
pour représenter un environnement sur site. Pour votre déploiement, le VPC sur site n'existera pas. À la place, un réseau hybride sera utilisé pour votre centre de données sur site ou votre fournisseur cloud.
Voici les principales étapes du tutoriel :
- Créer un VPC autonome dans la région us-central1
- Allouer un sous-réseau IP à l'accès aux services privés
- Déployer une instance Looker dans le VPC autonome
- Créer le réseau VPC on-prem-vpc et le réseau hybride
- Annoncez et validez la plage d'adresses IP Looker sur BGP
- Intégrer et valider la communication de données Looker et Postgresql
Figure 1
Points abordés
- Créer un VPC et un réseau hybride associé
- Déployer Looker dans un VPC autonome
- Créer un on-prem-vpc et un réseau hybride associé
- Connecter le VPC sur site à analytics-vps via un VPN haute disponibilité
- Annoncer des sous-réseaux Looker via une mise en réseau hybride
- Surveiller l'infrastructure de mise en réseau hybride
- Intégrer une base de données Postgresql à Looker Cloud Core
Prérequis
- Projet Google Cloud
Autorisations IAM
2. Avant de commencer
Mettre à jour le projet pour qu'il soit compatible avec le tutoriel
Ce tutoriel utilise $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.
Dans Cloud Shell, effectuez les opérations suivantes:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Configuration du VPC
Créer le VPC analytics
Dans Cloud Shell, procédez comme suit :
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
Créer le VPC on-prem-vpc
Dans Cloud Shell, procédez comme suit :
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
Créer le sous-réseau de base de données Postgresql
Dans Cloud Shell, procédez comme suit :
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
Configuration de Cloud Router et du NAT
Cloud NAT est utilisé dans le tutoriel pour l'installation du package logiciel, car l'instance de VM de base de données ne dispose pas d'adresse IP externe.
Dans Cloud Shell, créez le routeur Cloud Router.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
Dans Cloud Shell, créez la passerelle NAT.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
Créer l'instance de test de base de données
Créez une instance de base de données Postgres qui servira à tester et valider la connectivité avec Looker.
Dans Cloud Shell, créez l'instance.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
Créer des règles de pare-feu
Pour autoriser IAP à se connecter à vos instances de VM, créez une règle de pare-feu qui :
- S'applique à toutes les instances de VM auxquelles vous souhaitez rendre accessibles à l'aide d'IAP.
- Autorise le trafic entrant provenant de la plage d'adresses IP 35.235.240.0/20. Cette plage contient toutes les adresses IP utilisées par IAP pour le transfert TCP.
Depuis Cloud Shell
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. Accès privé aux services
L'accès aux services privés est une connexion privée entre votre réseau VPC et un réseau appartenant à Google ou à un tiers. Google ou le tiers sont des entités fournissant des services. Ils sont également appelés "producteurs de services". Looker Cloud Core est un producteur de services.
La connexion privée permet aux instances de VM de votre réseau VPC et aux services auxquels vous accédez de communiquer exclusivement par le biais d'adresses IP internes.
De manière générale, pour utiliser l'accès aux services privés, vous devez allouer une plage d'adresses IP (bloc CIDR) à votre réseau VPC, puis créer une connexion privée à un producteur de services.
Allouer une plage d'adresses IP aux services
Avant de créer une connexion privée, vous devez allouer une plage d'adresses IPv4 qui sera utilisée par le réseau VPC du producteur de services. Cela garantit qu'il n'y a pas de conflit d'adresses IP entre votre réseau VPC et le réseau du producteur de services.
Lorsque vous allouez une plage dans votre réseau VPC, elle n'est pas éligible pour les sous-réseaux (plages principales et secondaires) ni pour les destinations des routes statiques personnalisées.
L'utilisation de plages d'adresses IPv6 avec accès aux services privés n'est pas disponible.
Activez l'API Service Networking pour votre projet dans la console Google Cloud. Lors de l'activation de l'API, vous devrez peut-être actualiser la page de la console pour vérifier qu'elle a bien été activée.
Créer une allocation d'adresses IP
Pour spécifier une plage d'adresses et une longueur de préfixe (masque de sous-réseau), utilisez les indicateurs addresses et prefix-length. Par exemple, pour allouer le bloc CIDR 192.168.0.0/22, spécifiez 192.168.0.0 pour l'adresse et 22 pour la longueur du préfixe.
Dans Cloud Shell, créez l'allocation d'adresses IP pour Looker.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
Dans Cloud Shell, validez l'allocation d'adresses IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
Exemple :
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
Créer une connexion privée
Une fois que vous avez créé une plage allouée, vous pouvez créer une connexion privée à un producteur de services, Looker Cloud Core. La connexion privée établit une connexion d'appairage de réseaux VPC entre votre réseau VPC et le réseau du producteur de services une fois l'instance Looker établie.
Les connexions privées sont des relations 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.
Si vous vous connectez à plusieurs producteurs de services, utilisez une allocation unique pour chacun d'entre eux. Ceci facilite la gestion des paramètres réseau, tels que les routes et les règles de pare-feu, de chaque producteur de services.
Dans Cloud Shell, créez une connexion privée et notez le nom de l'opération.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Exemple :
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
Dans Cloud Shell, vérifiez si l'opération a réussi. Remplacez OPERATION_NAME par le nom généré à l'étape précédente.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
Exemple :
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5. Créer une instance Looker (Google Cloud Core)
Avant de commencer
Activez l'API Looker pour votre projet dans la console Google Cloud. Lors de l'activation de l'API, vous devrez peut-être actualiser la page de la console pour vérifier qu'elle a bien été activée.
Configurez un client OAuth pour s'authentifier et accéder à l'instance.
Dans la section suivante, vous devrez utiliser l'ID et le code secret du client OAuth pour créer l'instance Looker.
Les origines JavaScript autorisées et les URI de redirection ne sont pas obligatoires.
Dans la console Cloud, créez une instance basée sur les captures d'écran fournies.
Accédez à LOOKER → CRÉER UNE INSTANCE.
Renseignez l'ID et le code secret du client OAuth précédemment créés.
Sélectionnez CRÉER.
Pendant la création de l'instance, vous êtes redirigé vers la page Instances de la console. Vous devrez peut-être actualiser la page pour afficher l'état de votre nouvelle instance. Vous pouvez également consulter votre activité de création d'instances en cliquant sur l'icône de notification dans le menu de la console Google Cloud. Pendant la création de votre instance, l'icône de notification dans le menu de la console Google Cloud est entourée d'une icône de chargement.
Une fois l'instance Looker créée, une URL d'instance est générée. Notez l'URL.
6. Mettre à jour l'ID client OAuth 2.0
Dans la section suivante, vous devrez mettre à jour l'URI de redirection autorisé de l'ID client OAuth créé précédemment en ajoutant /oauth2callback
à l'URL de l'instance.
Une fois l'opération terminée, vous pouvez utiliser l'URL de l'instance pour vous connecter à l'UI Looker.
Dans la console Cloud, accédez à API et SERVICES → IDENTIFIANTS.
Sélectionnez votre ID client OAuth 2.0 et mettez à jour votre URL d'instance, comme indiqué ci-dessous :
7. Valider l'accès à Looker
Dans Cloud Console, accédez à Looker et sélectionnez l'URL de votre instance pour ouvrir l'interface utilisateur de Looker.
Une fois le lancement effectué, la page de destination s'affiche, comme illustré dans la capture d'écran ci-dessous, confirmant votre accès à Looker Cloud Core.
8. Connectivité hybride
Dans la section suivante, vous allez créer un routeur Cloud Router qui vous permettra d'échanger dynamiquement des routes entre votre cloud privé virtuel (VPC) et votre réseau appairé à l'aide du protocole BGP (Border Gateway Protocol).
Cloud Router peut configurer une session BGP sur un tunnel Cloud VPN pour connecter vos réseaux. Il apprend automatiquement les nouvelles plages d'adresses IP de sous-réseau et les annonce à votre réseau de pairs.
Dans ce tutoriel, vous allez déployer un VPN haute disponibilité entre analytics-vpc et on-prem-vpc pour illustrer la connectivité privée avec Looker.
Créez le GW du VPN haute disponibilité pour le VPC analytics-vpc.
Lorsque les passerelles sont créées, deux adresses IPv4 externes sont automatiquement attribuées, une pour chaque interface de passerelle. Notez ces adresses IP pour les utiliser ultérieurement dans les étapes de configuration.
Dans Cloud Shell, créez le GW du VPN haute disponibilité.
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
Créez le GW du VPN haute disponibilité pour le VPC on-prem-vpc.
Lorsque les passerelles sont créées, deux adresses IPv4 externes sont automatiquement attribuées, une pour chaque interface de passerelle. Notez ces adresses IP pour les utiliser ultérieurement dans les étapes de configuration.
Dans Cloud Shell, créez la passerelle VPN haute disponibilité.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
Valider la création de la passerelle VPN haute disponibilité
Dans la console, accédez à CONNECTIVITÉ HYBRIDE → VPN → PASSERELLES CLOUD VPN.
Créer le routeur cloud pour le VPC analytics-vpc
Dans Cloud Shell, créez le routeur Cloud situé dans la région us-central1.
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
Créer le routeur cloud pour le VPC on-prem-vpc
Dans Cloud Shell, créez le routeur Cloud situé dans us-central1.
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
Créer les tunnels VPN pour analytics-vpc
Vous allez créer deux tunnels VPN sur chaque passerelle VPN haute disponibilité.
Créer un tunnel VPN0
Dans Cloud Shell, créez tunnel0 :
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
Créer un tunnel VPN1
Dans Cloud Shell, créez le tunnel 1 (tunnel1) :
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
Créer les tunnels VPN pour on-prem-vpc
Vous allez créer deux tunnels VPN sur chaque passerelle VPN haute disponibilité.
Créer un tunnel VPN0
Dans Cloud Shell, créez tunnel0 :
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
Créer un tunnel VPN1
Dans Cloud Shell, créez tunnel1 :
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
Valider la création du tunnel VPN
Dans la console, accédez à CONNECTIVITÉ HYBRIDE → VPN → TUNNELS VPN CLOUD.
9. Établir des voisins BGP
Créer des sessions BGP
Dans cette section, vous allez configurer les interfaces Cloud Router et les pairs BGP.
Créer une interface BGP et un appairage pour analytics-vpc
Dans Cloud Shell, créez l'interface BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
Dans Cloud Shell, créez le pair BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
Dans Cloud Shell, créez l'interface BGP :
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
Dans Cloud Shell, créez le pair BGP :
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
Créer une interface BGP et un appairage pour on-prem-vpc
Dans Cloud Shell, créez l'interface BGP :
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
Dans Cloud Shell, créez le pair BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
Dans Cloud Shell, créez l'interface BGP :
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
Dans Cloud Shell, créez le pair BGP :
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
Accédez à CONNECTIVITÉ HYBRIDE → VPN pour afficher les informations sur le tunnel VPN.
Valider les routes apprises par analytics-vpc via un VPN haute disponibilité
Étant donné que les tunnels VPN haute disponibilité et les sessions BGP sont établis, les routes de on-prem-vpc sont apprises à partir d'analytics-vpc. Depuis la console, accédez à Réseau VPC → Réseaux VPC → analytics-vpc → ROUTES → RÉGION → us-central1 → VUE
Vérifiez que analytics-vpc a appris les routes de l'instance on-prem-vpc database-subnet-us-central1 172.16.10.0/27.
Vérifier que on-prem-vpc n'a pas appris les routes via un VPN haute disponibilité
Le sous-réseau analytics-vpc n'existe pas. Par conséquent, le routeur cloud n'annonce aucun sous-réseau au VPC sur site. Dans la console, accédez à Réseau VPC → Réseaux VPC → on-prem-vpc → ROUTES → RÉGION → us-central1 → AFFICHER.
10. Annoncer le sous-réseau Looker sur site
Le sous-réseau Looker Private Service Access (PSA) n'est pas automatiquement annoncé par le routeur cloud analytics-cr-us-central1, car il est attribué au PSA, et non au VPC.
Vous devrez créer une annonce de routage personnalisée à partir d'analytics-cr-central1 pour le sous-réseau PSA 192.168.0.0/22 (psa-range-looker) qui sera annoncé dans l'environnement sur site et utilisé par les charges de travail pour accéder à Looker.
Dans la console, accédez à CONNECTIVITÉ HYBRIDE → CLOUD ROUTERS → analytics-cr-us-central1, puis sélectionnez MODIFIER.
Dans la section "Routes annoncées", sélectionnez l'option Créer des routes personnalisées, mettez à jour les champs en fonction de l'exemple ci-dessous, sélectionnez OK,puis cliquez sur ENREGISTRER.
11. Vérifier que le VPC on-prem-vpc a appris le sous-réseau Looker
Le VPC on-prem-vpc peut désormais accéder au sous-réseau d'accès privés aux services Looker, car il a été annoncé depuis analytics-cr-us-central1 en tant qu'annonce de routage personnalisée.
Dans la console, accédez à RÉSEAU VPC → RÉSEAUX VPC → on-prem-vpc → ROUTES → RÉGION → us-central1 → AFFICHER.
Observez les routes Looker annoncées à partir du VPC analytics :
12. Valider l'appairage VPC en cours
La connexion entre Looker Cloud Core et le VPC analytics s'effectue via l'appairage VPC, qui permet d'échanger des routes personnalisées apprises via BGP. Dans ce tutoriel, le VPC "analytics-vpc" devra publier les routes apprises par le VPC on-prem-vpc dans Looker. Pour activer cette fonctionnalité, l'appairage VPC nécessite une mise à jour pour exporter des routes personnalisées.
Validez les routes importées et exportées actuellement.
Accédez à RÉSEAU VPC → PEERING DU RÉSEAU VPC → servicenetworking-googleapis-com.
La capture d'écran ci-dessous détaille le VPC analytics-vpc qui importe le psa-range-looker à partir du réseau VPC appairé géré par Google, servicesnetworking.
Sélectionnez EXPORTED ROUTES (ROUTES EXPORTÉES) et aucune route n'a été exportée vers le réseau VPC appairé, car 1) les sous-réseaux ne sont pas configurés dans le VPC analytics-vpc 2) les routes personnalisées d'exportation ne sont pas sélectionnées
13. Mettre à jour l'appairage VPC
Accédez à RÉSEAU VPC → APPAIREMENT DE RÉSEAU VPC → servicenetworking-googleapis-com → MODIFIER.
Sélectionnez EXPORTER LES ROUTES PERSONNALISÉES → ENREGISTRER.
14. Valider l'appairage VPC mis à jour
Validez les routes exportées.
Accédez à RÉSEAU VPC → APPAIREMENT DE RÉSEAU VPC → servicenetworking-googleapis-com.
Sélectionnez EXPORTED ROUTES (ROUTES EXPORTÉES) pour indiquer que les routes on-prem-vpc (sous-réseau de base de données 172.16.10.0/27) sont exportées vers le réseau VPC appairé hébergeant Looker par analytics-vpc.
15. Création de la base de données Postgres Looker
Dans la section suivante, vous allez vous connecter en SSH à la VM postgres-database à l'aide de Cloud Shell.
Dans Cloud Shell, effectuez une connexion SSH à l'instance de base de données postgres.
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Dans le système d'exploitation, identifiez et notez l'adresse IP (ens4) de l'instance postgres-database.
ip a
Exemple :
user@postgres-database:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/64 scope link
valid_lft forever preferred_lft forever
Dans l'OS, connectez-vous à postgresql.
sudo -u postgres psql postgres
Dans le système d'exploitation, saisissez l'invite de saisie du mot de passe.
\password postgres
Dans l'OS, définissez le mot de passe sur postgres (saisissez le même mot de passe deux fois).
postgres
Exemple :
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
Dans l'OS, quittez postgres.
\q
Exemple :
postgres=# \q
user@postgres-database:~$
Dans la section suivante, vous allez insérer l'adresse IP de votre instance postgres-database et le sous-réseau d'accès privé à Google Looker (192.168.0.0/22) dans le fichier pg_hba.conf sous les connexions locales IPv4, comme illustré dans la capture d'écran ci-dessous:
sudo nano /etc/postgresql/15/main/pg_hba.conf
Dans la section suivante, supprimez le commentaire du fichier postgresql.conf pour écouter toutes les adresses IP "*", comme indiqué dans la capture d'écran ci-dessous :
sudo nano /etc/postgresql/15/main/postgresql.conf
Avant :
Après :
Dans l'OS, redémarrez le service postgresql.
sudo service postgresql restart
Dans l'OS, vérifiez que l'état postgresql est actif.
sudo service postgresql status
Exemple :
Dans l'OS, vérifiez que l'état postgresql est actif.
user@postgres-database$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. Créer la base de données PostgreSQL
Dans la section suivante, vous allez créer une base de données postgres nommée postgres_looker et un schéma looker_schema permettant de valider la connectivité de Looker à la connectivité sur site.
Dans l'OS, connectez-vous à postgres.
sudo -u postgres psql postgres
Dans l'OS, créez la base de données.
create database postgres_looker;
Dans l'OS, répertoriez la base de données.
\l
Dans l'OS, créez le looker utilisateur avec le mot de passe looker
create user postgres_looker with password 'postgreslooker';
Dans l'OS, connectez-vous à la base de données.
\c postgres_looker;
Dans l'OS, créez le schéma looker-schema et quittez l'invite Cloud Shell.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
Exemple :
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
CREATE SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
Quittez l'OS et revenez à Cloud Shell.
\q
exit
17. Créer un pare-feu dans on-prem-vpc
Dans la section suivante, créez un pare-feu d'entrée avec journalisation qui autorise la communication du sous-réseau Looker avec l'instance de base de données PostgreSQL.
Dans Cloud Shell, créez le pare-feu on-prem-vpc.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18. Créer un DNS privé dans le VPC analytics
Bien que Looker soit déployé dans un VPC géré par Google, l'accès au DNS privé analytics-vpc est disponible via l'appairage avec la mise en réseau de services.
Dans la section suivante, vous allez créer une zone DNS privée dans le VPC "analytics-vpc" composée d'un enregistrement A du nom de domaine complet (postgres.analytics.com)
) et de l'adresse IP de l'instance postgres-database.
Dans Cloud Shell, créez la zone privée analytics.com.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
Dans Cloud Shell, identifiez l'adresse IP de l'instance de base de données postgres.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
Exemple :
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
Dans Cloud Shell, créez l'enregistrement A, en veillant à ajouter l'adresse IP précédemment identifiée.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
Exemple :
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
Depuis Cloud Shell, le suffixe DNS pair analytics.com jusqu'à la mise en réseau des services permet à Looker d'accéder à la zone privée analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. Intégrer Looker à la base de données Postgres postgres-database
Dans la section suivante, vous allez utiliser la console Cloud pour créer une connexion de base de données à l'instance postgres-database sur site.
Dans la console Cloud, accédez à Looker et sélectionnez l'URL de votre instance pour ouvrir l'UI de Looker.
Une fois le programme lancé, la page de destination s'affiche, comme illustré ci-dessous.
Accédez à ADMIN → DATABASE → CONNECTIONS (ADMIN → BASE DE DONNÉES → CONNEXIONS), puis sélectionnez ADD CONNECTION (AJOUTER UNE CONNEXION).
Indiquez les informations de connexion comme indiqué dans la capture d'écran ci-dessous, puis sélectionnez ASSOCIER.
La connexion est maintenant établie
20. Valider la connectivité de Looker
Dans la section suivante, vous allez apprendre à valider la connectivité de Looker à la base de données postgres-database dans le VPC on-prem-vpc à l'aide de l'action "test" de Looker et de TCPDUMP.
Dans Cloud Shell, connectez-vous à la base de données postgres-database si la session a expiré.
Dans Cloud Shell, effectuez les opérations suivantes:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
Depuis l'OS, créez un filtre TCPDUMP avec le sous-réseau psa-range-looker 192.168.0.0/22.
sudo tcpdump -i any net 192.168.0.0/22 -nn
Accédez à la connexion de données : ADMIN → DATABASE → CONNECTIONS → Select → Test (ADMIN → DATABASE → CONNECTIONS → Select → Test).
Une fois l'option "Test" sélectionnée, Looker se connecte à la base de données PostgreSQL, comme indiqué ci-dessous :
Revenez au terminal de l'OS et vérifiez que TCPDUMP a identifié que psc-range-looker se connecte à l'instance postgres-database sur site.
Ajoutez une note indiquant que toutes les adresses IP de la plage d'accès privés aux services sont affichées depuis Looker.
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. Recommandations pour améliorer la sécurité
Voici quelques recommandations et bonnes pratiques de sécurité pour sécuriser Looker et la base de données Postgres. Par exemple :
- Configurer les autorisations de compte de base de données avec le plus faible privilège pour Looker, tout en lui permettant d'exécuter les fonctions nécessaires.
- Les données en transit entre le client et l'interface utilisateur Looker, et entre Looker et la base de données sont chiffrées à l'aide de TLS 1.2 ou version ultérieure.
- Les données au repos sont chiffrées par défaut. Le client peut également utiliser CMEK pour les instances Looker (https://cloud.google.com/looker/docs/looker-core-cmek) et pour Postgres (https://cloud.google.com/sql/docs/postgres/configure-cmek).
- Contrôle des accès Looker : les administrateurs Looker peuvent contrôler ce qu'un principe ou un groupe d'utilisateurs peut voir et faire dans Looker en accordant des droits d'accès au contenu, aux données et aux fonctionnalités. Ces options permettent à l'administrateur Looker de définir des rôles spécifiques, y compris le modèle et l'ensemble d'autorisations, et de créer un contrôle des accès précis aux données.
- Looker est compatible avec les journaux d'audit et les journaux d'accès aux données, qui enregistrent qui a fait quoi, quand et où. Les journaux d'audit sont activés par défaut, tandis que les journaux d'accès aux données doivent être activés explicitement.
- Actuellement, VPC-SC est compatible avec les instances Enterprise et Embed configurées uniquement avec une adresse IP privée
22. Effectuer un nettoyage
Supprimez l'instance Looker Cloud Core, puis accédez à :
LOOKER → looker-tutorial → SUPPRIMER
Dans Cloud Shell, supprimez les composants du tutoriel.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. Félicitations
Félicitations, vous avez configuré et validé la connectivité Looker via un réseau hybride, ce qui permet de communiquer des données dans des environnements sur site et multicloud.
Vous avez également réussi à tester la connectivité de Looker Cloud Core à la base de données postgres à l'aide de l'outil "Test" de Looker Connect et de TCPDUMP dans l'instance de la base de données postgres.
Cosmopup trouve les tutoriels géniaux !
Autres ressources et vidéos
- Présentation de la nouvelle évolution de Looker
- Vous migrez vers GCP ? Commençons par le commencement: les VPC
- Routage dynamique avec Cloud Router
Documents de référence
- Documentation Looker (Google Cloud Core)
- Créer une instance Looker (Google Cloud Core)
- Créer une connexion IP privée pour Looker (Google Cloud Core)
- VPN haute disponibilité entre réseaux Google Cloud
- Configurer et gérer la traduction d'adresse réseau avec Cloud NAT
- Options d'échange de routes dynamiques