Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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) et
Annuaire 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.

Configuration DNS automatique pour les points de terminaison Private Service Connect à l'aide de l'Annuaire des services (cliquez pour agrandir)

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

  1. Dans Google Cloud Console, accédez à Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Points de terminaison connectés.

  3. Cliquez sur Connecter le point de terminaison.

  4. Pour Cible, sélectionnez Service publié

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

  6. Dans le champ Nom du point de terminaison, saisissez un nom à utiliser pour le point de terminaison.

  7. Sélectionnez un réseau pour le point de terminaison.

  8. Sélectionnez un sous-réseau pour le point de terminaison.

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

    1. Cliquez sur le menu déroulant Adresse IP, puis sélectionnez Créer une adresse IP.
    2. Saisissez un nom et une description facultative pour l'adresse IP.
    3. 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.

    4. Cliquez sur Réserver.

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

  11. Cliquez sur Ajouter un point de terminaison.

gcloud

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

  2. Recherchez l'adresse IP réservée.

    gcloud compute addresses list --filter="name=ADDRESS_NAME"
    
  3. 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éfaut goog-psc-default est utilisé.

API

  1. 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 ou gcloud compute networks subnets list --uri pour rechercher les URL de vos réseaux.

  2. 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 ou gcloud 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 ou gcloud 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 champ namespace, l'espace de noms par défaut goog-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

  1. Dans Google Cloud Console, accédez à la page Zones Cloud DNS.

    Accéder aux zones Cloud DNS

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

Répertorier les points de terminaison

Vous pouvez répertorier tous les points de terminaison Private Service Connect configurés.

Console

  1. Dans Google Cloud Console, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

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

  1. Dans Google Cloud Console, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Points de terminaison connectés.

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

  1. Dans Google Cloud Console, accédez à Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Points de terminaison connectés.

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

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é, et REGION 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 est example.com et que son service publié est dans us-west1, nous vous recommandons de rendre son service disponible à l'aide des noms de domaine us-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.

  1. Créez un espace de noms de l'Annuaire des services pour le point de terminaison Private Service Connect, NAMESPACE.

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

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

  • Créez une zone privée.

    • 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 est example.com et que son service publié est dans us-west1, nous vous recommandons de rendre son service disponible à l'aide des noms de domaine us-west1.p.example.com.

  • Ajoutez un enregistrement.

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.

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 :

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 :

  1. Vérifiez que l'API Cloud DNS est activée dans votre projet.

  2. 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
  3. S'il existe une zone en conflit, mais qu'elle n'est plus nécessaire, supprimez la zone DNS.

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