Accéder au service depuis un autre réseau VPC

Ce tutoriel explique comment un client de services peut accéder à son service publié en créant un point de terminaison Private Service Connect. Lorsque vous envoyez des requêtes au point de terminaison, Private Service Connect les transmet au service publié.

Ce tutoriel est destiné aux architectes cloud, aux architectes réseau, aux administrateurs réseau et aux administrateurs informatiques.

Objectifs

  • Configurer la mise en réseau pour les ressources du consommateur de services
  • Créer un point de terminaison
  • Tester l'accès au point de terminaison

Coûts

Dans ce document, vous utilisez les composants facturables de Google Cloudsuivants :

Vous pouvez obtenir une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.

Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai sans frais.

Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Suivez les deux tutoriels précédents de cette série :
  2. Créez ou sélectionnez un projet à utiliser pour les ressources du consommateur de services. Ce projet est appelé CONSUMER_PROJECT.
    1. In the Google Cloud console, go to the project selector page.

      Go to project selector

    2. Select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Accéder à IAM
    2. Sélectionnez le projet.
    3. Cliquez sur  Accorder l'accès.
    4. Dans le champ Nouveaux comptes principaux, saisissez votre identifiant utilisateur. Il s'agit généralement de l'adresse e-mail d'un compte Google.

    5. Cliquez sur Sélectionner un rôle, puis recherchez le rôle.
    6. Pour attribuer des rôles supplémentaires, cliquez sur  Ajouter un autre rôle et ajoutez tous les rôles supplémentaires.
    7. Cliquez sur Enregistrer.

Configurer la mise en réseau

Les sections suivantes expliquent comment créer un réseau et un sous-réseau pour héberger le point de terminaison, et comment créer une règle de pare-feu pour autoriser l'accès SSH à la VM cliente utilisée pour tester le point de terminaison.

Créer un réseau et un sous-réseau

Pour créer le réseau et le sous-réseau du consommateur de services, procédez comme suit.

Console

  1. Dans la console Google Cloud , accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Cliquez sur Créer un réseau VPC.

  3. Dans le champ Nom, saisissez consumer-network.

  4. Dans le champ Mode de création de sous-réseau, sélectionnez Personnalisé.

  5. Dans la section Nouveau sous-réseau, saisissez les informations suivantes.

    1. Dans le champ Nom, saisissez consumer-subnet.
    2. Pour Région, sélectionnez la même région que celle du service publié que vous avez créé.
    3. Pour Type de pile d'adresses IP, sélectionnez IPv4 (pile simple).
    4. Dans Plage IPv4, saisissez 192.168.10.0/24.
    5. Cliquez sur OK.
  6. Cliquez sur Créer.

gcloud

  1. Créez un réseau VPC en mode personnalisé :

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. Dans le réseau consumer-network, créez un sous-réseau.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    Remplacez REGION par la région du service publié que vous avez créé.

Configurer des règles de pare-feu

Créez une règle de pare-feu appelée fw-allow-ssh pour autoriser le trafic SSH depuis 0.0.0.0/0 à atteindre les VM qui ont le tag réseau allow-ssh.

Console

  1. Dans la console Google Cloud , accédez à la page Règles de pare-feu.

    Accéder à la page Règles de pare-feu

  2. Pour autoriser les connexions SSH entrantes, cliquez sur Créer une règle de pare-feu et utilisez les paramètres suivants :

    • Dans le champ Nom, saisissez fw-allow-ssh.
    • Pour Réseau, sélectionnez consumer-network.
    • Dans le champ Priorité, saisissez 1000.
    • Pour le Sens du trafic, sélectionnez Entrée.
    • Pour l'option Action en cas de correspondance, sélectionnez Autoriser.
    • Pour Cibles, sélectionnez Specified target tags (Tags cibles spécifiés).
    • Pour Tags cibles, saisissez allow-ssh.
    • Dans la section Filtre source, sélectionnez Plages IPv4.
    • Dans le champ Plages IPv4 sources, saisissez 0.0.0.0/0.
    • Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés, puis cochez la case TCP. Pour Ports, saisissez 22.
  3. Cliquez sur Créer.

gcloud

  1. Créez la règle de pare-feu fw-allow-ssh pour autoriser la connectivité SSH aux VM avec le tag réseau allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=consumer-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=0.0.0.0/0 \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

Créer un point de terminaison

Créez un point de terminaison qui pointe vers le service publié que vous avez créé.

Console

  1. Dans la console Google Cloud , accédez à la page Private Service Connect.

    Accéder à la page "Private Service Connect"

  2. Cliquez sur l'onglet Points de terminaison connectés.

  3. Cliquez sur Connecter le point de terminaison.

  4. Pour Cible, sélectionnez Service publié

  5. Dans le champ Service cible, saisissez projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.

    Remplacez PRODUCER_PROJECT par l'ID du projet du service publié. Remplacez REGION par la région du service publié.

  6. Dans le champ Nom du point de terminaison, saisissez ep-1.

  7. Pour Réseau, sélectionnez consumer-network.

  8. Pour Sous-réseau, sélectionnez consumer-subnet.

  9. Cliquez sur le menu déroulant Adresse IP, puis sélectionnez Créer une adresse IP.

    1. Dans le champ Nom, saisissez ep-ip-1.
    2. Sous Adresse IP statique, sélectionnez Let me choose.
    3. Sous Adresse IP personnalisée, saisissez 192.168.10.5.
    4. Cliquez sur Réserver.
  10. Cliquez sur Ajouter un point de terminaison.

gcloud

  1. Réservez une adresse IP interne à attribuer au point de terminaison.

    gcloud compute addresses create ep-ip-1 \
        --region=REGION \
        --subnet=consumer-subnet \
        --addresses=192.168.10.5
    

    Remplacez REGION par la région du service publié que vous avez créé.

  2. Créez une règle de transfert pour connecter le point de terminaison au rattachement de service du producteur de services.

    gcloud compute forwarding-rules create ep-1 \
        --region=REGION \
        --network=consumer-network \
        --address=ep-ip-1 \
        --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service
    

    Remplacez les éléments suivants :

    • PRODUCER_PROJECT : ID du projet du producteur de services.

    • REGION : région du rattachement de service.

Tester l'accès au point de terminaison

Pour vérifier que le point de terminaison et le service publié fonctionnent, créez une VM de test et envoyez une requête depuis celle-ci au point de terminaison.

Créer une VM cliente pour les tests

Créez une VM cliente dans la même région que le point de terminaison.

Console

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Créer une instance.

  3. Dans le champ Nom, saisissez consumer-test.

  4. Pour Région, sélectionnez la même région que celle des VM de backend.

  5. Pour Zone, sélectionnez une zone dans cette région.

  6. Cliquez sur Mise en réseau et configurez les champs suivants :

    1. Pour Tags réseau, saisissez allow-ssh.
    2. Pour Interfaces réseau, sélectionnez l'option suivante :
      • Pour Réseau, sélectionnez consumer-network.
      • Pour Sous-réseau, sélectionnez consumer-subnet.
  7. Cliquez sur Créer.

gcloud

gcloud compute instances create consumer-test \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=consumer-subnet

Remplacez ZONE par une zone située dans la même région que les VM de backend.

Tester la connectivité

Ce test contacte le point de terminaison à partir d'une VM cliente. Le comportement attendu est une répartition du trafic entre les VM de backend de l'équilibreur de charge.

  1. Connectez-vous à l'instance de VM cliente.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Remplacez ZONE par la zone de la VM cliente.
  2. Envoyez une requête Web au point de terminaison à l'aide de curl pour contacter son adresse IP. Répétez la requête pour que les réponses proviennent de différentes VM de backend. Le nom de la VM qui génère la réponse est affiché dans le texte de la réponse HTML, en raison du contenu de /var/www/html/index.html sur chaque VM de backend. Par exemple, les réponses attendues ressemblent à Page served from: vm-1 et Page served from: vm-2.
    curl -s http://192.168.10.5
    

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer les projets

Supprimez le projet producteur (PRODUCER_PROJECT) et le projet consommateur (CONSUMER_PROJECT).

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étapes suivantes