Publier des services à l'aide de Private Service Connect

En tant que producteur de services, vous pouvez utiliser Private Service Connect pour publier des services à l'aide d'adresses IP internes sur votre réseau VPC. Vos services publiés sont accessibles aux clients de services en utilisant des adresses IP internes dans les réseaux VPC consommateur.

Ce guide explique comment publier un service à l'aide de Private Service Connect. Pour publier un service, procédez comme suit :

Private Service Connect propose deux méthodes pour se connecter aux services publiés :

Ces types de points de terminaison nécessitent des configurations de producteur légèrement différentes. Pour en savoir plus, consultez la section Fonctionnalités et compatibilité.

Rôles

Le rôle IAM suivant fournit les autorisations nécessaires pour effectuer les tâches décrites dans ce guide.

Avant de commencer

  • Pour en savoir plus sur la publication de services, y compris sur les limites, consultez la section À propos des services publiés.

  • Déterminez si le service doit être accessible depuis tous les projets ou si vous souhaitez contrôler quels projets peuvent accéder à votre service.

  • Indiquez si vous souhaitez que ce service accepte des points de terminaison, des backends ou les deux. Pour plus d'informations sur les points de terminaison et les backends, consultez la section Types Private Service Connect.

    Pour en savoir plus sur les exigences de configuration d'un service, consultez la section Fonctionnalités et compatibilité.

  • Déterminez si vous souhaitez configurer un nom de domaine pour le service, ce qui automatise la configuration DNS des points de terminaison du client de service. Si vous configurez un nom de domaine, le même compte principal IAM qui publie le service doit vérifier qu'il dispose des autorisations de propriétaire pour le domaine dans la Google Search Console. Si vous configurez un nom de domaine, mais que vous n'êtes pas propriétaire du domaine, la publication du service échoue. Pour valider la propriété, accédez à Google Search Console.

    Le nom de domaine que vous spécifiez dans le rattachement de service peut être un sous-domaine du domaine que vous validez. Par exemple, vous pouvez vérifier example.com, puis créer un rattachement de service avec le nom de domaine us-west1.p.example.com.

Créer un équilibreur de charge compatible

Pour héberger le service, créez l'un des équilibreurs de charge suivants dans un réseau VPC de producteur de services :

Pour en savoir plus sur les configurations compatibles avec chaque type d'équilibreur de charge, consultez la section Fonctionnalités et compatibilité.

Vous pouvez associer chaque rattachement de service à la règle de transfert d'un équilibreur de charge unique. Vous ne pouvez pas associer plusieurs rattachements de service à la même règle de transfert.

La version IP de la règle de transfert de votre équilibreur de charge (IPv4 ou IPv6) a une incidence sur les clients autorisés à se connecter à votre service publié. Pour en savoir plus, consultez la page Traduction de version IP.

Pour les équilibreurs de charge réseau proxy internes régionaux, les backends peuvent être situés dans Google Cloud, dans d'autres clouds, dans un environnement sur site ou dans une combinaison de ces emplacements.

Vous pouvez également publier un service hébergé sur un équilibreur de charge réseau passthrough interne sur Google Kubernetes Engine. Cette configuration, y compris la configuration de l'équilibreur de charge et du rattachement de service, est décrite dans la section Créer un équilibreur de charge passthrough interne avec Private Service Connect de la documentation GKE.

Créer un sous-réseau pour Private Service Connect

Créez un ou plusieurs sous-réseaux dédiés à utiliser avec Private Service Connect. Vous devez créer le sous-réseau dans la même région que l'équilibreur de charge du service.

Si vous utilisez la console Google Cloud pour publier un service, vous pouvez créer les sous-réseaux pendant cette procédure.

Vous pouvez créer un sous-réseau Private Service Connect dans un projet hôte de VPC partagé.

Vous ne pouvez pas convertir un sous-réseau standard en sous-réseau Private Service Connect.

Si vous souhaitez publier un service qui diffuse le trafic IPv6, vous devez utiliser un sous-réseau à double pile doté d'une plage d'adresses IPv6 internes.

Si vous devez rendre d'autres adresses IP disponibles pour un service existant, consultez la section Ajouter ou supprimer des sous-réseaux d'un service publié.

Console

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

    Accéder aux réseaux VPC

  2. Cliquez sur le nom d'un réseau VPC pour afficher la page des détails du réseau VPC.

  3. Cliquez sur Sous-réseaux.

  4. Cliquez sur Ajouter un sous-réseau. Dans le panneau qui apparaît, procédez comme suit :

    1. Indiquez un Nom.
    2. Sélectionnez une Région.
    3. Dans la section Objectif, sélectionnez Private Service Connect.
    4. Sélectionnez un type de pile d'adresses IP.
    5. Saisissez une plage IPv4. Exemple :10.10.10.0/24
    6. Si vous créez un sous-réseau à double pile, définissez le type d'accès IPv6 sur Interne.
    7. Cliquez sur Ajouter.

gcloud

  • Pour créer un sous-réseau Private Service Connect IPv4 uniquement, procédez comme suit:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • Pour créer un sous-réseau Private Service Connect à double pile, procédez comme suit:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

Remplacez les éléments suivants :

  • SUBNET_NAME : nom à attribuer au sous-réseau.

  • NETWORK_NAME : nom du VPC pour le nouveau sous-réseau.

  • REGION : région du nouveau sous-réseau. Il doit s'agir de la même région que celle du service que vous publiez.

  • SUBNET_RANGE : plage d'adresses IPv4 à utiliser pour le sous-réseau, par exemple 10.10.10.0/24.

API

  • Pour créer un sous-réseau Private Service Connect IPv4 uniquement, procédez comme suit:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    
    {
      "ipCidrRange": "SUBNET_RANGE",
      "name": "SUBNET_NAME",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "purpose": "PRIVATE_SERVICE_CONNECT",
    }
    
  • Pour créer un sous-réseau Private Service Connect à double pile, procédez comme suit:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    
    {
      "ipCidrRange": "SUBNET_RANGE",
      "name": "SUBNET_NAME",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "purpose": "PRIVATE_SERVICE_CONNECT",
      "stackType": "IPV4_IPV6",
      "ipv6AccessType": "INTERNAL"
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : projet du sous-réseau.

  • REGION : région du nouveau sous-réseau. Il doit s'agir de la même région que celle du service que vous publiez.

  • SUBNET_RANGE : plage d'adresses IPv4 à utiliser pour le sous-réseau. Exemple :10.10.10.0/24

  • SUBNET_NAME : nom à attribuer au sous-réseau.

  • NETWORK_NAME : nom du réseau VPC pour le nouveau sous-réseau.

Configurer des règles de pare-feu

Configurez des règles de pare-feu pour autoriser le trafic entre les points de terminaison ou les backends, et le rattachement de service. Les requêtes des clients proviennent de différents emplacements en fonction du type Private Service Connect.

Type Private Service Connect Plages d'adresses IP pour le trafic client Détails
Point de terminaison (basé sur une règle de transfert) Les plages d'adresses IP des sous-réseaux Private Service Connect associés à ce service. Si vous utilisez le réseau par défaut, la règle default-allow-internal préremplie autorise ce trafic, sauf si une règle de priorité plus élevée la bloque.
Backend (basé sur un équilibreur de charge d'application externe global)
  • 130.211.0.0/22
  • 35.191.0.0/16
Les équilibreurs de charge d'application externes globaux sont mis en œuvre sur GFE (Google Front End), qui utilise ces plages d'adresses IP.

Si la configuration de votre pare-feu n'autorise pas déjà le trafic du type de point de terminaison approprié, configurez des règles de pare-feu pour l'autoriser.

L'exemple de configuration suivant vous permet de créer des règles de pare-feu VPC afin d'autoriser le trafic provenant des plages d'adresses IP clientes vers les VM de backend dans l'équilibreur de charge du service producteur. Cette configuration suppose que les VM de backend ont été configurées avec un tag réseau.

Exemple de règle d'entrée :

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=ingress \
    --action=allow \
    --target-tags=TAG \
    --source-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Remplacez les éléments suivants :

  • NAME : nom de la règle de pare-feu.

  • NETWORK_NAME : réseau qui contient le service et le sous-réseau Private Service Connect.

  • TAG : tag cible qui est appliqué aux VM de backend dans l'équilibreur de charge du service producteur.

  • CLIENT_IP_RANGES_LIST : plages d'adresses IP d'où provient le trafic client. Pour plus d'informations, consultez le tableau précédent.

  • RULES_LIST : liste de protocoles et ports de destination séparés par une virgule et auxquels la règle s'applique. Exemple : tcp,udp.

Exemple de règle de sortie :

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=egress \
    --action=allow \
    --target-tags=TAG \
    --destination-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Remplacez les éléments suivants :

  • NAME : nom de la règle de pare-feu.

  • NETWORK_NAME : réseau qui contient le service et le sous-réseau Private Service Connect.

  • TAG : tag cible qui est appliqué aux VM de backend dans l'équilibreur de charge du service producteur.

  • CLIENT_IP_RANGES_LIST : plages d'adresses IP d'où provient le trafic client. Pour plus d'informations, consultez le tableau précédent.

  • RULES_LIST : liste de protocoles et ports de destination séparés par une virgule et auxquels la règle s'applique. Exemple : tcp,udp.

Pour en savoir plus sur la configuration des règles de pare-feu VPC, consultez la page Règles de pare-feu VPC. Pour configurer des règles de pare-feu hiérarchiques afin d'autoriser ce trafic, consultez la page Stratégies de pare-feu hiérarchiques.

Publier un service

Pour publier un service, vous devez créer un rattachement de service. Vous pouvez rendre le service disponible de deux manières :

Créez le rattachement de service dans la même région que l'équilibreur de charge du service.

Chaque rattachement de service peut pointer vers un ou plusieurs sous-réseaux Private Service Connect, mais un sous-réseau Private Service Connect ne peut pas être utilisé dans plusieurs rattachements de service.

Publier un service avec approbation automatique

Suivez ces instructions pour publier un service et autoriser automatiquement tous les clients à se connecter à ce service. Si vous souhaitez approuver explicitement les connexions client, consultez la section Publier un service avec approbation explicite.

Lorsque vous publiez un service, vous créez un rattachement de service. Les clients de services utilisent les détails du rattachement de service pour se connecter à votre service.

Si vous souhaitez afficher les informations de connexion client, vous pouvez activer le protocole PROXY sur les services compatibles. Pour en savoir plus sur les services compatibles, consultez la page Fonctionnalités et compatibilité. Pour en savoir plus sur le protocole PROXY, consultez la section Informations de connexion client.

Vous pouvez associer des sous-réseaux à pile unique et double pile au même rattachement de service. Si votre équilibreur de charge est configuré pour le trafic IPv6, vous devez utiliser des sous-réseaux double pile.

Lorsque vous publiez un service avec approbation automatique, la limite de connexion propagée s'applique à chaque projet client qui se connecte à votre rattachement de service.

Console

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

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

  3. Cliquez sur Publier le service.

  4. Sélectionnez le type d'équilibreur de charge pour le service que vous souhaitez publier :

    • Équilibreur de charge réseau passthrough interne
    • Équilibreur de charge réseau proxy interne régional
    • Équilibreur de charge d'application interne régional
  5. Sélectionnez l'équilibreur de charge interne qui héberge le service que vous souhaitez publier. Les champs de réseau et de région sont renseignés avec les détails de l'équilibreur de charge interne sélectionné.

    Les administrateurs de projet de service peuvent sélectionner un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

  6. Si vous y êtes invité, sélectionnez la règle de transfert associée au service que vous souhaitez publier.

  7. Dans le champ Nom du service, saisissez le nom du rattachement de service.

  8. Sélectionnez un ou plusieurs sous-réseaux Private Service Connect pour le service. La liste contient les sous-réseaux du réseau VPC de l'équilibreur de charge interne sélectionné, y compris les sous-réseaux qui sont partagés avec un projet de service via un VPC partagé.

    Si votre rattachement de service utilise un équilibreur de charge interne avec une adresse IP provenant d'un réseau VPC partagé, vous devez sélectionner un sous-réseau partagé dans le même réseau VPC partagé.

    Si vous souhaitez ajouter un sous-réseau, vous pouvez en créer un :

    1. Cliquez sur Réserver un nouveau sous-réseau.
    2. Saisissez un nom et une description facultative pour le sous-réseau.
    3. Sélectionnez une région pour le sous-réseau.
    4. Sélectionnez un type de pile d'adresses IP.
    5. Saisissez la plage d'adresses IPv4 à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
  9. Si vous souhaitez afficher les informations de connexion client, sélectionnez Utiliser le protocole PROXY.

  10. Sélectionnez Accepter automatiquement toutes les connexions.

  11. Pour désactiver le rapprochement des connexions, décochez la case Activer le rapprochement des connexions.

  12. Facultatif : Cliquez sur Configuration avancée, puis procédez comme suit :

    1. Si vous souhaitez configurer un nom de domaine, saisissez un nom de domaine, incluant un point final.

      Le format recommandé pour le nom de domaine est REGION.p.DOMAIN..

      Vous devez détenir le nom de domaine. Pour en savoir plus, consultez la section Configurer un DNS.

    2. Saisissez une limite de connexions propagées NCC. Si elle n'est pas spécifiée, la valeur par défaut est 250.

  13. Cliquez sur Ajouter un service.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Remplacez les éléments suivants :

  • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

  • REGION : région du nouveau rattachement de service. Il doit s'agir de la même région que le service que vous publiez.

  • RULE_NAME : nom de la règle de transfert associée au service que vous publiez.

    Les administrateurs de projet de service peuvent spécifier la règle de transfert d'un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

  • PSC_SUBNET_LIST : liste d'un ou de plusieurs noms séparés par une virgule de sous-réseaux à utiliser avec ce rattachement de service.

    Si vous créez un rattachement de service avec une règle de transfert ayant une adresse IP issue d'un réseau VPC partagé, utilisez des sous-réseaux partagés du même réseau VPC partagé. Pour chaque sous-réseau partagé, spécifiez l'URI complet de la ressource, par exemple --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT : limite de connexions propagées par projet. La valeur par défaut est 250.

  • DOMAIN_NAME : nom de domaine DNS du service, y compris un point final. Format recommandé : REGION.p.DOMAIN.

    Pour en savoir plus, consultez la section Configurer un DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI"
  ],
  "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
  "domainNames": [
    "DOMAIN_NAME"
  ]
}

Remplacez l'élément suivant :

  • PROJECT_ID : projet pour le rattachement de service.

  • REGION : région du nouveau rattachement de service. Il doit s'agir de la même région que le service que vous publiez.

  • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

  • RULE_URI : URI de la règle de transfert associée au service que vous publiez.

    Les administrateurs de projet de service peuvent spécifier la règle de transfert d'un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

  • PSC_SUBNET_1_URI et PSC_SUBNET_2_URI : URI de sous-réseau à utiliser pour ce rattachement de service. Vous pouvez spécifier un ou plusieurs sous-réseaux par URI.

    Si vous créez un rattachement de service avec une règle de transfert ayant une adresse IP issue d'un réseau VPC partagé, utilisez des sous-réseaux partagés du même réseau VPC partagé.

  • DOMAIN_NAME : nom de domaine DNS du service, y compris un point final. Format recommandé : REGION.p.DOMAIN.

    Pour en savoir plus, consultez la section Configurer un DNS.

  • PROPAGATED_CONNECTION_LIMIT : limite de connexions propagées par projet. La valeur par défaut est 250.

Publier un service avec approbation explicite

Suivez ces instructions pour publier un service si vous souhaitez approuver explicitement les clients avant qu'ils puissent se connecter au service. Si vous souhaitez approuver automatiquement les connexions client, consultez la page Publier un service avec approbation automatique du projet.

Lorsque vous publiez un service, vous créez un rattachement de service. Les clients de services utilisent les détails du rattachement de service pour se connecter à votre service.

Chaque rattachement de service possède une liste d'acceptation client et une liste de refus client, qui permettent de déterminer les points de terminaison pouvant se connecter au service. Un rattachement de service donné peut utiliser les projets ou les réseaux de ces listes, mais pas les deux. Il n'est pas possible de spécifier des clients par dossier.

Si vous passez de l'acceptation de clients basée sur un projet à l'acceptation de clients basée sur un réseau, ou inversement, procédez comme suit :

  • Remplacez tous les projets ou réseaux approuvés en une seule opération.
  • Si vous devez fournir le même accès qu'auparavant, assurez-vous que les nouvelles listes d'acceptation et de rejet sont équivalentes aux précédentes.

Si vous ajoutez simultanément un projet ou un réseau à la liste d'acceptation et à la liste de refus, les requêtes de connexion de ce projet ou réseau sont refusées.

Si vos listes d'acceptation et de refus client font référence à des projets, la limite de connexions propagées s'applique aux projets clients. Si vos listes d'acceptation et de refus client font référence à des réseaux VPC, la limite de connexions propagées s'applique aux réseaux VPC clients.

Console

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

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

  3. Cliquez sur Publier le service.

  4. Sélectionnez le type d'équilibreur de charge pour le service que vous souhaitez publier :

    • Équilibreur de charge réseau passthrough interne
    • Équilibreur de charge réseau proxy interne régional
    • Équilibreur de charge d'application interne régional
  5. Sélectionnez l'équilibreur de charge interne qui héberge le service que vous souhaitez publier. Les champs de réseau et de région sont renseignés avec les détails de l'équilibreur de charge interne sélectionné.

    Les administrateurs de projet de service peuvent sélectionner un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

  6. Si vous y êtes invité, sélectionnez la règle de transfert associée au service que vous souhaitez publier.

  7. Dans le champ Nom du service, saisissez le nom du rattachement de service.

  8. Sélectionnez un ou plusieurs sous-réseaux Private Service Connect pour le service. La liste contient les sous-réseaux du réseau VPC de l'équilibreur de charge interne sélectionné, y compris les sous-réseaux qui sont partagés avec un projet de service via un VPC partagé.

    Si votre rattachement de service utilise un équilibreur de charge interne avec une adresse IP provenant d'un réseau VPC partagé, vous devez sélectionner un sous-réseau partagé dans le même réseau VPC partagé.

    Si vous souhaitez ajouter un sous-réseau, vous pouvez en créer un :

    1. Cliquez sur Réserver un nouveau sous-réseau.
    2. Saisissez un nom et une description facultative pour le sous-réseau.
    3. Sélectionnez une région pour le sous-réseau.
    4. Sélectionnez un type de pile d'adresses IP.
    5. Saisissez la plage d'adresses IPv4 à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
  9. Si vous souhaitez afficher les informations de connexion client, sélectionnez Utiliser le protocole PROXY.

  10. Si vous souhaitez accepter les connexions pour les projets sélectionnés, sélectionnez Accepter les connexions pour les projets sélectionnés.

    1. Pour chaque projet à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
      1. Cliquez sur Ajouter un projet accepté, puis saisissez les informations suivantes :
        • ID ou numéro du projet à partir duquel vous souhaitez accepter les connexions.
        • Une limite de connexion pour spécifier le nombre maximal de points de terminaison du projet spécifié pouvant se connecter.
    2. Facultatif : pour chaque projet pour lequel vous souhaitez explicitement refuser les connexions, cliquez sur Ajouter un projet refusé, puis saisissez l'ID ou le numéro du projet.
  11. Si vous souhaitez accepter les connexions des réseaux sélectionnés, sélectionnez Accepter les connexions pour les réseaux sélectionnés.

    1. Pour chaque réseau à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
      1. Cliquez sur Ajouter un réseau accepté, puis saisissez les informations suivantes :
        • ID ou numéro de projet du projet parent du réseau à partir duquel vous souhaitez accepter les connexions.
        • Nom du réseau à partir duquel vous souhaitez accepter les connexions.
        • Une limite de connexion pour spécifier le nombre maximal de points de terminaison du réseau spécifié pouvant se connecter.
    2. Facultatif : pour chaque réseau dont vous souhaitez rejeter explicitement les connexions, cliquez sur Ajouter un réseau refusé, puis saisissez l'ID ou le numéro du projet parent du réseau et le nom du réseau.
  12. Pour désactiver le rapprochement des connexions, décochez la case Activer le rapprochement des connexions.

  13. Facultatif : Cliquez sur Configuration avancée, puis procédez comme suit :

    1. Si vous souhaitez configurer un nom de domaine, saisissez un nom de domaine, incluant un point final.

      Le format recommandé pour le nom de domaine est REGION.p.DOMAIN..

      Vous devez détenir le nom de domaine. Pour en savoir plus, consultez la section Configurer un DNS.

    2. Saisissez une limite de connexions propagées NCC. Si elle n'est pas spécifiée, la valeur par défaut est 250.

  14. Cliquez sur Ajouter un service.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ] \
    [ --reconcile-connections ]

Remplacez les éléments suivants :

  • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

  • REGION : région du nouveau rattachement de service. Il doit s'agir de la même région que le service que vous publiez.

  • RULE_NAME : nom de la règle de transfert associée au service que vous publiez.

    Les administrateurs de projet de service peuvent spécifier la règle de transfert d'un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

  • ACCEPTED_PROJECT_OR_NETWORK_1 et ACCEPTED_PROJECT_OR_NETWORK_2 : ID de projet, noms de projet ou URI de réseau à accepter. --consumer-accept-list est facultatif et peut contenir un ou plusieurs projets ou réseaux, mais pas une combinaison des deux types.

  • LIMIT_1 et LIMIT_2 : limites de connexion pour les projets ou les réseaux. La limite de connexion est le nombre de points de terminaison ou de backends clients pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet ou réseau accepté.

  • REJECTED_PROJECT_OR_NETWORK_1 et REJECTED_PROJECT_OR_NETWORK_2 : ID de projet, noms de projet ou URI réseau à rejeter. --consumer-reject-list est facultatif et peut contenir un ou plusieurs projets ou réseaux, mais pas une combinaison des deux types.

  • PSC_SUBNET_LIST : liste d'un ou de plusieurs noms séparés par une virgule de sous-réseaux à utiliser avec ce rattachement de service.

    Si vous créez un rattachement de service avec une règle de transfert ayant une adresse IP issue d'un réseau VPC partagé, utilisez des sous-réseaux partagés du même réseau VPC partagé. Pour chaque sous-réseau partagé, spécifiez l'URI complet de la ressource, par exemple --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT : limite de connexions propagées. La valeur par défaut est 250.

  • DOMAIN_NAME : nom de domaine DNS du service, y compris un point final. Format recommandé : REGION.p.DOMAIN.

    Pour en savoir plus, consultez la section Configurer un DNS.

API

  • Pour publier un service et approuver explicitement les clients en fonction du projet, envoyez la requête suivante :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2"
      ],
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : projet pour le rattachement de service.

    • REGION : région du rattachement de service.

    • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

    • RULE_URI : URI de la règle de transfert associée au service que vous publiez.

      Les administrateurs de projet de service peuvent spécifier la règle de transfert d'un équilibreur de charge interne disposant d'une adresse IP provenant d'un réseau VPC partagé. Pour en savoir plus, consultez la section VPC partagé.

    • PSC_SUBNET_1_URI et PSC_SUBNET_2_URI : URI de sous-réseau à utiliser pour ce rattachement de service. Vous pouvez spécifier un ou plusieurs sous-réseaux par URI.

      Si vous créez un rattachement de service avec une règle de transfert ayant une adresse IP issue d'un réseau VPC partagé, utilisez des sous-réseaux partagés du même réseau VPC partagé.

    • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : ID ou nombre de projets à rejeter. consumerRejectLists est facultatif et peut contenir un ou plusieurs projets.

    • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : ID ou numéros des projets à accepter. consumerAcceptLists est facultatif et peut contenir un ou plusieurs projets.

    • LIMIT_1 et LIMIT_2 : limites de connexion pour les projets. La limite de connexion est le nombre de points de terminaison ou de backends clients pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

    • DOMAIN_NAME : nom de domaine DNS du service, y compris un point final. Format recommandé : REGION.p.DOMAIN.. Pour en savoir plus, consultez la section Configuration DNS.
  • Pour publier un service et approuver explicitement les clients en fonction du réseau VPC, envoyez la requête suivante :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
        "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2"
      ],
      "consumerAcceptLists": [
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Remplacez les éléments suivants :

    • REJECTED_PROJECT_ID_1 et REJECTED_PROJECT_ID_2 : ID des projets parents des réseaux que vous souhaitez rejeter. consumerRejectLists est facultatif et peut contenir un ou plusieurs réseaux.
    • REJECTED_NETWORK_1 et REJECTED_NETWORK_2 : noms des réseaux que vous souhaitez rejeter.
    • ACCEPTED_PROJECT_ID_1 et ACCEPTED_PROJECT_ID_2 : ID des projets parents des réseaux que vous souhaitez accepter. consumerAcceptLists est facultatif et peut contenir un ou plusieurs réseaux.
    • ACCEPTED_NETWORK_1 et ACCEPTED_NETWORK_2 : noms des réseaux que vous souhaitez accepter.
    • LIMIT_1 et LIMIT_2 : limites de connexion pour les projets. La limite de connexion est le nombre de points de terminaison ou de backends clients pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.
    • DOMAIN_NAME : nom de domaine DNS du service, y compris un point final. Format recommandé : REGION.p.DOMAIN.. Pour en savoir plus, consultez la section Configuration DNS.
  • Pour publier un service avec le rapprochement des connexions activé, envoyez une requête semblable aux requêtes précédentes, mais incluez le champ suivant :

    {
      ...
      "reconcileConnections": true
      ...
    }
    

Afficher les informations de connexion client

Pour en savoir plus sur l'affichage des informations de connexion client à l'aide du protocole PROXY, consultez la section Afficher les informations de connexion client.

Gérer les requêtes d'accès à un service publié

Si vous disposez d'un service publié avec une approbation explicite, vous pouvez accepter ou refuser les demandes de connexion de projets ou de réseaux clients. Pour en savoir plus, consultez la section Gérer les requêtes d'accès à un service publié.

Vous pouvez basculer entre l'acceptation automatique du projet et l'acceptation explicite du projet pour un service publié. Pour en savoir plus, consultez la page Modifier la préférence de connexion d'un service publié.

Ajouter ou supprimer des sous-réseaux d'un service publié

Vous pouvez ajouter des sous-réseaux à un service publié ou en supprimer. Pour en savoir plus, consultez la section Ajouter des sous-réseaux à un service publié ou en supprimer.

Répertorier les services publiés

Vous pouvez répertorier tous les services.

Console

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

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

    Les rattachements de service Private Service Connect s'affichent.

gcloud

  1. Répertorier les rattachements de service.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Remplacez l'élément suivant :

    • REGION_LIST : liste d'une ou de plusieurs régions dont vous souhaitez afficher les rattachements de service, séparées par une virgule. Par exemple, us-central1 ou us-west1,us-central1.

API

Vous pouvez afficher tous les rattachements de service dans une région donnée ou dans toutes les régions.

  • Afficher tous les rattachements de service d'une région :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Afficher tous les rattachements de service dans toutes les régions :

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Remplacez l'élément suivant :

    • PROJECT_ID : projet pour le rattachement de service.

    • REGION : région du rattachement de service.

    • ATTACHMENT_NAME : nom du rattachement de service.

Afficher les détails d'un service publié

Vous pouvez afficher tous les détails de configuration d'un service publié. Vous pouvez afficher certains détails de configuration dans la console Google Cloud, par exemple l'URI du rattachement de service dont les clients du service ont besoin pour se connecter au service. Pour afficher tous les détails, y compris les valeurs pscConnectionId des clients du rattachement de service, utilisez Google Cloud CLI ou l'API.

Console

Vous pouvez afficher les détails d'un service publié. Le champ Rattachement de service contient l'URI du rattachement de service.

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

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

  3. Cliquez sur le service que vous souhaitez afficher.

gcloud

Vous pouvez afficher les détails d'un service publié. Le champ selfLink contient l'URI du rattachement de service.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

Vous pouvez afficher les détails d'un service publié. Le champ selfLink contient l'URI du rattachement de service.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Remplacez l'élément suivant :

  • PROJECT_ID : projet pour le rattachement de service.

  • REGION : région du rattachement de service.

  • ATTACHMENT_NAME : nom du rattachement de service.

Supprimer un service publié

Vous pouvez supprimer un service publié, même s'il existe des connexions client au rattachement de service. La suppression du service publié n'entraîne que la suppression du rattachement de service. L'équilibreur de charge associé n'est pas supprimé. Lorsque vous supprimez un service publié, cela entraîne les points suivants :

Console

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

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

  3. Cliquez sur le service que vous souhaitez supprimer.

  4. Cliquez sur Supprimer.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Remplacez l'élément suivant :

  • PROJECT_ID : projet pour le rattachement de service.

  • REGION : région du rattachement de service.

  • ATTACHMENT_NAME : nom du rattachement de service.

Problèmes connus

Déconnexions après la mise à niveau du fournisseur Google pour Terraform

Si vous avez utilisé le fournisseur Google pour Terraform avec des versions antérieures à la version 4.76.0 pour créer des rattachements de service, ne passez pas aux versions 4.76.0 à 4.81.x. Lorsque vous exécutez terraform apply après la mise à niveau vers les versions 4.76.0 à 4.81.x, Terraform peut supprimer et recréer involontairement les rattachements de service, et fermer les connexions Private Service Connect existantes. Les rattachements de service qui sont recréés ne rétablissent pas automatiquement les connexions Private Service Connect.

Si vous passez à la version 4.82.0, puis exécutez terraform apply, vos rattachements de service ne sont pas supprimés, mais le paramètre rapprocher les connexions est défini sur "true". Si ce paramètre était précédemment défini sur "false", certaines connexions Private Service Connect risquent d'être fermées.

  • Mise à niveau vers les versions 4.76.0 à 4.81.x du fournisseur Google. Dans ce scénario, la sortie de la commande terraform plan inclut les éléments suivants :

    -/+ resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
            ~ reconcile_connections = false -> true # forces replacement
      ...
    

    Appliquez les explications données dans la section Solution pour éviter ce problème.

  • Mise à niveau vers la version 4.82.0 du fournisseur Google. Dans ce scénario, la sortie de la commande terraform plan inclut les éléments suivants :

    ~ reconcile_connections = false -> true
    

    Si vous ignorez cet avertissement et appliquez les modifications, Terraform met à jour le rattachement de service en activant le rapprochement des connexions. Le fait de passer de false à true peut fermer certaines connexions existantes, selon leur état. Pour en savoir plus, consultez la section Rapprochement des connexions.

    Appliquez les explications données dans la section Solution pour éviter ce problème.

Solution

Nous vous recommandons de mettre à niveau le fournisseur Google pour Terraform vers la version 4.82.0 ou ultérieure. Cette version empêche la suppression involontaire des rattachements de service, et leur recréation.

Si vous ne pouvez pas effectuer la mise à niveau immédiatement, ou si vous souhaitez empêcher Terraform de modifier le paramètre de rapprochement des connexions, mettez à jour votre configuration Terraform afin de définir explicitement ce paramètre.

  1. Affichez la configuration détaillée du rattachement de service et notez l'état du paramètre reconcileConnections.

    $ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
    

    La sortie inclut le champ reconcileConnections, qui peut être défini sur "true" ou "false".

    reconcileConnections: false
    
  2. Mettez à jour votre fichier de configuration Terraform pour utiliser explicitement le même paramètre que celui utilisé sur le rattachement de service.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Pour obtenir un exemple de configuration, consultez l'exemple Rapprochement de connexions pour des rattachements de service sur GitHub.

Mises à jour correctives des rattachements de service

Lorsque vous mettez à jour un rattachement de service à l'aide de l'API PATCH, vous devez indiquer tous les champs du rattachement de service dans le corps de la requête, et pas seulement les champs que vous mettez à jour. Utilisez serviceAttachments.get pour récupérer tous les champs.

Dépannage

Erreur lors de la mise à jour d'un rattachement de service

Si le message d'erreur suivant s'affiche lorsque vous mettez à jour un rattachement de service, la liste d'acceptation ou de rejet peut inclure les projets supprimés : The resource PROJECT was not found.

Retirez les projets supprimés de la configuration du rattachement de service pour résoudre le problème.

  1. Utilisez la commande gcloud compute service-attachments describe pour afficher la configuration du rattachement de service que vous souhaitez modifier.

    • Pour générer la liste d'acceptation dans un format que vous pourrez utiliser ultérieurement pour mettre à jour le rattachement de service, procédez comme suit :

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      La sortie de la liste d'acceptation ressemble à ceci :

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Pour générer la liste de rejet dans un format que vous pourrez utiliser ultérieurement pour mettre à jour le rattachement de service, procédez comme suit :

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      La liste de rejet ressemble à ce qui suit :

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Modifiez le résultat de la commande pour retirer les projets supprimés de la liste d'acceptation et de la liste de rejet.

  3. Mettez à jour le rattachement de service pour retirer les projets supprimés.

    • Pour mettre à jour la liste d'acceptation, procédez comme suit :

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Pour mettre à jour la liste de refus, procédez comme suit :

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST
      

La connectivité n'est pas établie.

Si un client a créé un point de terminaison ou un backend qui fait référence à votre rattachement de service, mais que la connectivité n'est pas établie, vérifiez l'état de connexion du rattachement de service. L'état de la connexion peut indiquer les étapes à suivre pour résoudre le problème.

Délai d'expiration des connexions client

Si les connexions client dépassent le délai d'expiration, vérifiez si votre service nécessite des connexions de longue durée. Le délai d'inactivité d'une connexion TCP établie pour la NAT Private Service Connect est de 20 minutes. Si votre service nécessite un délai avant expiration plus long, vous devrez peut-être apporter des modifications à la configuration pour vous assurer que les connexions n'expirent pas. Pour en savoir plus, consultez la section Spécifications NAT.

Les connexions propagées ne sont pas établies

Pour en savoir plus sur le dépannage des connexions propagées, consultez la page Résoudre les problèmes liés à Network Connectivity Center.