1. Introduction
Présentation
Dans cet atelier, les utilisateurs découvriront comment le hub Network Connectivity Center propage un point de terminaison Private Service Connect aux spokes VPC.
La ressource de hub fournit un modèle de gestion de la connectivité centralisé pour interconnecter le trafic des spokes VPC aux points de terminaison PSC.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez créer un réseau NCC qui propagera un point de terminaison Private Service Connect à une instance Cloud SQL.

Points abordés
- Utiliser Private Service Connect pour se connecter à une instance Cloud SQL
- Utilisez le hub NCC pour propager le sous-réseau PSC à tous les spokes VPC afin d'autoriser la connectivité réseau à partir de plusieurs réseaux VPC.
Prérequis
- Connaissances sur la mise en réseau Google Cloud
- Connaissances de base sur Cloud SQL
- Projet Google Cloud
- Vérifiez votre quota de réseaux et demandez des réseaux supplémentaires si nécessaire (voir la capture d'écran ci-dessous) :

Objectifs
- Configurer l'environnement GCP
- Configurer une instance Cloud SQL pour MySQL avec Private Service Connect
- Configurer un hub Network Connectivity Center pour propager les points de terminaison PSC
- Configurer Network Connectivity Center avec un VPC en tant que spoke
- Valider le chemin d'accès aux données
- Découvrir les fonctionnalités de maintenance de NCC
- Effectuer un nettoyage des ressources
Avant de commencer
Google Cloud Console et Cloud Shell
Pour interagir avec GCP, nous utiliserons à la fois la console Google Cloud et Cloud Shell tout au long de cet atelier.
Console Google Cloud du projet Hub NCC
La console Cloud est accessible à l'adresse https://console.cloud.google.com.
Configurez les éléments suivants dans Google Cloud pour faciliter la configuration de Network Connectivity Center :
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
Lancez le Cloud Shell. Cet atelier de programmation utilise des $variables pour faciliter l'implémentation de la configuration gcloud dans Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project $project
project=[YOUR-PROJECT-NAME]
echo $project
Rôles IAM
NCC nécessite des rôles IAM pour accéder à des API spécifiques. Assurez-vous d'attribuer les rôles IAM NCC requis à votre utilisateur.
Rôle/Description | Autorisations |
networkconnectivity.networkAdmin : permet aux administrateurs réseau de gérer les hubs et les spokes. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager : permet d'ajouter et de gérer des spokes dans un hub. À utiliser dans le VPC partagé où le projet hôte possède le hub, mais où d'autres administrateurs d'autres projets peuvent ajouter des spokes pour leurs associations au hub. | networkconnectivity.spokes.** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer : permet aux utilisateurs du réseau d'afficher différents attributs des hubs et des spokes. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. Configurer l'environnement réseau
Présentation
Dans cette section, nous allons déployer les deux réseaux VPC et les règles de pare-feu dans un seul projet. Le schéma logique illustre l'environnement réseau qui sera configuré lors de cette étape.

Créer VPC1 et un sous-réseau
Le réseau VPC contient des sous-réseaux dans lesquels vous installerez la VM GCE pour la validation du chemin de données.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Créer un sous-réseau PSC dans un VPC
Utilisez la commande ci-dessous pour créer un sous-réseau dans le spoke VPC qui sera alloué au PSC-EP.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
vpc_spoke_subnet_ip_range="192.168.0.0/24"
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Créer VPC3 et un sous-réseau
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
vpc_spoke_subnet_ip_range="10.0.3.0/24"
region="us-central1"
zone="us-central1-a"
gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom \
gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
Configurer les règles de pare-feu de VPC1
Ces règles autorisent la connectivité réseau à partir des plages RFC1918 et Identity Access Proxy.
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules create vpc1-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc1-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Configurer le VPC de routage et les règles de pare-feu VPC
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules create vpc3-allow-all \
--network="${vpc_spoke_network_name}" \
--allow=all \
--source-ranges=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
gcloud compute firewall-rules create vpc3-allow-iap \
--network="${vpc_spoke_network_name}" \
--allow all \
--source-ranges 35.235.240.0/20
Configurer la VM GCE dans VPC1
Vous aurez besoin d'un accès Internet temporaire pour installer les packages. Configurez donc l'instance pour qu'elle utilise une adresse IP externe.
vm_vpc1_spoke_name="csql-vpc1-vm"
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="subnet1"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc1_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
Configurer la VM GCE dans VPC3
Vous aurez besoin d'un accès Internet temporaire pour installer les packages. Configurez donc l'instance pour qu'elle utilise une adresse IP externe.
vm_vpc_spoke_name="csql-vpc3-vm"
vpc_spoke_network_name="vpc3-spoke"
vpc_spoke_subnet_name="subnet3"
region="us-central1"
zone="us-central1-a"
gcloud compute instances create "${vm_vpc_spoke_name}" \
--machine-type="e2-medium" \
--subnet="${vpc_spoke_subnet_name}" \
--zone="${zone}" \
--image-family=debian-11 \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
sudo apt-get update
sudo apt-get install -y default-mysql-client'
3. Créer l'instance Cloud SQL
Utilisez les commandes ci-dessous pour créer une instance et activer Private Service Connect .
Cette opération prend quelques minutes.
gcloud config set project ${project}
gcloud sql instances create mysql-instance \
--project="${project}" \
--region=us-central1 \
--enable-private-service-connect \
--allowed-psc-projects="${project}" \
--availability-type=zonal \
--no-assign-ip \
--tier=db-f1-micro \
--database-version=MYSQL_8_0 \
--enable-bin-log
Identifier l'URI du rattachement de service de l'instance Cloud SQL
Utilisez la commande gcloud sql instances describe pour afficher des informations sur une instance sur laquelle Private Service Connect est activé. Notez le champ pscServiceAttachmentLink qui affiche l'URI pointant vers le rattachement de service de l'instance. Nous en aurons besoin dans la section suivante.
gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)'
4. Point de terminaison PSC vers Cloud SQL
Réserver une adresse IP interne pour le point de terminaison PSC
Utilisez la commande ci-dessous pour réserver une adresse IP interne pour le point de terminaison Private Service Connect.
region="us-central1"
vpc_spoke_subnet_name="csql-psc-subnet"
gcloud compute addresses create csql-psc-ip \
--subnet="${vpc_spoke_subnet_name}" \
--region="${region}" \
--addresses=192.168.0.253
Recherchez le NOM associé à l'adresse IP réservée. Il sera utilisé dans la configuration de la règle de transfert.
gcloud compute addresses list \
--filter="name=csql-psc-ip"
Créer la règle de transfert Private Service Connect dans VPC1
Utilisez la commande ci-dessous pour créer le point de terminaison Private Service Connect et le faire pointer vers le rattachement de service Cloud SQL.
vpc_spoke_network_name="vpc1-spoke"
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
csql_psc_ep_name="csql-psc-ep"
sa_uri=$(gcloud sql instances describe mysql-instance \
--format='value(pscServiceAttachmentLink)')
echo "$sa_uri"
gcloud compute forwarding-rules create "${csql_psc_ep_name}" \
--address=csql-psc-ip \
--region="${region}" \
--network="${vpc_spoke_network_name}" \
--target-service-attachment="${sa_uri}" \
--allow-psc-global-access
Utilisez la commande ci-dessous pour vérifier que le rattachement de service cSQL accepte le point de terminaison.
gcloud compute forwarding-rules describe csql-psc-ep \
--region=us-central1 \
--format='value(pscConnectionStatus)'
Vérifier le chemin d'accès aux données vers MySQL depuis VPC1
Lorsque vous créez une instance Cloud SQL, vous devez définir un mot de passe pour le compte utilisateur par défaut avant de pouvoir vous connecter à l'instance.
gcloud sql users set-password root \
--host=% \
--instance=mysql-instance \
--prompt-for-password
Utilisez la commande ci-dessous pour localiser l'adresse IP du point de terminaison PSC associé au rattachement de service de Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Se connecter à une instance Cloud SQL depuis une VM dans VPC1
Ouvrez une session SSH vers csql-vpc1-vm.
gcloud compute ssh csql-vpc1-vm \
--zone=us-central1-a \
--tunnel-through-iap
Utilisez la commande ci-dessous pour vous connecter à l'instance Cloud SQL. Lorsque vous y êtes invité, saisissez le mot de passe créé à l'étape précédente.
mysql -h 192.168.0.253 -u root -p
Le résultat ci-dessous s'affiche lorsque la connexion est réussie.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8350
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
Utilisez la commande show databases; pour vérifier les bases de données créées par défaut sur MySQL.
MySQL [(none)]> show databases;
Se connecter à l'instance Cloud SQL depuis une VM dans VPC3
Ouvrez une session SSH sur csql-vpc3-vm.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Utilisez la commande ci-dessous pour vous connecter à l'instance Cloud SQL. Lorsque vous y êtes invité, saisissez le mot de passe créé à l'étape précédente.
mysql -h 192.168.0.253 -u root -p
La session de la VM résidant sur VPC3 échoue, car il n'existe aucun chemin de données de VPC3 au point de terminaison Private Service Connect. Utilisez les frappes au clavier pour quitter la session.
Ctrl + C
5. Hub Network Connectivity Center
Présentation
Dans cette section, nous allons configurer un hub NCC à l'aide de commandes gcloud. Le hub NCC servira de plan de contrôle chargé de créer le chemin de données entre les spokes VPC et le point de terminaison Private Service Connect.

Activer les services d'API
Activez l'API Network Connectivity si ce n'est pas déjà fait :
gcloud services enable networkconnectivity.googleapis.com
Créer un hub NCC
Utilisez la commande gcloud ci-dessous pour créer un hub NCC. L'indicateur "–export-psc" indique au hub NCC de propager les points de terminaison PSC connus à tous les spokes VPC.
hub_name="ncc-hub"
gcloud network-connectivity hubs create "${hub_name}" \
--export-psc
Décrivez le hub NCC que vous venez de créer. Notez le nom et le chemin d'accès associé.
gcloud network-connectivity hubs describe ncc-hub
Configurer VPC1 en tant que spoke NCC
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc1-spoke"
vpc_spoke_network_name="vpc1-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Configurer VPC3 en tant que spoke NCC
hub_name="ncc-hub"
vpc_spoke_name="sql-vpc3-spoke"
vpc_spoke_network_name="vpc3-spoke"
gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Utilisez la commande ci-dessous pour vérifier si la table de routage du hub NCC contient une route vers le sous-réseau PSC.
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub
6. Vérifier le chemin d'accès aux données du NCC
Au cours de cette étape, nous allons valider le chemin de données entre le spoke hybride NCC et le spoke VPC.
Vérifier le chemin de données NCC configuré vers le point de terminaison PSC des instances Cloud SQL
Utilisez le résultat de ces commandes gcloud pour vous connecter à la VM sur site.
gcloud compute instances list --filter="name=csql-vpc3-vm"
Connectez-vous à l'instance de VM située dans le réseau sur site.
gcloud compute ssh csql-vpc3-vm \
--zone=us-central1-a \
--tunnel-through-iap
Utilisez la commande mysql ci-dessous pour vous connecter à l'instance Cloud SQL. Lorsque vous y êtes invité, saisissez le mot de passe créé à l'étape précédente.
mysql -h 192.168.0.253 -u root -p
Le résultat ci-dessous s'affiche lorsque la connexion est réussie.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8501
Server version: 8.0.31-google (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.005 sec)
Utilisez la commande show databases; pour vérifier les bases de données créées par défaut sur MySQL.
MySQL [(none)]> show databases;
7. Effectuer un nettoyage
Connectez-vous à Cloud Shell et supprimez les ressources GCP.
Supprimer les points de terminaison PSC Cloud SQL
gcloud compute forwarding-rules delete csql-psc-ep \
--region=us-central1 \
--quiet
gcloud compute addresses delete csql-psc-ip \
--region=us-central1 \
--quiet
gcloud compute networks subnets delete csql-psc-subnet \
--region=us-central1 \
--quiet
Supprimer l'instance Cloud SQL
gcloud sql instances delete mysql-instance --quiet
Supprimer des règles de pare-feu
vpc_spoke_network_name="vpc3-spoke"
gcloud compute firewall-rules delete vpc3-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc3-allow-iap \ --network="${vpc_spoke_network_name}"
vpc_spoke_network_name="vpc1-spoke"
gcloud compute firewall-rules delete vpc1-allow-all \ --network="${vpc_spoke_network_name}"
gcloud compute firewall-rules delete vpc1-allow-iap \ --network="${vpc_spoke_network_name}"
Supprimer les instances GCE dans VPC1 et VPC3
vm_vpc1_spoke_name="csql-vpc1-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc1_spoke_name}" \
--zone="${zone}" \
--quiet
vm_vpc_spoke_name="csql-vpc3-vm"
zone="us-central1-a"
gcloud compute instances delete "${vm_vpc_spoke_name}" \
--zone="${zone}" --quiet
Supprimer les spokes NCC
vpc_spoke_name="sql-vpc1-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
vpc_spoke_name="sql-vpc3-spoke"
gcloud network-connectivity spokes delete "${vpc_spoke_name}" \
--global \
--quiet
Supprimer le hub NCC
hub_name="ncc-hub"
gcloud network-connectivity hubs delete "${hub_name}" \
--project=${project}
Supprimer les sous-réseaux dans tous les VPC
vpc_spoke_subnet_name="csql-psc-subnet"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet1"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
vpc_spoke_subnet_name="subnet3"
region="us-central1"
gcloud compute networks subnets delete "${vpc_spoke_subnet_name}" \
--region="${region}" \
--quiet
Supprimer VPC1 et VPC3
gcloud compute networks delete vpc1-spoke vpc3-spoke
8. Félicitations !
Vous avez terminé l'atelier sur la propagation Private Service Connect avec Network Connectivity Center.
Sujets abordés
- Propagation des points de terminaison Private Service Connect avec Network Connectivity Center
Étapes suivantes