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 :
Hébergez le service sur un équilibreur de charge compatible avec une configuration compatible.
Créez un rattachement de service qui pointe vers la règle de transfert associée à l'équilibreur de charge.
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.
- Administrateur de réseaux Compute (
roles/compute.networkAdmin
)
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 domaineus-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é. Les règles de transfert IPv6 sont disponibles en version bêta. 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 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.
Si vous souhaitez publier un service qui diffuse le trafic IPv6 (Bêta), vous devez utiliser des sous-réseaux à double pile.
Console
Dans Google Cloud Console, accédez à la page Réseaux VPC.
Cliquez sur le nom d'un réseau VPC pour afficher la page des détails du réseau VPC.
Cliquez sur Sous-réseaux.
Cliquez sur Ajouter un sous-réseau. Dans le panneau qui apparaît, procédez comme suit :
- Indiquez un Nom.
- Sélectionnez une Région.
- Dans la section Objectif, sélectionnez Private Service Connect.
- Sélectionnez un type de pile d'adresses IP.
- Saisissez une plage IPv4. Exemple :
10.10.10.0/24
- Cliquez sur Ajouter.
gcloud
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --region=REGION \ --stack-type=STACK_TYPE \ --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.STACK_TYPE
: type de pile du sous-réseau, qui peut êtreIPV4_ONLY
ouIPV4_IPV6
. La valeur par défaut estIPV4_ONLY
.SUBNET_RANGE
: plage d'adresses IPv4 à utiliser pour le sous-réseau, par exemple10.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", "stackType": "STACK_TYPE" }
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 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.STACK_TYPE
: type de pile du sous-réseau, qui peut êtreIPV4_ONLY
ouIPV4_IPV6
.
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) |
|
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 :
- Vous pouvez publier un service avec approbation automatique.
- Vous pouvez publier un service avec approbation explicite.
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 (Bêta), 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
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Services publiés.
Cliquez sur Publier le service.
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
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é.
Si vous y êtes invité, sélectionnez la règle de transfert associée au service que vous souhaitez publier.
Dans le champ Nom du service, saisissez le nom du rattachement de service.
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 :
- Cliquez sur Réserver un nouveau sous-réseau.
- Saisissez un nom et une description facultative pour le sous-réseau.
- Sélectionnez une région pour le sous-réseau.
- Sélectionnez un type de pile d'adresses IP.
- Saisissez la plage d'adresses IPv4 à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
Si vous souhaitez afficher les informations de connexion client, sélectionnez Utiliser le protocole PROXY.
Sélectionnez Accepter automatiquement toutes les connexions.
Pour désactiver le rapprochement des connexions, décochez la case Activer le rapprochement des connexions.
Facultatif : Cliquez sur Configuration avancée, puis procédez comme suit :
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.
Saisissez une limite de connexions propagées NCC. Si elle n'est pas spécifiée, la valeur par défaut est
250
.
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 est250
.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
etPSC_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 est250
.
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
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Services publiés.
Cliquez sur Publier le service.
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
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é.
Si vous y êtes invité, sélectionnez la règle de transfert associée au service que vous souhaitez publier.
Dans le champ Nom du service, saisissez le nom du rattachement de service.
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 :
- Cliquez sur Réserver un nouveau sous-réseau.
- Saisissez un nom et une description facultative pour le sous-réseau.
- Sélectionnez une région pour le sous-réseau.
- Sélectionnez un type de pile d'adresses IP.
- Saisissez la plage d'adresses IPv4 à utiliser pour le sous-réseau, puis cliquez sur Ajouter.
Si vous souhaitez afficher les informations de connexion client, sélectionnez Utiliser le protocole PROXY.
Si vous souhaitez accepter les connexions pour les projets sélectionnés, sélectionnez Accepter les connexions pour les projets sélectionnés.
- Pour chaque projet à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
- 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.
- Cliquez sur Ajouter un projet accepté, puis saisissez les informations suivantes :
- 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.
- Pour chaque projet à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
Si vous souhaitez accepter les connexions des réseaux sélectionnés, sélectionnez Accepter les connexions pour les réseaux sélectionnés.
- Pour chaque réseau à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
- 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.
- Cliquez sur Ajouter un réseau accepté, puis saisissez les informations suivantes :
- 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.
- Pour chaque réseau à partir duquel vous souhaitez accepter les connexions, procédez comme suit :
Pour désactiver le rapprochement des connexions, décochez la case Activer le rapprochement des connexions.
Facultatif : Cliquez sur Configuration avancée, puis procédez comme suit :
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.
Saisissez une limite de connexions propagées NCC. Si elle n'est pas spécifiée, la valeur par défaut est
250
.
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
etACCEPTED_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
etLIMIT_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
etREJECTED_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 est250
.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
etPSC_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
etREJECTED_PROJECT_2
: ID ou nombre de projets à rejeter.consumerRejectLists
est facultatif et peut contenir un ou plusieurs projets.ACCEPTED_PROJECT_1
etACCEPTED_PROJECT_2
: ID ou numéros des projets à accepter.consumerAcceptLists
est facultatif et peut contenir un ou plusieurs projets.LIMIT_1
etLIMIT_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é.
PROPAGATED_CONNECTION_LIMIT
: limite de connexions propagées. La valeur par défaut est250
.
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
etREJECTED_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
etREJECTED_NETWORK_2
: noms des réseaux que vous souhaitez rejeter.ACCEPTED_PROJECT_ID_1
etACCEPTED_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
etACCEPTED_NETWORK_2
: noms des réseaux que vous souhaitez accepter.LIMIT_1
etLIMIT_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é.
PROPAGATED_CONNECTION_LIMIT
: limite de connexions propagées. La valeur par défaut est250
.
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
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Services publiés.
Les rattachements de service Private Service Connect s'affichent.
gcloud
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
ouus-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.
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Services publiés.
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 :
Le trafic provenant des points de terminaison (basés sur des règles de transfert) n'est plus envoyé à l'équilibreur de charge.
Le trafic provenant des backends (basés sur des équilibreurs de charge d'application externes globaux) est envoyé à l'équilibreur de charge jusqu'à ce que l'équilibreur de charge soit supprimé.
Console
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Services publiés.
Cliquez sur le service que vous souhaitez supprimer.
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.
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
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.
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
Modifiez le résultat de la commande pour retirer les projets supprimés de la liste d'acceptation et de la liste de rejet.
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.