Accéder à des services gérés à l'aide de Private Service Connect
Private Service Connect vous permet de vous connecter aux producteurs de services à l'aide de points de terminaison disposant d'adresses IP internes sur votre réseau VPC.
Ce document explique comment utiliser des points de terminaison Private Service Connect pour se connecter aux services gérés compatibles d'un autre réseau VPC. Vous pouvez vous connecter à vos propres services ou à ceux fournis par d'autres producteurs de services. Pour en savoir plus, consultez la page Publier des services gérés.
Rôles
Le rôle IAM suivant fournit les autorisations nécessaires pour effectuer les tâches décrites dans ce guide.
Tâche | Rôles |
---|---|
Créer un point de terminaison Private Service Connect |
Les deux rôles suivants : Administrateur de réseaux Compute ( roles/compute.networkAdmin ) etAnnuaire des services Éditeur ( roles/servicedirectory.editor )
|
Configurer automatiquement ou manuellement des entrées DNS pour un point de terminaison Private Service Connect | Administrateur DNS (roles/dns.admin ) |
Avant de commencer
Vous devez activer l'API Compute Engine dans votre projet.
Vous devez activer l'API de l'Annuaire des services dans votre projet.
Vous devez activer l'API Cloud DNS dans votre projet.
Les règles de pare-feu de sortie doivent autoriser le trafic vers l'adresse IP interne du point de terminaison Private Service Connect. La règle implicite de sortie autorisée du pare-feu autorise la sortie vers n'importe quelle adresse IP de destination.
Si vous avez créé des règles de refus du trafic sortant pour le pare-feu de votre réseau VPC ou si vous avez créé des règles de pare-feu hiérarchiques modifiant le comportement implicite de sortie autorisé, l'accès au point de terminaison peut être affecté. Créez une règle ou une stratégie de pare-feu autorisant le trafic sortant à destination de l'adresse IP interne du point de terminaison du service.
Vous devez disposer de l'URI du rattachement du service. Par exemple :
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
Limites
Vous ne pouvez pas créer de point de terminaison Private Service Connect dans le même réseau VPC que le service publié auquel vous accédez.
Les points de terminaison Private Service Connect ne sont pas accessibles à partir des réseaux VPC appairé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.
Configuration DNS automatique
Si les configurations suivantes sont présentes, les entrées DNS sont automatiquement créées pour les points de terminaison Private Service Connect :
Le producteur de services a configuré un nom de domaine pour le service.
Le point de terminaison Private Service Connect est enregistré avec un espace de noms dans l'Annuaire des services.
Tous les nouveaux points de terminaison sont automatiquement enregistrés dans l'Annuaire des services, mais pas les anciens points de terminaison.
Si les deux configurations sont présentes, lorsque le point de terminaison Private Service Connect est créé, une zone DNS de l'Annuaire des services est créée avec le nom : NAMESPACE--REGION
.
Cette zone privée stocke les entrées DNS associées aux services trouvés dans l'espace de noms NAMESPACE
de l'Annuaire des services, dans la région REGION
.
Après avoir créé le point de terminaison Private Service Connect, vous pouvez vérifier si une zone DNS de l'Annuaire des services est créée. Si la zone DNS de l'Annuaire des services n'est pas créée, vous pouvez créer manuellement une configuration similaire. Pour en savoir plus, consultez la section Afficher les zones DNS de l'Annuaire des services.
Si vous ne souhaitez pas que ces entrées DNS soient créées, effectuez l'une des opérations suivantes :
Si vous n'utilisez pas Cloud DNS à d'autres fins, désactivez l'API Cloud DNS ou supprimez les autorisations requises pour Cloud DNS.
Attendez que la zone DNS soit créée, puis supprimez la zone DNS manuellement.
Si vous préférez configurer manuellement le DNS, consultez la page Configurer manuellement le DNS.
Créer un point de terminaison Private Service Connect
Un point de terminaison Private Service Connect se connecte aux services d'un autre réseau VPC à l'aide d'une règle de transfert Private Service Connect. Chaque règle de transfert est comptabilisée dans le quota par projet des règles de transfert Private Service Connect permettant d'accéder aux services d'un autre réseau VPC.
Lorsque vous utilisez Private Service Connect pour vous connecter à des services sur un autre réseau VPC, vous choisissez une adresse IP d'un sous-réseau de votre réseau VPC.
L'adresse IP doit se trouver dans la même région que le rattachement de service du producteur de services. L'adresse IP est comptabilisée dans le quota du projet pour les adresses IP internes.
Lorsque vous créez un point de terminaison Private Service Connect, il est automatiquement enregistré dans l'Annuaire des services, en utilisant l'espace de noms de votre choix ou l'espace de noms par défaut, goog-psc-default
.
Console
Dans Google Cloud Console, accédez à Private Service Connect.
Cliquez sur l'onglet Points de terminaison connectés.
Cliquez sur Connecter le point de terminaison.
Pour Cible, sélectionnez Service publié
Dans le champ Service cible, saisissez l'URI du rattachement de service auquel vous souhaitez vous connecter.
L'URI du rattachement de service est au format suivant :
projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.Dans le champ Nom du point de terminaison, saisissez un nom à utiliser pour le point de terminaison.
Sélectionnez un réseau pour le point de terminaison.
Sélectionnez un sous-réseau pour le point de terminaison.
Sélectionnez une adresse IP pour le point de terminaison. Si vous avez besoin d'une nouvelle adresse IP, vous pouvez en créer une :
- Cliquez sur le menu déroulant Adresse IP, puis sélectionnez Créer une adresse IP.
- Saisissez un nom et une description facultative pour l'adresse IP.
Sous Adresse IP statique, sélectionnez Attribuer automatiquement ou Laissez-moi choisir.
Si vous avez sélectionné Laissez-moi choisir, saisissez l'adresse IP personnalisée que vous souhaitez utiliser.
Cliquez sur Réserver.
Sélectionnez un espace de noms dans la liste déroulante ou créez-en un.
La région est renseignée en fonction du sous-réseau sélectionné.
Cliquez sur Ajouter un point de terminaison.
gcloud
Réservez une adresse IP interne à attribuer au point de terminaison.
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=SUBNET
Remplacez l'élément suivant :
ADDRESS_NAME
: nom à attribuer à l'adresse IP réservée.REGION
: région de l'adresse IP du point de terminaison. Il doit s'agir de la même région que celle contenant le rattachement de service du producteur de services.SUBNET
: nom du sous-réseau de l'adresse IP du point de terminaison.
Recherchez l'adresse IP réservée.
gcloud compute addresses list --filter="name=ADDRESS_NAME"
Créez une règle de transfert pour connecter le point de terminaison au rattachement de service du producteur de services.
gcloud compute forwarding-rules create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_NAME \ --address=ADDRESS_NAME \ --target-service-attachment=SERVICE_ATTACHMENT \ [ --service-directory-registration=projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE ]
Remplacez l'élément suivant :
ENDPOINT_NAME
: nom à attribuer au point de terminaison.REGION
: région du point de terminaison. Cette région doit être celle qui contient le rattachement de service du producteur de services.NETWORK_NAME
: nom du réseau VPC utilisé pour le point de terminaison.ADDRESS_NAME
: nom de l'adresse réservée.SERVICE_ATTACHMENT
: URI du rattachement de service du producteur de services. Exemple :projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.PROJECT_ID
: ID de votre projet.NAMESPACE
: espace de noms de l'Annuaire des services que vous souhaitez utiliser. Si vous spécifiez un espace de noms qui n'existe pas, celui-ci est créé.Si vous omettez l'option
--service-directory-registration
, l'espace de noms par défautgoog-psc-default
est utilisé.
API
Réservez une adresse IP interne à attribuer au point de terminaison.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/addresses { "name": ADDRESS_NAME, "addressType": "INTERNAL", "subnetwork": SUBNET_URI }
Remplacez l'élément suivant :
PROJECT_ID
: ID de votre projet.ADDRESS_NAME
: nom à attribuer à l'adresse IP réservée.SUBNET_URI
: sous-réseau de l'adresse IP Utilisez la méthode network.list ougcloud compute networks subnets list --uri
pour rechercher les URL de vos réseaux.
Créez une règle de transfert pour connecter le point de terminaison aux API et services Google.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": ENDPOINT_NAME, "IPAddress": ADDRESS_URI, "target": SERVICE_ATTACHMENT, "network": NETWORK_URI, "serviceDirectoryRegistrations": [ { "namespace": NAMESPACE, } ], }
Remplacez l'élément suivant :
PROJECT_ID
: ID de votre projet.REGION
: région du point de terminaison.ENDPOINT_NAME
: nom à attribuer au point de terminaison.ADDRESS_URI
: URI de l'adresse réservée sur le réseau associé. Pour trouver l'URL de l'adresse réservée, utilisez la méthode addresses.list ougcloud compute addresses list --uri
.SERVICE_ATTACHMENT
: URI du rattachement de service du producteur de services. Exemple :projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME
.NETWORK_URI
: réseau VPC pour le point de terminaison. Utilisez la méthode network.list ougcloud compute networks list --uri
pour rechercher l'URI de votre réseau.NAMESPACE
: espace de noms du point de terminaison. Si vous spécifiez un espace de noms qui n'existe pas, celui-ci est créé. Si vous omettez le champnamespace
, l'espace de noms par défautgoog-psc-default
est attribué.
Afficher les zones DNS de l'Annuaire des services
Si les conditions préalables à la configuration DNS automatique sont remplies, une zone DNS est créée avec un nom au format NAMESPACE--REGION
.
Console
Dans Google Cloud Console, accédez à la page Zones Cloud DNS.
Recherchez une zone privée nommée
NAMESPACE--REGION
.
gcloud
Exécutez la commande suivante pour répertorier toutes les zones DNS privées :
gcloud dns managed-zones list \ --filter="visibility=private"
Exécutez la commande suivante pour obtenir les détails d'une zone nommée
NAMESPACE--REGION
.gcloud dns managed-zones describe NAMESPACE--REGION
Si la zone n'est pas présente, affichez les détails du point de terminaison Private Service Connect et vérifiez si sa configuration inclut une valeur pour l'espace de noms.
Si le point de terminaison dispose d'une configuration d'espace de noms, consultez la section Configurer une zone DNS dans l'Annuaire des services.
Si le point de terminaison ne dispose pas d'une configuration d'espace de noms, consultez la page Enregistrer un point de terminaison Private Service Connect avec l'Annuaire des services.
Répertorier les points de terminaison
Vous pouvez répertorier tous les points de terminaison Private Service Connect configurés.
Console
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Points de terminaison connectés.
Les points de terminaison Private Service Connect s'affichent.
gcloud
gcloud compute forwarding-rules list \ --filter 'target~serviceAttachments'
Le résultat ressemble à ce qui suit :
NAME REGION IP_ADDRESS IP_PROTOCOL TARGET RULE IP TCP REGION/serviceAttachments/SERVICE_NAME
API
Cet appel d'API renvoie toutes les règles de transfert, et pas seulement les points de terminaison Private Service Connect utilisés pour accéder aux services.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules
Remplacez l'élément suivant :
PROJECT_ID
: projet contenant le point de terminaison.REGION
: région du point de terminaison.
Afficher les détails du point de terminaison
Vous pouvez afficher tous les détails de configuration d'un point de terminaison Private Service Connect.
Le point de terminaison peut présenter l'un des états suivants :
En attente : le point de terminaison est configuré pour se connecter à un service nécessitant une approbation et aucune approbation n'a encore été accordée au projet.
Accepté : le point de terminaison se trouve dans un projet autorisé à se connecter au service.
Refusé : le point de terminaison se trouve dans un projet qui n'est pas autorisé à se connecter au service.
Fermé : le point de terminaison est connecté à un rattachement de service qui a été supprimé.
Console
Dans Google Cloud Console, accédez à la page Private Service Connect.
Cliquez sur l'onglet Points de terminaison connectés.
Cliquez sur le point de terminaison que vous souhaitez consulter.
gcloud
gcloud compute forwarding-rules describe \ ENDPOINT_NAME --region=REGION
Remplacez l'élément suivant :
ENDPOINT_NAME
: nom du point de terminaison.REGION
: région du point de terminaison.
API
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Remplacez l'élément suivant :
PROJECT_ID
: projet contenant le point de terminaison.REGION
: région du point de terminaison.ENDPOINT_NAME
: nom du point de terminaison.
Ajouter un libellé à un point de terminaison
Vous pouvez gérer les libellés des points de terminaison Private Service Connect. Pour en savoir plus, consultez la section Attribuer des libellés à des ressources.
Supprimer un point de terminaison
Vous pouvez supprimer un point de terminaison Private Service Connect.
Toutefois, les configurations de l'Annuaire des services suivantes ne sont pas supprimées lorsque vous supprimez le point de terminaison :
- Espace de noms de l'Annuaire des services
- Zone DNS de l'Annuaire des services
L'espace de noms et la zone DNS de l'Annuaire des services peuvent être utilisés par d'autres services. Vérifiez que l'espace de noms est vide avant de supprimer l'espace de noms de l'Annuaire des services ou de supprimer la zone DNS de l'Annuaire des services.
Console
Dans Google Cloud Console, accédez à Private Service Connect.
Cliquez sur l'onglet Points de terminaison connectés.
Sélectionnez le point de terminaison Private Service Connect que vous souhaitez supprimer, puis cliquez sur Supprimer.
gcloud
gcloud compute forwarding-rules delete \ ENDPOINT_NAME --region=REGION
Remplacez l'élément suivant :
ENDPOINT_NAME
: nom du point de terminaison.REGION
: région du point de terminaison.
API
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules/ENDPOINT_NAME
Remplacez l'élément suivant :
PROJECT_ID
: projet contenant le point de terminaison.REGION
: région du point de terminaison.ENDPOINT_NAME
: nom du point de terminaison.
Autres façons de configurer un DNS
Si les conditions préalables à la configuration DNS automatique ne sont pas remplies, vous pouvez créer des entrées DNS de différentes manières :
Si un espace de noms est configuré sur le point de terminaison, consultez la section Configurer une zone DNS dans l'Annuaire des services.
Si aucun espace de noms n'est configuré pour le point de terminaison, consultez la section Enregistrer un point de terminaison Private Service Connect avec l'Annuaire des services.
Si vous préférez configurer manuellement le DNS, consultez la page Configurer manuellement le DNS.
Configurer une zone DNS dans l'Annuaire des services
Si un point de terminaison Private Service Connect est enregistré auprès de l'Annuaire des services, mais que le service publié auquel il se connecte n'a pas de nom de domaine configuré, aucune modification DNS n'est effectuée.
Si vous souhaitez répliquer la configuration DNS automatique, vous pouvez configurer manuellement une zone DNS de l'Annuaire des services qui repose sur l'espace de noms de l'Annuaire des services. Une fois la zone créée, les entrées DNS du point de terminaison Private Service Connect sont automatiquement créées.
Créez une zone de l'Annuaire des services présentant la configuration suivante :
Nom de zone : spécifiez
NAMESPACE--REGION
, oùNAMESPACE
est l'espace de noms dans lequel le point de terminaison Private Service Connect est enregistré, etREGION
la région dans laquelle il est créé.Nom DNS : domaine DNS utilisé par le producteur de services pour ses services publiés. Renseignez-vous auprès du producteur de services.
Le nom DNS peut être au format
REGION.p.DOMAIN
. Par exemple, si le domaine public du producteur de services estexample.com
et que son service publié est dansus-west1
, nous vous recommandons de rendre son service disponible à l'aide des noms de domaineus-west1.p.example.com
. Incluez un point final (par exemple,us-west1.p.example.com.
).Espace de noms de l'annuaire des services : espace de noms que vous avez configuré pour ce point de terminaison.
Affichez les détails du point de terminaison Private Service Connect pour trouver l'espace de noms et la région de l'Annuaire des services.
Avec cette configuration, si vous avez configuré une zone DNS dans l'Annuaire des services avec le nom DNS us-west1.p.example.com
et que vous créez un point de terminaison Private Service Connect appelé analytics
, un enregistrement DNS pour analytics.us-west1.p.example.com
est créé automatiquement.
Enregistrer manuellement un point de terminaison Private Service Connect dans l'Annuaire des services
Les nouveaux points de terminaison Private Service Connect sont automatiquement enregistrés dans l'Annuaire des services. Toutefois, si un point de terminaison Private Service Connect a été créé avant l'activation de l'enregistrement automatique avec l'Annuaire des services, cette configuration peut être manquante.
Vous pouvez supprimer le point de terminaison Private Service Connect et en créer un autre, qui est enregistré automatiquement dans l'Annuaire des services.
Vous pouvez également suivre ces étapes pour enregistrer un point de terminaison Private Service Connect existant avec un espace de noms de l'Annuaire des services.
Créez un espace de noms de l'Annuaire des services pour le point de terminaison Private Service Connect,
NAMESPACE
.Créez un service d'annuaire des services pour le point de terminaison Private Service Connect,
SERVICE_NAME
.Pour le service, utilisez le même nom que celui de la règle de transfert utilisée pour le point de terminaison Private Service Connect,
ENDPOINT_NAME
.Créez un point de terminaison de l'Annuaire des services en utilisant le nom
default
, et utilisez l'adresse IP et le port (443
) du point de terminaison Private Service Connect.
Après avoir enregistré le point de terminaison Private Service Connect dans l'Annuaire des services, suivez les instructions pour Configurer une zone de l'Annuaire des services.
Configurer le DNS manuellement
Si vous avez bloqué la configuration DNS automatique ou si elle n'est pas activée dans votre configuration, vous pouvez utiliser Cloud DNS pour créer manuellement des enregistrements DNS.
Pour en savoir plus, consultez les pages suivantes :
Contrôle des accès : le rôle d'administrateur DNS (
roles/dns.admin
) fournit les autorisations nécessaires pour créer des enregistrements et des zones DNS.-
Lorsque vous configurez une zone privée, vous fournissez un nom DNS. Utilisez le domaine DNS que le producteur de services utilise pour ses services publiés. Renseignez-vous auprès du producteur de services.
Il peut se présenter au format suivant :
REGION.p.DOMAIN
. Par exemple, si le domaine public du producteur de services estexample.com
et que son service publié est dansus-west1
, nous vous recommandons de rendre son service disponible à l'aide des noms de domaineus-west1.p.example.com
.
Logging
Vous pouvez activer les journaux de flux VPC sur des sous-réseaux contenant des VM qui accèdent aux services d'un autre réseau VPC à l'aide de points de terminaison Private Service Connect. Les journaux affichent les flux entre les VM et le point de terminaison Private Service Connect.
Vous pouvez afficher les modifications apportées à l'état de connexion des points de terminaison Private Service Connect à l'aide des journaux d'audit. Les modifications de l'état de connexion d'un point de terminaison sont capturées dans les métadonnées d'événement système pour le type de ressource Règle de transfert GCE. Vous pouvez définir un filtrage selon
pscConnectionStatus
pour afficher ces entrées.Par exemple, lorsqu'un producteur de services autorise les connexions à partir de votre projet, l'état de connexion du point de terminaison passe de
PENDING
àACCEPTED
, et cette modification est reflétée dans les journaux d'audit.- Pour savoir comment afficher les journaux d'audit, consultez la section Afficher les journaux.
- Pour définir des alertes basées sur les journaux d'audit, consultez la page Gérer les alertes basées sur les journaux.
Accéder au point de terminaison à partir d'hôtes sur site
Les clients des réseaux connectés à Google Cloud avec des rattachements de VLAN pour Cloud Interconnect (aperçu) ou des tunnels Cloud VPN peuvent atteindre les points de terminaison Private Service Connect.
Le rattachement de VLAN ou le tunnel Cloud VPN doit se terminer dans le même réseau et la même région VPC que le point de terminaison Private Service Connect.
Le trafic client des réseaux connectés vers les points de terminaison Private Service Connect n'est pas accepté sur les réseaux VPC appairés ou entre les régions.
Le rattachement de VLAN ou le tunnel Cloud VPN et le point de terminaison Private Service Connect peuvent se trouver dans des projets différents s'ils utilisent un VPC partagé.
Les rattachements de VLAN doivent comporter
dataplaneVersion: 2
. Inspectez votre rattachement de VLAN pour vérifier la version sur laquelle il se trouve.
Si vous souhaitez accéder au point de terminaison Private Service Connect à l'aide de son nom DNS, vous devez configurer des systèmes sur site afin qu'ils puissent envoyer des requêtes à vos zones DNS privées.
Si vous avez mis en œuvre les zones DNS privées à l'aide de Cloud DNS, procédez comme suit :
Créez une règle de serveur entrant dans le réseau VPC auquel votre réseau sur site se connecte.
Identifiez les points d'entrée du système de transfert entrant dans les régions où se trouvent vos tunnels Cloud VPN, dans le réseau VPC auquel votre réseau sur site se connecte.
Configurez des systèmes sur site et des serveurs de noms DNS sur site pour transférer les noms DNS des points de terminaison Private Service Connect vers un point d'entrée du système de transfert entrant dans la même région que celle du tunnel Cloud VPN qui se connecte au réseau VPC
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 Private Service Connect fait partie du même périmètre. Tous les services compatibles avec VPC Service Controls accessibles via le point de terminaison Private Service Connect sont soumis aux règles de ce périmètre VPC Service Controls.
Lorsque vous créez un point de terminaison Private Service Connect, 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 Private Service Connect est protégée par le périmètre VPC Service Controls.
Dépannage
Échec de la création de la zone DNS privée
Lorsque vous créez un point de terminaison Private Service Connect, une zone DNS de l'annuaire de service est créée. La création de zone peut échouer pour les raisons suivantes :
Vous n'avez pas activé l'API Cloud DNS dans votre projet.
Vous ne disposez pas des autorisations nécessaires pour créer une zone DNS de l'annuaire de service.
Ce réseau VPC contient une zone DNS portant le même nom de zone.
Une zone DNS portant le même nom de domaine existe déjà dans ce réseau VPC.
Pour créer la zone DNS de l'Annuaire des services, procédez comme suit :
Vérifiez que l'API Cloud DNS est activée dans votre projet.
Vérifiez que vous disposez des autorisations nécessaires pour créer la zone DNS de l'annuaire de service :
dns.managedZones.create
dns.networks.bindPrivateDNSZone
servicedirectory.namespaces.associatePrivateZone
S'il existe une zone en conflit, mais qu'elle n'est plus nécessaire, supprimez la zone DNS.
Créez une zone DNS de l'Annuaire des services reposant sur l'espace de noms de l'Annuaire des services associé à votre point de terminaison Private Service Connect.