Publier des services gérés à 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 leurs réseaux VPC.

Ce guide explique comment utiliser Private Service Connect pour publier un service hébergé sur un équilibreur de charge TCP/UDP interne ou un équilibreur de charge HTTP(S) interne.

Si vous souhaitez publier un service hébergé sur un équilibreur de charge TCP/UDP interne sur Google Kubernetes Engine, consultez la section Créer un équilibreur de charge TCP/UDP interne avec Private Service Connect dans la documentation de GKE.

Pour publier un service, procédez comme suit :

  • Hébergez le service à l'aide d'un équilibreur de charge TCP/UDP interne ou d'un équilibreur de charge HTTP(S) interne dans le réseau VPC du producteur de services.

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

    Si vous utilisez un VPC partagé, vous pouvez créer le sous-réseau Private Service Connect dans le projet hôte et créer le rattachement de service dans un projet de service.

Pour se connecter à un service publié, le client de services configure un point de terminaison Private Service Connect pour accéder au service dans la même région.

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 publier un service à l'aide de Private Service Connect, celui-ci doit être hébergé sur les backends de l'un des équilibreurs de charge suivants :

  • Décidez comment les clients du service doivent envoyer des requêtes au service publié. Nous vous recommandons d'utiliser des noms de domaine au format suivant : REGION.p.DOMAIN. Par exemple, si votre domaine public est example.com et que le service publié réside dans la zone us-west1, nous vous recommandons de laisser les clients du service lui envoyer des requêtes à l'aide de noms d'hôte dans le domaine us-west1.p.example.com.

    • L'équilibreur de charge fournissant le service doit pouvoir accepter les requêtes adressées à ces noms de domaine. Si vous utilisez un équilibreur de charge HTTP(S) interne, vous devrez peut-être mettre à jour la configuration de l'équilibreur de charge pour refléter les noms de domaine à utiliser par les clients du service. Par exemple, mettez à jour des certificats ou des mappages d'URL.
  • 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.

Limites

  • Chaque équilibreur de charge ne peut être référencé que par un seul rattachement de service. Vous ne pouvez pas configurer plusieurs rattachements de service utilisant le même équilibreur de charge.

  • Toutes les fonctionnalités de l'équilibreur de charge TCP/UDP interne ne sont pas compatibles. Si votre équilibreur de charge utilise l'une des fonctionnalités ci-dessous, vous ne pouvez pas l'utiliser pour publier un service à l'aide de Private Service Connect.

  • Un rattachement de service ne peut pas faire référence à une règle de transfert pour le transfert de protocole interne.

  • Le protocole PROXY n'est pas compatible avec les services qui utilisent un équilibreur de charge HTTP(S) interne.

  • Les sous-réseaux que vous créez pour Private Service Connect sont soumis aux limites suivantes :

    • Vous ne pouvez pas utiliser le même sous-réseau dans plusieurs configurations de rattachement de service.

    • Vous ne pouvez pas attribuer d'adresses IP à partir de sous-réseaux Private Service Connect.

  • Si vous créez le sous-réseau Private Service Connect dans un projet hôte de VPC partagé et que vous souhaitez créer le rattachement de service dans un projet de service, vous devez utiliser l'outil de ligne de commande gcloud ou l'API pour créer le rattachement de service.

  • La mise en miroir de paquets ne peut pas mettre en miroir les paquets entre le backend de l'équilibreur de charge du service et le rattachement de service.

  • N'activez pas la mise en miroir de paquets dans un réseau VPC contenant un rattachement de service Private Service Connect. Si les deux configurations sont présentes, le trafic peut être interrompu.

  • Consultez la page Problèmes connus pour connaître les problèmes et les solutions.

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

Vous devez créer 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.

Pour plus d'informations sur les sous-réseaux Private Service Connect, consultez la page Sous-réseaux Private Service Connect.

Console

  1. Accédez à la page des réseaux VPC.
    Accéder à la page "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.

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

  • NETWORK_NAME : nom du réseau 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

Publier un service avec approbation automatique du projet

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

Si vous souhaitez afficher les informations de connexion des clients, vous pouvez activer le protocole PROXY. Le protocole PROXY n'est compatible qu'avec les services qui utilisent un équilibreur de charge TCP/UDP interne. Il n'est pas compatible avec les services qui utilisent un équilibreur de charge HTTP(S) interne. Pour en savoir plus sur le protocole PROXY, consultez la section Afficher les informations de connexion des clients.

Si vous créez un rattachement de service dans un projet protégé par un périmètre VPC Service Controls qui limite compute.googleapis.com ou servicedirectory.googleapis.com, une configuration supplémentaire est nécessaire. Pour en savoir plus, consultez la page Configurer des règles d'entrée et de sortie pour VPC Service Controls.

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 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 pour le service. 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. Saisissez la plage d'adresses IP à 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 les connexions pour tous les projets.

  11. 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 ]

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.

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

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

Remplacez l'élément suivant :

  • PROJECT_ID : projet pour le rattachement de service.

  • 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_URI : nom de la règle de transfert associée au service que vous publiez.

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

Publier un service avec approbation explicite du projet

Suivez ces instructions pour publier un service de sorte à devoir explicitement approuver les clients qui souhaitent 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.

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

Si vous souhaitez afficher les informations de connexion des clients, vous pouvez activer le protocole PROXY. Le protocole PROXY n'est compatible qu'avec les services qui utilisent un équilibreur de charge TCP/UDP interne. Il n'est pas compatible avec les services qui utilisent un équilibreur de charge HTTP(S) interne. Pour en savoir plus sur le protocole PROXY, consultez la section Afficher les informations de connexion des clients.

Si vous créez un rattachement de service dans un projet protégé par un périmètre VPC Service Controls qui limite compute.googleapis.com ou servicedirectory.googleapis.com, une configuration supplémentaire est nécessaire. Pour en savoir plus, consultez la page Configurer des règles d'entrée et de sortie pour VPC Service Controls.

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 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 pour le service.

    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. Saisissez la plage d'adresses IP à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
  9. Si vous souhaitez afficher les informations sur les connexions client, cochez la case Protocoles.

  10. Sélectionnez Accepter les connexions pour les projets sélectionnés.

  11. Cliquez sur Ajouter un projet accepté et saisissez les détails des projets que vous souhaitez autoriser à se connecter à ce service :

    • Nom du projet : nom du projet à partir duquel autoriser les connexions.
    • Limite de connexion : nombre de connexions à autoriser pour ce projet.
  12. 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_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --enable-proxy-protocol ]

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.

  • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. --consumer-accept-list 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

  • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. --consumer-reject-list est facultatif et peut contenir un ou plusieurs projets.

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

API

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",
  ],
  "consumerRejectList": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  "consumerAcceptList": [
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_1",
      "connectionsLimit": "LIMIT_2",
    },
    "consumerProjectLimit": {
      "projectId": "ACCEPTED_PROJECT_2",
      "connectionsLimit": "LIMIT_2",
    },
  ],
}

Remplacez l'élément suivant :

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

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

  • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. consumerRejectList est facultatif et peut contenir un ou plusieurs projets.

  • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. consumerAcceptList 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

Configurer des règles d'entrée et de sortie pour VPC Service Controls

Si vous créez un rattachement de service dans un projet protégé par un périmètre VPC Service Controls qui limite compute.googleapis.com ou servicedirectory.googleapis.com, une configuration supplémentaire est nécessaire.

Demandez au client du service de réunir les informations suivantes avant de créer un point de terminaison Private Service Connect :

  • CONSUMER_PROJECT_NUMBER : numéro du projet dans lequel il va créer le point de terminaison Private Service Connect.

  • CONSUMER_SERVICE_ACCOUNT (facultatif) : compte de service qui sera utilisé pour créer le point de terminaison Private Service Connect, si vous souhaitez configurer une règle d'entrée limitant l'accès par compte.

Utilisez ces informations pour créer des règles d'entrée et de sortie afin d'autoriser la connexion entre le point de terminaison Private Service Connect et le rattachement de service.

Pour plus d'informations sur la configuration des règles d'entrée et de sortie, consultez la section Configurer des règles d'entrée et de sortie.

  1. Configurez une règle de sortie qui autorise la sortie du projet producteur vers le projet client CONSUMER_PROJECT_NUMBER.

    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - serviceName: 'compute.googleapis.com'
          methodSelectors:
          - method: 'ServiceAttachmentsService.Patch'
          - method: 'RegionForwardingRulesService.Insert'
        - serviceName: 'servicedirectory.googleapis.com'
          methodSelectors:
          - method: '*'
        resources:
        - 'projects/CONSUMER_PROJECT_NUMBER'
    
  2. Configurez l'une des règles d'entrée suivantes :

    • Cet exemple de règle d'entrée autorise les points de terminaison du client créés par CONSUMER_SERVICE_ACCOUNT à tenter de se connecter au rattachement de service.

      - ingressFrom:
          sources:
          - accessLevel: '*' # All Sources
          identities: serviceAccount: CONSUMER_SERVICE_ACCOUNT
        ingressTo:
          operations:
          - serviceName: 'compute.googleapis.com'
            methodSelectors:
            - method: 'RegionForwardingRulesService.Insert'
          - serviceName: 'servicedirectory.googleapis.com'
            methodSelectors:
            - method: '*'
          resources:
          - '*'
      
    • Cet exemple de règle d'entrée autorise les points de terminaison du client créés par n'importe quel compte à tenter de se connecter au rattachement de service.

      - ingressFrom:
          sources:
          - accessLevel: '*' # All Sources
          identityType: ANY_IDENTITY
        ingressTo:
          operations:
          - serviceName: 'compute.googleapis.com'
            methodSelectors:
            - method: 'RegionForwardingRulesService.Insert'
          - serviceName: 'servicedirectory.googleapis.com'
            methodSelectors:
            - method: '*'
          resources:
          - '*'
      

Une fois les règles d'entrée et de sortie configurées, informez le client de service qu'il peut désormais créer un point de terminaison Private Service Connect dans le projet CONSUMER_PROJECT_NUMBER, qui se connecte à votre rattachement de service.

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.

Le protocole de proxy n'est compatible qu'avec les services qui utilisent un équilibreur de charge TCP/UDP interne. Il n'est pas compatible avec les services utilisant un équilibreur de charge HTTP(S) interne.

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.

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.

Private Service Connect n'accepte le protocole PROXY que pour les services TCP. Même si les services UDP ne sont pas compatibles, vous pouvez toujours activer le protocole PROXY pour les services UDP.

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 Private Service Connect (règle de transfert) et que vous créez un point de terminaison à l'aide de 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 Private Service Connect (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 avez publié un service avec une approbation de projet explicite, vous pouvez accepter ou refuser les demandes de connexion de projets clients.

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

Une fois qu'une connexion de point de terminaison client est acceptée pour un service, ce point de terminaison peut se connecter au service jusqu'à la suppression du rattachement. Cela s'applique lorsque le projet a été accepté explicitement ou lorsque le point de terminaison du client s'est connecté alors que la préférence de connexion a été définie pour accepter automatiquement les connexions.

  • Si vous supprimez un projet de la liste d'acceptation, tous les points de terminaison client précédemment acceptés peuvent se connecter au service. Les connexions à partir de nouveaux points de terminaison client dans ce projet doivent être acceptées pour que le point de terminaison puisse se connecter.

  • Si vous ajoutez un projet à la liste de refus, tous les points de terminaison client précédemment acceptés peuvent se connecter au service. Les connexions provenant de nouveaux points de terminaison client dans ce projet sont refusées par le service.

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

  4. Dans la section Projets connectés, les projets qui ont tenté de se connecter à ce service sont répertoriés. Cochez la case à côté d'un ou de plusieurs projets, puis cliquez sur Accepter ou Refuser.

gcloud

  1. Décrivez le rattachement de service que vous souhaitez modifier.

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

    Le résultat ressemble à celui de l'exemple ci-dessous. Si des connexions client sont en attente, elles sont répertoriées à l'état PENDING.

    Dans cet exemple de résultat, le projet CONSUMER_PROJECT_1 figure dans la liste d'acceptation. Par conséquent, ENDPOINT_1 est accepté et peut se connecter au service. Le projet CONSUMER_PROJECT_2 ne figure pas sur la liste d'acceptation. Par conséquent, ENDPOINT_2 est en attente. Une fois que CONSUMER_PROJECT_2 est ajouté à la liste d'acceptation, l'état de ENDPOINT_2 devient ACCEPTED et le point de terminaison peut se connecter au service.

    connectedEndpoints:
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_1/regions/REGION_1/forwardingRules/ENDPOINT_1
      pscConnectionId: 'ENDPOINT_1_ID'
      status: ACCEPTED
    - endpoint: https://www.googleapis.com/compute/v1/projects/CONSUMER_PROJECT_2/regions/REGION_2/forwardingRules/ENDPOINT_2
      pscConnectionId: 'ENDPOINT_2_ID'
      status: PENDING
    connectionPreference: ACCEPT_MANUAL
    consumerAcceptLists:
    - connectionLimit: LIMIT_1
      projectIdOrNum: CONSUMER_PROJECT_1
    creationTimestamp: 'TIMESTAMP'
    description: 'DESCRIPTION'
    enableProxyProtocol: false
    fingerprint: FINGERPRINT
    id: 'ID'
    kind: compute#serviceAttachment
    name: NAME
    natSubnets:
    - https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/subnetworks/PSC_SUBNET
    pscServiceAttachmentId:
      high: 'PSC_ATTACH_ID_HIGH'
      low: 'PSC_ATTACH_ID_LOW'
    region: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION
    selfLink: https://www.googleapis.com/compute/v1/projects/projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    targetService: https://www.googleapis.com/compute/v1/projects/PRODUCER_PROJECT/regions/REGION/forwardingRules/PRODUCER_FWD_RULE
    
  2. Acceptez ou refusez les projets client.

    Vous pouvez spécifier --consumer-accept-list, --consumer-reject-list, ou les deux. Vous pouvez spécifier plusieurs valeurs dans les champs --consumer-accept-list et --consumer-reject-list.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2 \
        --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2
    

    Remplacez l'élément suivant :

    • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

    • REGION : région où se trouve le rattachement de service.

    • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. consumerAcceptList 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

    • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. --consumer-reject-list est facultatif et peut contenir un ou plusieurs projets.

API

  1. Décrivez le rattachement de service que vous souhaitez modifier.

    Si des connexions client sont en attente, elles sont répertoriées à l'état PENDING.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
  2. Acceptez ou refusez les projets clients.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME
    
    {
      ...
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1"
          "connectionLimit": "LIMIT_1",
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2"
          "connectionLimit": "LIMIT_2",
        }
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2",
      ],
      ...
    }
    

    Remplacez l'élément suivant :

    • PROJECT_ID : projet pour le rattachement de service.

    • REGION : région du rattachement de service.

    • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

    • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. consumerRejectList est facultatif et peut contenir un ou plusieurs projets.

    • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. consumerAcceptList 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

Modifier la préférence de connexion d'un service publié

Vous pouvez basculer entre l'acceptation automatique du projet et l'acceptation explicite du projet pour un service publié.

Le passage de l'acceptation automatique à l'acceptation explicite n'affecte pas les points de terminaison client qui se sont connectés au service avant cette modification. Les points de terminaison client existants peuvent se connecter au service publié jusqu'à ce que le rattachement de service soit supprimé. Les nouveaux points de terminaison client doivent être acceptés avant de pouvoir se connecter au service. Pour en savoir plus, consultez la section Gérer les requêtes d'accès à un service publié.

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 mettre à jour, puis sur Modifier.

  4. Sélectionnez la préférence de connexion de votre choix :

    • Accepter les connexions pour les projets sélectionnés
    • Accepter automatiquement les connexions pour tous les projets
  5. Si vous passez à l'option Accepter les connexions pour des projets sélectionnés, vous pouvez fournir les détails des projets que vous souhaitez autoriser ou ajouter ultérieurement.

    1. Cliquez sur Ajouter un projet accepté.
    2. Saisissez le projet et la limite de connexion.
  6. Cliquez sur Enregistrer.

gcloud

  • Changez la préférence de connexion du rattachement de service de ACCEPT_AUTOMATIC à ACCEPT_MANUAL.

    Vous pouvez contrôler les projets qui peuvent se connecter à votre service à l'aide de --consumer-accept-list et --consumer-reject-list. Vous pouvez configurer les listes d'acceptation et de rejet lorsque vous modifiez les préférences de connexion, ou bien mettre à jour les listes ultérieurement.

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_MANUAL \
        [ --consumer-accept-list=ACCEPTED_PROJECT_1=LIMIT_1,ACCEPTED_PROJECT_2=LIMIT_2] \
        [ --consumer-reject-list=REJECTED_PROJECT_1,REJECTED_PROJECT_2 ]
    
    • ATTACHMENT_NAME : nom du rattachement de service.

    • REGION : région où se trouve le rattachement de service.

    • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. --consumer-accept-list 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

    • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. --consumer-reject-list est facultatif et peut contenir un ou plusieurs projets.

  • Changez la préférence de connexion du rattachement de service de ACCEPT_MANUAL à ACCEPT_AUTOMATIC.

    Si la liste d'acceptation ou de rejet comporte des valeurs, laissez-les vides lorsque vous modifiez la préférence de connexion ("").

    gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --connection-preference=ACCEPT_AUTOMATIC \
         --consumer-accept-list="" \
         --consumer-reject-list=""
    
    • ATTACHMENT_NAME : nom du rattachement de service.

    • REGION : région où se trouve le rattachement de service.

API

  • Changez la préférence de connexion du rattachement de service de ACCEPT_AUTOMATIC à ACCEPT_MANUAL.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

{
  ...
  "connectionPreference": "ACCEPT_MANUAL",
  "consumerAcceptLists": [
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_1"
      "connectionLimit": "LIMIT_1",
    },
    {
      "projectIdOrNum": "ACCEPTED_PROJECT_2"
      "connectionLimit": "LIMIT_2",
    }
  ],
  "consumerRejectLists": [
    "REJECTED_PROJECT_1",
    "REJECTED_PROJECT_2",
  ],
  ...
}

Remplacez l'élément suivant :

  • PROJECT_ID : projet pour le rattachement de service.

  • REGION : région du rattachement de service.

  • ATTACHMENT_NAME : nom à attribuer au rattachement de service.

  • REJECTED_PROJECT_1 et REJECTED_PROJECT_2 : projets à rejeter. consumerRejectList est facultatif et peut contenir un ou plusieurs projets.

  • ACCEPTED_PROJECT_1 et ACCEPTED_PROJECT_2 : projets à accepter. consumerAcceptList 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 client Private Service Connect pouvant se connecter à ce service. Une limite de connexion doit être configurée pour chaque projet accepté.

  • Changez la préférence de connexion du rattachement de service de ACCEPT_MANUAL à ACCEPT_AUTOMATIC.

    Si les champs consumerAcceptLists ou consumerRejectLists spécifient des projets, laissez-les vides lorsque vous changez la préférence de connexion à ACCEPT_AUTOMATIC.

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

{
  ...
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "consumerAcceptLists": [ ],
  "consumerRejectLists": [ ],
  ...
}

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.

Modifier les sous-réseaux associés à un service

Vous pouvez modifier les sous-réseaux Private Service Connect utilisés avec un service publié.

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 mettre à jour, puis sur Modifier.

  4. Modifiez les sous-réseaux utilisés pour ce service.

    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. Saisissez la plage d'adresses IP à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
  5. Cliquez sur Enregistrer.

gcloud

Mettez à jour les sous-réseaux Private Service Connect utilisés pour ce rattachement de service. Si vous devez créer un sous-réseau, consultez la section Créer un sous-réseau Private Service Connect.

gcloud compute service-attachments update ATTACHMENT_NAME \
    --region=REGION \
    --nat-subnets=PSC_SUBNET_LIST

Remplacez l'élément suivant :

  • ATTACHMENT_NAME : nom du rattachement de service.

  • REGION : région où se trouve le rattachement de service.

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

API

Mettez à jour les sous-réseaux Private Service Connect utilisés pour ce rattachement de service. Si vous devez créer un sous-réseau, consultez la section Créer un sous-réseau Private Service Connect.

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

{
  ...
  "natSubnets": [
    "PSC_SUBNET1_URI",
    "PSC_SUBNET2_URI",
  ],
  ...
}

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.

  • PSC_SUBNET1_URI et PSC_SUBNET2_URI : URI des sous-réseaux que vous souhaitez utiliser avec ce rattachement de service. Vous pouvez spécifier un ou plusieurs sous-réseaux.

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 Cloud Console, par exemple l'URI du rattachement de service dont les clients du service ont besoin pour s'y connecter. Pour afficher tous les détails, y compris les valeurs pscConnectionId pour les clients du rattachement de service, utilisez l'outil de ligne de commande gcloud 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é, mais le trafic du client n'est plus envoyé à l'équilibreur de charge.

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.

Logging

Vous pouvez activer les journaux de flux VPC sur les sous-réseaux qui contiennent les VM de backend. Les journaux affichent les flux entre les VM de backend et les adresses IP du sous-réseau Private Service Connect.

Problèmes connus

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