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 vers les spokes VPC.
La ressource hub fournit un modèle de gestion de la connectivité centralisée 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 vers une instance Cloud SQL.
Points abordés
- Se connecter à une instance Cloud SQL à l'aide de Private Service Connect
- Utilisez le hub NCC pour propager le sous-réseau PSC à tous les spokes VPC afin de permettre la connectivité réseau à partir de plusieurs réseaux VPC.
Prérequis
- Connaissances de la mise en réseau GCP Cloud
- Connaissances de base sur Cloud SQL
- Projet Google Cloud
- Vérifiez votre quota:réseaux et demandez des réseaux supplémentaires si nécessaire (capture d'écran ci-dessous) :
Objectifs
- Configurer l'environnement GCP
- Configurer une instance Cloud SQL pour MySQL avec Private Service Connect
- Configurer le 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
- Explorer les fonctionnalités de serviceabilité du NCC
- Effectuer un nettoyage des ressources
Avant de commencer
Google Cloud Console et Cloud Shell
Pour interagir avec GCP, nous utiliserons à la fois Google Cloud Console 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. Veillez à configurer votre utilisateur avec les rôles IAM NCC requis.
Rôle/Description | Autorisations |
networkconnectivity.networkAdmin : permet aux administrateurs réseau de gérer le hub et les spokes. | networkconnectivity.hubs.networkconnectivity.spokes. |
networkconnectivity.networkSpokeManager : permet d'ajouter et de gérer des spokes dans un hub. À utiliser dans un VPC partagé où le projet hôte est propriétaire du 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 du hub 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é à cette étape.
Créer VPC1 et un sous-réseau
Le réseau VPC contient des sous-réseaux dans lesquels vous allez installer 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 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 routage VPC 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 des paquets. 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 des paquets. 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 qui pointe 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 de 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 trouver l'adresse IP du point de terminaison PSC associé au rattachement de service Cloud SQL.
gcloud compute addresses describe csql-psc-ip \
--region=us-central1 \
--format='value(address)'
Se connecter à une instance Cloud SQL à partir d'une VM dans VPC1
Ouvrez une session SSH sur 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 une fois la connexion 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 dans MySQL.
MySQL [(none)]> show databases;
Se connecter à l'instance Cloud SQL à partir d'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 entre VPC3 et le point de terminaison Private Service Connect. Utilisez les combinaisons de touches 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 elle n'est pas encore activée:
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 nouvellement créé. 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 rechercher une route vers le sous-réseau PSC dans la table de routage du hub NCC.
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
À cette étape, nous allons valider le chemin de données entre le NCC hybride et le rayon du VPC.
Vérifier le chemin de données configuré par le NCC vers le point de terminaison PSC des instances Cloud SQL
Utilisez la sortie 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 sur 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 une fois la connexion 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)
Utiliser la commande "show databases" pour vérifier les bases de données créées par défaut dans MySQL
MySQL [(none)]> show databases;
7. Effectuer un nettoyage
Se connecter à Cloud Shell et supprimer des 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
Supprimez 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 du 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}
Supprimez les sous-réseaux de 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