À propos des services publiés
Ce document explique comment utiliser Private Service Connect pour rendre un service disponible pour les clients de services.
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.
Pour rendre un service disponible pour les clients, vous devez créer un ou plusieurs sous-réseaux dédiés. Vous créez ensuite un rattachement de service qui fait référence à ces sous-réseaux. Le rattachement de service peut avoir des préférences de connexion différentes.
Types de clients de service
Deux types de clients peuvent se connecter à un service Private Service Connect :
Les points de terminaison sont basés sur une règle de transfert.

Un point de terminaison permet aux clients de services d'envoyer du trafic depuis le réseau VPC du client vers des services du réseau VPC du producteur de services (cliquez pour agrandir).
Les backends sont basés sur un équilibreur de charge.

Un backend qui utilise un équilibreur de charge d'application externe global permet aux clients de services dotés d'un accès Internet d'envoyer du trafic aux services du réseau VPC du producteur de services (cliquez pour agrandir).
Sous-réseaux NAT
Les rattachements de service Private Service Connect sont configurés avec un ou plusieurs sous-réseaux NAT (également appelés sous-réseaux Private Service Connect). Les paquets du réseau VPC du client sont traduits à l'aide de la traduction NAT source (SNAT) afin que leurs adresses IP sources d'origine soient converties en adresses IP sources du sous-réseau NAT du réseau VPC du producteur.
Les rattachements de service peuvent comporter plusieurs sous-réseaux NAT. Des sous-réseaux NAT peuvent être ajoutés au rattachement de service à tout moment, sans interrompre le trafic.
Alors qu'un rattachement de service peut avoir plusieurs sous-réseaux NAT configurés, un sous-réseau NAT ne peut pas être utilisé dans plusieurs rattachements de service.
Les sous-réseaux NAT Service Connect ne peuvent pas être utilisés pour des ressources telles que des instances de machines virtuelles (VM) ou des règles de transfert. Les sous-réseaux ne sont utilisés que pour fournir les adresses IP de SNAT des connexions client entrantes.
Dimensionnement du sous-réseau NAT
La taille du sous-réseau détermine le nombre de clients pouvant se connecter à votre service. Si toutes les adresses IP du sous-réseau NAT sont utilisées, toutes les connexions Private Service Connect supplémentaires échouent. Réfléchissez aux éléments suivants :
Une adresse IP est utilisée à partir du sous-réseau NAT pour chaque point de terminaison ou backend connecté au rattachement de service.
Le nombre de connexions TCP ou UDP, de clients ou de réseaux VPC consommateur n'a pas d'incidence sur l'utilisation des adresses IP du sous-réseau NAT.
Si la propagation des connexions est utilisée par les clients, une adresse IP supplémentaire est utilisée pour chaque spoke VPC vers lequel les connexions sont propagées, pour chaque point de terminaison.
Vous pouvez contrôler le nombre de connexions propagées créées en configurant la limite de connexions propagées.
Lorsque vous estimez le nombre d'adresses IP dont vous avez besoin pour les points de terminaison et les backends, tenez compte des services mutualisés ou des clients qui utilisent un accès multipoint pour Private Service Connect.
Surveillance du sous-réseau NAT
Pour garantir que les connexions Private Service Connect n'échouent pas en raison de l'indisponibilité des adresses IP d'un sous-réseau NAT, nous vous recommandons de procéder comme suit :
- Surveillez la métrique de rattachement de service
private_service_connect/producer/used_nat_ip_addresses
. Assurez-vous que le nombre d'adresses IP NAT utilisées ne dépasse pas la capacité des sous-réseaux NAT d'un rattachement de service. - Surveillez l'état de connexion des connexions du rattachement de service. Si une connexion est à l'état Attention requise, il se peut qu'il n'y ait plus d'adresses IP disponibles dans les sous-réseaux NAT du rattachement.
- Pour les services mutualisés, vous pouvez utiliser des limites de connexion pour vous assurer qu'un seul client n'épuise pas la capacité des sous-réseaux NAT d'un rattachement de service.
Si nécessaire, vous pouvez ajouter des sous-réseaux NAT au rattachement de service à tout moment, sans interrompre le trafic.
Spécifications NAT
Tenez compte des caractéristiques suivantes de la NAT Private Service Connect lorsque vous concevez le service que vous publiez :
Le délai d'inactivité du mappage UDP est de 30 secondes et ne peut pas être configuré.
Le délai d'inactivité de la connexion TCP une fois celle-ci établie est de 20 minutes et ne peut pas être configuré.
Pour éviter les problèmes de dépassement du délai d'expiration des connexions client, effectuez l'une des opérations suivantes :
Assurez-vous que toutes les connexions durent moins de 20 minutes.
Assurez-vous que du trafic est envoyé au moins une fois toutes les 20 minutes. Vous pouvez utiliser une pulsation ou un message keepalive directement dans votre application, ou utiliser plutôt des messages keepalive TCP. Par exemple, vous pouvez configurer un message keepalive dans le proxy cible d'un équilibreur de charge d'application interne régional ou d'un équilibreur de charge réseau proxy interne régional.
Le délai d'inactivité de la connexion TCP transitoire est de 30 secondes et ne peut pas être configuré.
Il existe un délai de deux minutes avant qu'un 5-tuple (adresse IP source et port source du sous-réseau NAT plus protocole, adresse IP et port de destination) ne puisse être réutilisé.
La configuration SNAT pour Private Service Connect n'accepte pas les fragments d'adresses IP.
Nombre maximal de connexions
Une seule VM de producteur peut accepter un maximum de 64 512 connexions TCP et 64 512 connexions UDP simultanées d'un seul client Private Service Connect (point de terminaison ou backend). Aucune limite ne s'applique au nombre total de connexions TCP et UDP qu'un point de terminaison Private Service Connect peut recevoir de manière globale sur tous les backends du producteur. Les VM clientes peuvent utiliser les 65 536 ports sources lors du lancement de connexions TCP ou UDP à un point de terminaison Private Service Connect. Toute la traduction d'adresse réseau est effectuée localement sur l'hôte producteur, ce qui ne nécessite pas de pool de ports NAT alloué de manière centralisée.
Rattachements de service
Les producteurs de services exposent leur service via un rattachement de service.
- Pour exposer un service, un producteur de services crée un rattachement de service qui fait référence à un service cible. Le service cible peut être l'un des suivants :
- Règle de transfert d'un équilibreur de charge
- Une instance de proxy Web sécurisé
L'URI du rattachement de service a le format suivant : projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.
Vous pouvez associer un rattachement de service à un seul service cible. Vous ne pouvez pas associer plusieurs rattachements de service à un service cible donné.
Préférences de connexion
Chaque rattachement de service possède une préférence de connexion qui indique si les requêtes de connexion sont automatiquement acceptées. Trois options sont proposées :
- Accepter automatiquement toutes les connexions. Le rattachement de service accepte automatiquement toutes les requêtes de connexion entrantes de n'importe quel client. L'acceptation automatique peut être remplacée par une règle d'administration qui bloque les connexions entrantes.
- Accepter les connexions pour les réseaux sélectionnés. Le rattachement de service n'accepte les requêtes de connexion entrantes que si le réseau VPC client cfigure sur la liste d'acceptation des rattachements de service.
- Accepter les connexions pour les projets sélectionnés. Le rattachement de service n'accepte les requêtes de connexion entrantes que si le projet client figure sur la liste d'acceptation des rattachements de service.
Nous vous recommandons d'accepter les connexions pour les projets ou les réseaux sélectionnés. L'acceptation automatique de toutes les connexions peut être appropriée si vous contrôlez l'accès des clients par d'autres moyens et que vous souhaitez offrir un accès permissif à votre service.
États de connexion
Les rattachements de service possèdent des états de connexion qui décrivent l'état de leurs connexions. Pour en savoir plus, consultez États de connexion.
Listes d'acceptation et de refus client
Les listes d'acceptation des clients et les listes de refus des clients sont une fonctionnalité de sécurité des rattachements de service. Les listes d'acceptation et de rejet permettent aux producteurs de services de spécifier les clients qui peuvent établir des connexions Private Service Connect à leurs services. Les listes d'acceptation des clients spécifient si une connexion est acceptée ou non, tandis que les listes de refus des clients indiquent si une connexion est refusée. Ces deux listes vous permettent de spécifier des clients en fonction du réseau VPC ou du projet de la ressource de connexion. 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 de ce réseau sont refusées. Il n'est pas possible de spécifier des clients par dossier.
Les listes d'acceptation et de refus des clients permettent de spécifier des projets ou des réseaux VPC, mais pas les deux en même temps. Vous pouvez modifier une liste d'un type à un autre sans interrompre les connexions, mais vous devez effectuer la modification en une seule mise à jour. Sinon, certaines connexions peuvent temporairement passer à l'état "En attente".
Les listes de clients contrôlent si un point de terminaison peut se connecter à un service publié, mais elles ne contrôlent pas qui peut envoyer des requêtes à ce point de terminaison. Par exemple, supposons qu'un consommateur dispose d'un réseau VPC partagé auquel sont associés deux projets de service. Si un service publié comporte service-project1
dans la liste d'acceptation des clients et service-project2
dans la liste de refus des clients, les règles suivantes s'appliquent :
-
Un client dans
service-project1
peut créer un point de terminaison qui se connecte au service publié. -
Un consommateur dans
service-project2
ne peut pas créer de point de terminaison qui se connecte au service publié. -
Un client dans
service-project2
peut envoyer des requêtes au point de terminaison dansservice-project1
, s'il n'existe aucune règle ni stratégie de pare-feu empêchant ce trafic.
Pour en savoir plus sur la manière dont les listes d'acceptation des clients interagissent avec les règles d'administration, consultez la page Interaction entre les listes d'acceptation des clients et les règles d'administration.
Limites des listes d'acceptation des clients
Les listes d'acceptation des clients sont soumises à des limites de connexion. Ces limites définissent le nombre total de connexions de point de terminaison Private Service Connect qu'un rattachement de service peut accepter à partir du projet client ou du réseau VPC spécifié.
Les producteurs peuvent utiliser les limites de connexion pour empêcher les clients individuels d'épuiser les adresses IP ou les quotas de ressources du réseau VPC producteur. Chaque connexion Private Service Connect acceptée soustrait la limite configurée pour un projet client ou un réseau VPC. Les limites sont définies lorsque vous créez ou mettez à jour les listes d'acceptation des clients. Vous pouvez afficher les connexions d'un rattachement de service lorsque vous décrivez ce rattachement.
Par exemple, considérons un rattachement de service doté d'une liste d'acceptation client qui inclut project-1
et project-2
, toutes deux avec une limite d'une connexion. Le projet project-1
demande deux connexions, project-2
demande une connexion et project-3
demande une connexion. Étant donné que project-1
a une limite d'une connexion, la première connexion est acceptée et la seconde reste en attente.
La connexion provenant de project-2
est acceptée, et la connexion provenant de project-3
reste en attente. La deuxième connexion depuis project-1
peut être acceptée en augmentant la limite de project-1
. Si project-3
est ajouté à la liste d'acceptation des clients, cette connexion passe de l'état "En attente" à l'état "Acceptée".
Rapprochement des connexions
Le rapprochement des connexions détermine si les mises à jour des listes d'acceptation ou de refus d'un rattachement de service peuvent affecter les connexions Private Service Connect existantes. Si le rapprochement des connexions est activé, la mise à jour des listes d'acceptation ou de refus peut mettre fin aux connexions existantes. Les connexions précédemment refusées peuvent devenir acceptées. Si le rapprochement des connexions est désactivé, la mise à jour des listes d'acceptation ou de refus n'affecte que les connexions nouvelles et en attente.
Prenons l'exemple d'un rattachement de service avec plusieurs connexions acceptées à partir de Project-A
. Project-A
figure sur la liste d'acceptation du rattachement de service. Le rattachement de service est mis à jour en supprimant Project-A
de la liste d'acceptation.
Si le rapprochement des connexions est activé, toutes les connexions existantes provenant de Project-A
passent en PENDING
, ce qui met fin à la connectivité réseau entre les deux réseaux VPC et interrompt immédiatement le trafic réseau.
Si le rapprochement des connexions est désactivé, les connexions existantes provenant de Project-A
ne sont pas affectées. Le trafic réseau peut toujours circuler sur les connexions Private Service Connect existantes. Cependant, toute nouvelle connexion Private Service Connect n'est pas autorisée.
Pour en savoir plus sur la configuration du rapprochement des connexions pour les nouveaux rattachements de service, consultez la page Publier un service avec approbation explicite.
Pour en savoir plus sur la configuration du rapprochement des connexions pour les rattachements de service existants, consultez la page Configurer le rapprochement des connexions.
Configuration DNS
Pour en savoir plus sur la configuration DNS des services publiés et des points de terminaison qui se connectent aux services publiés, consultez la page Configuration DNS pour les services.
Traduction de version IP
Pour les points de terminaison Private Service Connect qui se connectent à des services publiés (rattachements de service), la version IP de l'adresse IP de la règle de transfert client détermine la version IP du point de terminaison et le trafic sortant du point de terminaison. L'adresse IP peut provenir d'un sous-réseau IPv4 uniquement, IPv6 uniquement (Preview) ou à double pile. La version IP du point de terminaison peut être de type IPv4 ou IPv6, mais pas les deux.
Pour les services publiés, la version IP du rattachement de service est déterminée par l'adresse IP de la règle de transfert ou de l'instance Secure Web Proxy associée. Cette adresse IP doit être compatible avec le type de pile du sous-réseau NAT du rattachement de service. Le sous-réseau NAT peut être un sous-réseau IPv4 uniquement ou à double pile. Si le sous-réseau NAT est un sous-réseau à double pile, la plage d'adresses IPv4 ou IPv6 est utilisée, mais pas les deux. Private Service Connect n'est pas compatible avec l'utilisation d'un sous-réseau IPv6 uniquement (version Preview) pour le sous-réseau NAT.
Private Service Connect n'est pas compatible avec la connexion d'un point de terminaison IPv4 à un rattachement de service IPv6. Dans ce cas, la création du point de terminaison échoue avec le message d'erreur suivant :
Private Service Connect forwarding rule with an IPv4 address
cannot target an IPv6 service attachment.
Les combinaisons suivantes sont possibles pour les configurations compatibles :
- Point de terminaison IPv4 vers rattachement de service IPv4
- Point de terminaison IPv6 vers rattachement de service IPv6
-
Point de terminaison IPv6 vers rattachement de service IPv4
Dans cette configuration, Private Service Connect traduit automatiquement les deux versions d'adresse IP.
Pour les connexions entre les backends Private Service Connect et les rattachements de service, les règles de transfert client et producteur doivent utiliser IPv4.
Fonctionnalités et compatibilité
Dans les tables suivantes, la coche indique qu'une fonctionnalité est compatible, et "aucun symbole" indique qu'une fonctionnalité n'est pas compatible.
Compatibilité avec les points de terminaison
Cette section récapitule les options de configuration disponibles pour les clients et les producteurs lorsqu'ils utilisent des points de terminaison pour accéder aux services de publication.
Configuration du client
Ce tableau récapitule les options et les capacités de configuration compatibles avec les points de terminaison qui accèdent à des services publiés en fonction du type de producteur cible.
Configuration du producteur
Ce tableau récapitule les options de configuration et les capacités compatibles avec les services publiés auxquels les points de terminaison ont accès.
Type de producteur | Configuration du producteur (service publié) | |||
---|---|---|---|---|
Backends de producteur compatibles | Protocole PROXY (trafic TCP uniquement) | Version IP | ||
Équilibreur de charge d'application interne interrégional (preview) |
|
|
||
Équilibreur de charge réseau passthrough interne |
|
|
||
Transfert de protocole interne (instance cible) |
|
|
||
Services de mappage de port |
|
|
||
Équilibreur de charge d'application interne régional |
|
|
||
Équilibreur de charge réseau proxy interne régional |
|
|
||
Proxy Web sécurisé |
|
|
Différents équilibreurs de charge prennent en charge différentes configurations de port. Certains équilibreurs de charge acceptent un seul port, d'autres sont compatibles avec une plage de ports et d'autres acceptent tous les ports. Pour en savoir plus, consultez la section Spécifications de ports.
VPC partagé
Les administrateurs de projets de service peuvent créer des rattachements de service dans des projets de service VPC partagé qui se connectent à des ressources dans des réseaux VPC partagés.
La configuration est la même que pour un rattachement de service standard, à l'exception des éléments suivants :
- La règle de transfert de l'équilibreur de charge du producteur est associée à une adresse IP du réseau VPC partagé. Le sous-réseau de la règle de transfert doit être partagé avec le projet de service.
- Le rattachement de service utilise un sous-réseau Private Service Connect du réseau VPC partagé. Ce sous-réseau doit être partagé avec le projet de service.
Journalisation
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.
VPC Service Controls
Les solutions VPC Service Controls et Private Service Connect sont compatibles entre elles. Si le réseau VPC sur lequel le point de terminaison Private Service Connect est déployé se trouve dans un périmètre VPC Service Controls, le point de terminaison fait partie du même périmètre. Tous les services compatibles avec VPC Service Controls accessibles via le point de terminaison sont soumis aux règles de ce périmètre VPC Service Controls.
Lorsque vous créez un point de terminaison, des appels d'API de plan de contrôle sont effectués entre les projets client et producteur pour établir une connexion Private Service Connect. L'établissement d'une connexion Private Service Connect entre des projets client et producteur qui ne se trouvent pas dans le même périmètre VPC Service Controls ne nécessite pas d'autorisation explicite avec des règles de sortie. La communication avec les services compatibles avec VPC Service Controls via le point de terminaison est protégée par le périmètre VPC Service Controls.
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, vous pouvez activer le protocole PROXY lorsque vous publiez un service. Private Service Connect est compatible avec le protocole PROXY version 2.
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.
Le format des en-têtes de protocole PROXY dépend de la version IP du point de terminaison du client. Si l'équilibreur de charge de votre rattachement de service possède une adresse IPv6, les clients peuvent se connecter avec des adresses IPv4 et IPv6. Configurez votre application pour qu'elle reçoive et lise les en-têtes du protocole PROXY pour la version IP du trafic qu'elle doit recevoir.
Lorsque vous activez le protocole 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 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 Private Service Connect (pscConnectionId
) est encodé dans l'en-tête du protocole de PROXY au format TLV (Type-Length-Value).
Champ | Longueur du champ | Valeur du champ |
---|---|---|
Type | 1 octet | 0xE0 (PP2_TYPE_GCP)
|
Longueur | 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 la même valeur
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, la valeur
pscConnectionId
utilisée pour ces points de terminaison peut être utilisée pour un autre point de terminaison dans un autre réseau VPC.
Vous pouvez utiliser les valeurs pscConnectionId
pour le débogage et pour suivre la source des paquets.
Un ID de rattachement de service Private Service Connect distinct (pscServiceAttachmentId
) de 16 octets est disponible dans le rattachement de service producteur.
La valeur pscServiceAttachmentId
est un ID unique qui identifie un rattachement de service Private Service Connect. Vous pouvez utiliser la valeur pscServiceAttachmentId
pour la visibilité et le débogage. Cette valeur n'est pas incluse dans l'en-tête de protocole PROXY.
Quotas
Le nombre total de points de terminaison Private Service Connect et de connexions propagées, à partir de n'importe quel client, qui peuvent accéder à votre réseau VPC producteur est contrôlé par le quota PSC ILB consumer forwarding rules per producer VPC network
.
Les points de terminaison contribuent à ce quota jusqu'à leur suppression, même si le rattachement de service associé est supprimé ou configuré pour refuser la connexion. Les connexions propagées sont prises en compte dans ce quota jusqu'à la suppression du point de terminaison associé, même si la propagation de la connexion est désactivée sur le hub Network Connectivity Center ou si le spoke de la connexion propagée est supprimé.
Accès sur site
Les services Private Service Connect sont rendus disponibles à l'aide de points de terminaison. Ces points de terminaison sont accessibles à partir d'hôtes sur site connectés compatibles. Pour en savoir plus, consultez la section Accéder au point de terminaison à partir d'hôtes sur site.
Limites
Les limites suivantes s'appliquent aux services publiés :
- Les équilibreurs de charge configurés avec
plusieurs protocoles (protocole défini sur
L3_DEFAULT
) ne sont pas acceptés. - La mise en miroir de paquets ne peut pas mettre en miroir les paquets pour le trafic des services publiés par Private Service Connect.
- Vous devez utiliser Google Cloud CLI ou l'API pour créer un rattachement de service pointant vers une règle de transfert utilisée pour le transfert de protocole interne.
Pour connaître les problèmes et les solutions, consultez la section Problèmes connus.