Sur Google Cloud Platform (GCP), chaque nouveau projet démarre avec un réseau VPC par défaut dès l'activation de l'API Compute Engine, sauf si vous le désactivez.
L'utilisation de GCP s'en trouve simplifiée : nul besoin de créer un VPC personnalisé ni des sous-réseaux. Mais le réseau par défaut pose un problème : tous les sous-réseaux créés automatiquement utilisent un ensemble de plages IPv4 prédéfinies qui s'inscrivent dans le bloc CIDR 10.128.0.0/9.
La communication interne privée entre projets est impossible du fait de ce chevauchement des réseaux. Cette limitation s'applique aussi bien au VPC Peering qu'à Cloud VPN.
Cet article vous montre comment utiliser Private Service Connect pour accéder en privé à des services exécutés dans des clusters VM/GKE aux réseaux superposés. Le procédé fonctionne aussi bien au sein d'une même organisation GCP qu'entre organisations distinctes.
Architecture de référence
Configuration cible de Private Service Connect
Le projet B est le projet producteur du service ; un service nginx d'exemple y est déployé sur une instance d'un managed instance group.
Le projet A est le projet consommateur : il doit accéder en privé au service hébergé dans le projet B. Les instances des deux projets ne disposent d'aucune IP externe.
La région GCP des ressources est us-west4
L'API compute.googleapis.com est activée dans le projet A et le projet B
Cloud NAT permet aux instances privées d'accéder à Internet pour télécharger les paquets
Déployer le service d'exemple et l'instance de test
Mettez à jour les variables dans les commandes ci-dessous.
Les réseaux des projets A et B n'ont aucune connectivité interne. L'instance du projet A ne peut donc pas accéder au service exécuté dans le projet B.
Le VPC peering est impossible en raison du chevauchement des plages dans le réseau par défaut.
Mettre en place le load balancer interne
Un load balancer interne est nécessaire pour que Private Service Connect expose le service via un service attachment. Nous allons créer un load balancer TCP interne dans le projet B pour cette configuration.
Créez un nouveau health check HTTP régional pour tester la connectivité HTTP aux VM sur le port 80.
Publiez le service dans le projet B (le projet producteur) afin que les consommateurs d'autres réseaux VPC puissent s'y connecter en privé et y accéder en toute sécurité.
Réservez un sous-réseau pour Private Service Connect. La plage de ce sous-réseau ne doit pas chevaucher celle du réseau par défaut.
Un endpoint dans le projet consommateur se connecte aux services du réseau VPC producteur via une forwarding rule Private Service Connect.
Lorsque vous créez un endpoint, il est automatiquement enregistré auprès de Service Directory, dans un namespace de votre choix ou dans le namespace par défaut, goog-psc-default.
Pour rendre l'endpoint accessible depuis plusieurs régions, activez l'accès global. L'accès global est en Preview.
Réservez une adresse IP interne à attribuer à l'endpoint.
Tester la connectivité depuis le projet consommateur
Les composants Private Service Connect sont désormais configurés dans les projets A et B. Utilisez l'IP de l'endpoint dans le projet A pour accéder au service nginx du projet B.
Le test confirme que les instances des réseaux superposés peuvent communiquer en privé via l'endpoint Private Service Connect.
Cet exemple illustre comment tirer parti de Private Service Connect pour publier et consommer en toute sécurité des services sur des réseaux superposés.
Le trafic reste intégralement au sein de Google Cloud, offrant un accès orienté service entre consommateurs et producteurs, avec un contrôle granulaire des modalités d'accès aux services.
Pour en savoir plus sur Private Service Connect, consultez la page produit.
\n'yum\ install\ epel-release
Créez un managed instance group dans le projet B.
Une fois la création réussie, le managed instance group lance une instance dans la zone cible.
Connectez-vous en SSH à l'instance et vérifiez l'état du service nginx.
Créez une instance de test de connectivité dans le projet A.
Les réseaux des projets A et B n'ont aucune connectivité interne. L'instance du projet A ne peut donc pas accéder au service exécuté dans le projet B.
Le VPC peering est impossible en raison du chevauchement des plages dans le réseau par défaut.
Mettre en place le load balancer interne
Un load balancer interne est nécessaire pour que Private Service Connect expose le service via un service attachment. Nous allons créer un load balancer TCP interne dans le projet B pour cette configuration.
Créez un nouveau health check HTTP régional pour tester la connectivité HTTP aux VM sur le port 80.
Créez le service backend pour le trafic HTTP.
Ajoutez l'instance group du service nginx au service backend.
Créez une forwarding rule pour le service backend.
Configurez une règle de pare-feu pour autoriser les health checks du load balancer.
Publier les services dans le projet producteur
Publiez le service dans le projet B (le projet producteur) afin que les consommateurs d'autres réseaux VPC puissent s'y connecter en privé et y accéder en toute sécurité.
Réservez un sous-réseau pour Private Service Connect. La plage de ce sous-réseau ne doit pas chevaucher celle du réseau par défaut.
Publiez le service nginx auprès du projet A avec une approbation explicite.
Configurez une règle de pare-feu pour autoriser Private Service Connect à accéder aux instances cibles.
Configurer l'endpoint dans le projet consommateur
Un endpoint dans le projet consommateur se connecte aux services du réseau VPC producteur via une forwarding rule Private Service Connect.
Lorsque vous créez un endpoint, il est automatiquement enregistré auprès de Service Directory, dans un namespace de votre choix ou dans le namespace par défaut, goog-psc-default.
Pour rendre l'endpoint accessible depuis plusieurs régions, activez l'accès global. L'accès global est en Preview.
Réservez une adresse IP interne à attribuer à l'endpoint.
Créez une forwarding rule pour relier l'endpoint au service attachment du projet B.
Tester la connectivité depuis le projet consommateur
Les composants Private Service Connect sont désormais configurés dans les projets A et B. Utilisez l'IP de l'endpoint dans le projet A pour accéder au service nginx du projet B.
Le test confirme que les instances des réseaux superposés peuvent communiquer en privé via l'endpoint Private Service Connect.
Cet exemple illustre comment tirer parti de Private Service Connect pour publier et consommer en toute sécurité des services sur des réseaux superposés.
Le trafic reste intégralement au sein de Google Cloud, offrant un accès orienté service entre consommateurs et producteurs, avec un contrôle granulaire des modalités d'accès aux services.
Pour en savoir plus sur Private Service Connect, consultez la page produit.
\n'yum\ -y\ install\ nginx
Créez un managed instance group dans le projet B.
Une fois la création réussie, le managed instance group lance une instance dans la zone cible.
Connectez-vous en SSH à l'instance et vérifiez l'état du service nginx.
Créez une instance de test de connectivité dans le projet A.
Les réseaux des projets A et B n'ont aucune connectivité interne. L'instance du projet A ne peut donc pas accéder au service exécuté dans le projet B.
Le VPC peering est impossible en raison du chevauchement des plages dans le réseau par défaut.
Mettre en place le load balancer interne
Un load balancer interne est nécessaire pour que Private Service Connect expose le service via un service attachment. Nous allons créer un load balancer TCP interne dans le projet B pour cette configuration.
Créez un nouveau health check HTTP régional pour tester la connectivité HTTP aux VM sur le port 80.
Créez le service backend pour le trafic HTTP.
Ajoutez l'instance group du service nginx au service backend.
Créez une forwarding rule pour le service backend.
Configurez une règle de pare-feu pour autoriser les health checks du load balancer.
Publier les services dans le projet producteur
Publiez le service dans le projet B (le projet producteur) afin que les consommateurs d'autres réseaux VPC puissent s'y connecter en privé et y accéder en toute sécurité.
Réservez un sous-réseau pour Private Service Connect. La plage de ce sous-réseau ne doit pas chevaucher celle du réseau par défaut.
Publiez le service nginx auprès du projet A avec une approbation explicite.
Configurez une règle de pare-feu pour autoriser Private Service Connect à accéder aux instances cibles.
Configurer l'endpoint dans le projet consommateur
Un endpoint dans le projet consommateur se connecte aux services du réseau VPC producteur via une forwarding rule Private Service Connect.
Lorsque vous créez un endpoint, il est automatiquement enregistré auprès de Service Directory, dans un namespace de votre choix ou dans le namespace par défaut, goog-psc-default.
Pour rendre l'endpoint accessible depuis plusieurs régions, activez l'accès global. L'accès global est en Preview.
Réservez une adresse IP interne à attribuer à l'endpoint.
Créez une forwarding rule pour relier l'endpoint au service attachment du projet B.
Tester la connectivité depuis le projet consommateur
Les composants Private Service Connect sont désormais configurés dans les projets A et B. Utilisez l'IP de l'endpoint dans le projet A pour accéder au service nginx du projet B.
Le test confirme que les instances des réseaux superposés peuvent communiquer en privé via l'endpoint Private Service Connect.
Cet exemple illustre comment tirer parti de Private Service Connect pour publier et consommer en toute sécurité des services sur des réseaux superposés.
Le trafic reste intégralement au sein de Google Cloud, offrant un accès orienté service entre consommateurs et producteurs, avec un contrôle granulaire des modalités d'accès aux services.
Pour en savoir plus sur Private Service Connect, consultez la page produit.
Une fois la création réussie, le managed instance group lance une instance dans la zone cible.
Connectez-vous en SSH à l'instance et vérifiez l'état du service nginx.
Créez une instance de test de connectivité dans le projet A.
Les réseaux des projets A et B n'ont aucune connectivité interne. L'instance du projet A ne peut donc pas accéder au service exécuté dans le projet B.
Le VPC peering est impossible en raison du chevauchement des plages dans le réseau par défaut.
Mettre en place le load balancer interne
Un load balancer interne est nécessaire pour que Private Service Connect expose le service via un service attachment. Nous allons créer un load balancer TCP interne dans le projet B pour cette configuration.
Créez un nouveau health check HTTP régional pour tester la connectivité HTTP aux VM sur le port 80.
Créez le service backend pour le trafic HTTP.
Ajoutez l'instance group du service nginx au service backend.
Créez une forwarding rule pour le service backend.
Configurez une règle de pare-feu pour autoriser les health checks du load balancer.
Publier les services dans le projet producteur
Publiez le service dans le projet B (le projet producteur) afin que les consommateurs d'autres réseaux VPC puissent s'y connecter en privé et y accéder en toute sécurité.
Réservez un sous-réseau pour Private Service Connect. La plage de ce sous-réseau ne doit pas chevaucher celle du réseau par défaut.
Publiez le service nginx auprès du projet A avec une approbation explicite.
Configurez une règle de pare-feu pour autoriser Private Service Connect à accéder aux instances cibles.
Configurer l'endpoint dans le projet consommateur
Un endpoint dans le projet consommateur se connecte aux services du réseau VPC producteur via une forwarding rule Private Service Connect.
Lorsque vous créez un endpoint, il est automatiquement enregistré auprès de Service Directory, dans un namespace de votre choix ou dans le namespace par défaut, goog-psc-default.
Pour rendre l'endpoint accessible depuis plusieurs régions, activez l'accès global. L'accès global est en Preview.
Réservez une adresse IP interne à attribuer à l'endpoint.
Créez une forwarding rule pour relier l'endpoint au service attachment du projet B.
Tester la connectivité depuis le projet consommateur
Les composants Private Service Connect sont désormais configurés dans les projets A et B. Utilisez l'IP de l'endpoint dans le projet A pour accéder au service nginx du projet B.
Le test confirme que les instances des réseaux superposés peuvent communiquer en privé via l'endpoint Private Service Connect.
Cet exemple illustre comment tirer parti de Private Service Connect pour publier et consommer en toute sécurité des services sur des réseaux superposés.
Le trafic reste intégralement au sein de Google Cloud, offrant un accès orienté service entre consommateurs et producteurs, avec un contrôle granulaire des modalités d'accès aux services.
Pour en savoir plus sur Private Service Connect, consultez la page produit.