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

Types d'équilibreur de charge compatibles

Vous pouvez héberger le service à l'aide des équilibreurs de charge suivants :

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

Vous pouvez également publier un service hébergé sur un équilibreur de charge réseau interne à stratégie directe 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 interne à stratégie directe 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. Si vous utilisez Google Cloud Console pour publier un service, vous pouvez créer les sous-réseaux pendant cette procédure.

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é.

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

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

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

Console

  1. Dans Google Cloud Console, 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 Ajouter un sous-réseau. Dans le panneau qui apparaît :

    1. Indiquez un Nom.
    2. Sélectionnez une Région.
    3. Dans la section Objectif, sélectionnez Private Service Connect.
    4. Saisissez une plage d'adresses IP. Exemple :10.10.10.0/24
    5. Cliquez sur Ajouter.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --range=SUBNET_RANGE --purpose=PRIVATE_SERVICE_CONNECT

Remplacez l'élément suivant :

  • 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 IP à utiliser pour le sous-réseau. Exemple :10.10.10.0/24

API

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",
}

Remplacez l'élément suivant :

  • 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 IP à utiliser pour le sous-réseau. Par 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 Afficher les informations de connexion client.

Console

  1. Dans Google Cloud Console, 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 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é.

    Les champs de réseau et de région sont renseignés avec les détails de l'équilibreur de charge interne sélectionné.

  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é.

  9. Si vous souhaitez afficher les informations de connexion client, sélectionnez Utiliser le protocole PROXY.

  10. 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 Configuration DNS.

  11. Sélectionnez Accepter automatiquement les connexions.

  12. 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 \
    [ --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).

  • 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",
  ],
  "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.

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.

Console

  1. Dans Google Cloud Console, 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 : Équilibreur de charge TCP/UDP interne ou Équilibreur de charge HTTP(S) interne.

  5. Sélectionnez l'équilibreur de charge interne qui héberge le service que vous souhaitez publier.

    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é.

    Les champs de réseau et de région sont renseignés avec les détails de l'équilibreur de charge interne sélectionné.

  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é.

  9. Si vous souhaitez afficher les informations sur les connexions client, cochez la case Protocoles.

  10. 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 Configuration DNS.

  11. 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.
  12. 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.
  13. Si vous souhaitez désactiver le rapprochement des connexions, décochez la case Activer le rapprochement des connexions.

  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 \
    [--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).

  • 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"
        }
      ],
      "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"
        }
      ],
      "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é.
  • 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

Par défaut, Private Service Connect traduit l'adresse IP source du client en adresse dans l'un des sous-réseaux Private Service Connect du réseau VPC du producteur de services. Si vous souhaitez voir l'adresse IP source d'origine du client, activez le protocole PROXY.

Certains services ne sont pas compatibles avec le protocole PROXY. Pour en savoir plus, consultez la section Fonctionnalités et compatibilité.

Si le protocole PROXY est activé, vous pouvez obtenir l'adresse IP source et l'ID de connexion PSC (pscConnectionId) du client à partir de l'en-tête de protocole PROXY.

Lorsque vous activez le protocole de PROXY pour un rattachement de service, la modification ne s'applique qu'aux nouvelles connexions. Les connexions existantes n'incluent pas l'en-tête du protocole de PROXY.

Si vous activez le protocole PROXY, consultez la documentation de votre logiciel serveur Web backend pour obtenir des informations sur l'analyse et le traitement des en-têtes de protocole PROXY entrants dans les charges utiles TCP de connexion client. Si le protocole PROXY est activé sur le rattachement de service, mais que le serveur Web de backend n'est pas configuré pour traiter les en-têtes de protocole PROXY, les requêtes Web peuvent être mal formulées. Si les requêtes sont mal formulées, le serveur ne peut pas les interpréter.

L'ID de connexion PSC (pscConnectionId) est encodé dans l'en-tête de protocole de PROXY au format TLV (Type-Length-Value).

Champ Longueur du champ Valeur du champ
Type 1 octet 0xE0 (PP2_TYPE_GCP)
Durée 2 octets 0x8 (8 octets)
Valeur 8 octets ID de connexion PSC (pscConnectionId) de 8 octets dans l'ordre réseau

Vous pouvez afficher l'ID de connexion PSC (pscConnectionId) de 8 octets en consultant la règle de transfert du client ou le rattachement de service du producteur.

La valeur pscConnectionId est unique pour toutes les connexions actives à un moment donné. Toutefois, au fil du temps, un pscConnectionId peut être réutilisé dans les scénarios suivants :

  • Dans un réseau VPC donné, si vous supprimez un point de terminaison (règle de transfert) et que vous créez un point de terminaison utilisant la même adresse IP, il est possible d'utiliser le même pscConnectionId.

  • Si vous supprimez un réseau VPC contenant des points de terminaison (règles de transfert), après un délai d'attente de sept jours, le pscConnectionId utilisé pour ces points de terminaison peut être utilisé pour un autre point de terminaison dans un autre réseau VPC.

Vous pouvez utiliser le pscConnectionId pour le débogage et pour suivre la source des paquets.

De plus, un ID de rattachement PSC de 16 octets est disponible dans le rattachement de service producteur. L'ID de rattachement PSC est un ID unique qui identifie un rattachement de service Private Service Connect. Vous pouvez utiliser l'ID de rattachement PSC pour plus de visibilité et pour le débogage. L'ID de rattachement PSC n'est pas inclus dans l'en-tête de protocole PROXY.

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 ou supprimer des sous-réseaux d'un service publié. Pour en savoir plus, consultez la section Ajouter ou supprimer des sous-réseaux d'un service publié.

Répertorier les services publiés

Vous pouvez répertorier tous les services.

Console

  1. Dans Google Cloud Console, 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 Google Cloud Console, 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 Google Cloud Console, 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.