Configurer l'accès aux services privés

L'accès aux services privés est une connexion privée entre votre réseau VPC et un réseau appartenant à Google ou à un tiers. Google ou le tiers sont des entités proposant des services. Ils sont également appelés producteurs de services. La connexion privée permet aux instances de VM de votre réseau VPC de communiquer avec les services auxquels vous accédez exclusivement à l'aide d'adresses IP internes. Les instances de VM n'ont pas besoin d'accès Internet ni d'adresses IP externes pour accéder aux services disponibles via l'accès aux services privés.

Pour en savoir plus sur l'accès aux services privés et sur les autres options d'accès privé, consultez la page Options d'accès privé pour les services.

En règle générale, pour accéder aux services privés, vous devez allouer une plage d'adresses IP (bloc CIDR) à votre réseau VPC, puis créer une connexion privée à un producteur de services.

Avant de commencer

Pour établir une connexion privée, suivez les étapes requises comme suit :

  • Vérifiez que le service que vous utilisez accepte l'accès aux services privés.
  • Créez un projet Google Cloud ou choisissez-en un existant. Pour savoir comment créer un projet Google Cloud, consultez la page Créer et gérer des projets.
  • Activez l'API Service Networking dans le projet. L'API est requise pour créer une connexion privée.
  • Créez ou choisissez un réseau VPC que vous utiliserez pour vous connecter au réseau du producteur de services. Les instances de VM doivent utiliser ce réseau VPC pour se connecter aux services via une connexion privée.
  • Installez gcloud CLI si vous souhaitez exécuter les exemples de ligne de commande gcloud de ce guide.

Autorisations

Les propriétaires de projet et les membres IAM dotés du rôle d'administrateur réseau Compute (roles/compute.networkAdmin) peuvent créer des plages d'adresses IP allouées et gérer les connexions privées.

Pour plus d'informations sur les rôles, consultez la documentation sur les rôles IAM de VPC.

Scénario avec VPC partagé

Si vous utilisez un VPC partagé, créez la plage d'adresses IP allouée et la connexion privée dans le projet hôte. En règle générale, un administrateur réseau du projet hôte doit effectuer ces tâches. Une fois le projet hôte configuré, les instances de machine virtuelle dans les projets de service peuvent utiliser la connexion privée.

Quotas et limites

Étant donné qu'une connexion privée est mise en œuvre en tant que connexion d'appairage de VPC, les quotas et limites appliqués à l'appairage de réseaux VPC s'appliquent également à l'accès aux services privés.

Plages d'adresses IP allouées aux services

Avant de créer une connexion privée, vous devez allouer une plage d'adresses IPv4 qui sera utilisée par le réseau VPC du producteur de services. Cela garantit qu'il n'y a pas de conflit d'adresses IP entre votre réseau VPC et le réseau du producteur de services. Créez une plage allouée pour chaque producteur de services.

Lorsque vous allouez une plage dans votre réseau VPC, elle est inéligible pour les sous-réseaux (plages primaire et secondaire) et les destinations des routes statiques personnalisées.

L'utilisation de plages d'adresses IPv6 avec accès aux services privés n'est pas disponible.

Taille de la plage d'adresses IP

Plages d'accès aux services privés.
Plages d'accès aux services privés (cliquez pour agrandir)

Lorsqu'un producteur de services crée un sous-réseau de son côté de la connexion, une plage ouverte d'adresses allouées est sélectionnée pour la plage d'adresses IP du sous-réseau.

Chaque producteur de services requiert une taille minimale de plage d'adresses IP. Pour Google, la taille minimale est un bloc unique /24 (256 adresses), mais la taille recommandée est un bloc /16 (65 536 adresses).

La taille que vous choisissez dépend de plusieurs facteurs, y compris des suivants :

  • Nombre de services et de régions utilisés
  • Conditions requises pour les services utilisés
    • Taille minimale de la plage d'adresses IP des services
    • Si le fournisseur de services requiert différentes plages d'adresses IP pour chaque instance du service que vous créez ou s'il peut utiliser la même plage d'adresses IP pour plusieurs instances du service

Si vous n'avez pas de bloc /16 contigu, vous pouvez commencer par une allocation plus petite, puis en ajouter d'autres si vous avez besoin de plusieurs adresses IP ultérieurement.

À propos du sous-réseau du producteur de services

Lorsque vous établissez une connexion privée et créez une ressource avec une adresse IP privée, le service crée un sous-réseau dans lequel provisionner la ressource. Le service sélectionne une plage d'adresses IP disponibles dans la plage allouée. Vous ne pouvez ni sélectionner, ni modifier la plage d'adresses IP du sous-réseau du producteur de services. Le service ne supprime le sous-réseau que lorsque vous supprimez toutes les ressources qu'il contient.

Lorsque vous attribuez des ressources supplémentaires, le service les provisionne dans les sous-réseaux régionaux existants précédemment créés. Si un sous-réseau est saturé, le service en crée un autre dans cette région.

Remarques

Avant d'allouer une plage d'adresses IP, prenez en compte les points suivants :

  • Sélectionnez une plage allouée qui soit complètement distincte des plages de sous-réseaux actuelles et futures, y compris les plages de sous-réseaux issues de réseaux connectés à l'aide de l'appairage de réseaux VPC, ainsi que les plages de sous-réseaux issues de spokes VPC connectés au même hub Network Connectivity Center.
  • Sélectionnez une plage qui ne correspond pas exactement aux destinations de routes statiques ou dynamiques personnalisées, ou qui ne contient pas de telles destinations.

    Lorsqu'un producteur de services sélectionne une partie inutilisée d'une plage allouée afin de la proposer pour de nouvelles ressources, il exclut toutes les destinations de routage personnalisées qui correspondent exactement à la plage allouée ou qui s'y inscrivent. Lorsqu'un réseau VPC contient une plage allouée et des routes personnalisées dont les destinations correspondent à la plage allouée ou s'y inscrivent, la partie utilisable de la plage allouée est réduite. Cette configuration peut entraîner des erreurs inattendues d'allocation épuisée.

    Voici par exemple ce qui va se produire si vous créez une plage allouée pour la plage 10.0.0.0/16 :

    • S'il existe une route personnalisée contenant une destination pour 10.0.0.0/16, ou si cette route personnalisée est créée ultérieurement, l'ensemble de la plage 10.0.0.0/16 va être considéré comme indisponible. Si un producteur de services tente d'utiliser la plage allouée, Google Cloud renvoie une erreur d'allocation épuisée.

    • S'il existe une route personnalisée contenant une destination pour 10.0.0.0/20, ou si cette route personnalisée est créée ultérieurement, la partie 10.0.0.0/20 de la plage allouée 10.0.0.0/16 va être considérée comme indisponible. Si un producteur de services tente d'utiliser la plage allouée et que la partie disponible de cette plage est insuffisante pour un producteur de services, Google Cloud renvoie une erreur d'allocation épuisée.

    • S'il existe une route personnalisée contenant une destination pour 10.0.0.0/8, ou si cette route personnalisée est créée ultérieurement, cela n'affecte pas la disponibilité de la plage allouée 10.0.0.0/16.

  • Sélectionnez une plage qui n'entre pas en conflit avec vos autres besoins en adresses IP :

    • Certains produits Google et certains produits tiers utilisent la plage 172.17.0.0/16 pour le routage au sein du système d'exploitation invité. Par exemple, le réseau de la liaison Docker par défaut utilise cette plage. Si vous dépendez d'un produit qui fait appel à la plage 172.17.0.0/16, n'utilisez pas cette plage 172.17.0.0/16 comme une plage allouée pour l'accès aux services privés.
    • Si vous utilisez un réseau VPC en mode automatique, vous ne pouvez pas créer de plage allouée correspondant à la plage 10.128.0.0/9, ou la chevauchant. Google utilise la plage 10.128.0.0/9 pour les sous-réseaux créés automatiquement, y compris ceux des futures régions.
  • Sélectionnez un bloc CIDR suffisamment grand pour répondre à vos besoins actuels et futurs. Si, par la suite, vous constatez que la taille de la plage est insuffisante, élargissez-la si possible. Bien que vous puissiez affecter plusieurs allocations à un seul producteur de services, Google applique un quota sur le nombre de plages d'adresses IP que vous pouvez allouer, mais ne limite pas la taille (masque de réseau) de chaque plage.

  • Si vous ajoutez une plage allouée supplémentaire à une connexion privée, celle-ci étend la plage d'adresses IP mise à la disposition du producteur de services lors de la création de ressources pour un service qu'il fournit. Vous ne pouvez pas réserver une plage allouée spécifique dans une connexion privée pour réserver son utilisation à un service particulier.

  • Ne réutilisez pas la même plage allouée pour plusieurs producteurs de services. Cela est possible, mais peut entraîner un chevauchement des adresses IP. Chaque producteur de services n'a de visibilité que sur son réseau et ne peut pas savoir quelles adresses IP les autres producteurs de services utilisent.

  • Vous ne pouvez affecter qu'un seul bloc CIDR à une plage allouée lorsque vous créez l'allocation. Si vous avez besoin d'étendre la plage d'adresses IP, vous ne pouvez pas ajouter plus de blocs à une allocation. En revanche, vous pouvez créer une autre allocation ou recréer l'allocation existante en utilisant un bloc plus grand qui englobe les nouvelles plages ainsi que les plages existantes.

  • Si vous créez vous-même l'allocation au lieu de laisser Google le faire (par exemple via Cloud SQL), vous pouvez utiliser la même convention de dénomination pour signaler à d'autres utilisateurs ou services Google qu'une allocation existe déjà pour Google. Si un service Google attribue une plage en votre nom, il utilise le format suivant pour nommer l'allocation : google-managed-services-[your network name]. Si cette allocation existe déjà, les services Google n'en créeront pas d'autre.

  • Comme une connexion privée est implémentée en tant que connexion d'appairage de réseaux VPC, les comportements et les contraintes des connexions d'appairage s'appliquent également aux connexions privées, telles que les limites d'appairage de réseaux VPC.

  • Si vous envisagez de modifier l'adresse IP interne d'une instance de service existante qui utilise un VPC, déterminez si cette action peut être perturbatrice, par exemple si elle nécessite la suppression et la recréation de l'instance de service. Pour en savoir plus, consultez la documentation du service géré associé. Par exemple, si vous utilisez Cloud SQL, consultez Modifier l'adresse IP privée d'une instance Cloud SQL existante.

Créer une allocation d'adresses IP

La procédure suivante permet de créer une plage d'adresses IP allouée.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC qui se connectera à un producteur de services.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Plages d'adresses IP allouées pour les services.

  5. Cliquez sur Allouer une plage d'adresses IP.

  6. Saisissez un nom et une description pour la plage allouée.

  7. Spécifiez une plage d'adresses IP pour l'allocation :

    • Pour spécifier une plage d'adresses IP, sélectionnez Personnalisée, puis saisissez un bloc CIDR, tel que 192.168.0.0/16.
    • Pour spécifier une longueur de préfixe et laisser Google sélectionner une plage disponible, sélectionnez Automatique, puis saisissez une longueur de préfixe, telle que 16.
  8. Cliquez sur Allouer pour créer la plage allouée.

gcloud

Pour créer une plage allouée dans votre réseau VPC, utilisez la commande addresses create.

  • Pour spécifier une plage d'adresses et une longueur de préfixe (masque de sous-réseau), utilisez les options addresses et prefix-length. Par exemple, pour allouer le bloc CIDR 192.168.0.0/16, spécifiez 192.168.0.0 pour l'adresse et 16 pour la longueur du préfixe.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    
  • Pour spécifier seulement une longueur de préfixe (masque de sous-réseau), utilisez simplement l'option prefix-length. Si vous ne spécifiez pas de plage d'adresses, Google Cloud sélectionne automatiquement une plage d'adresses non utilisée sur votre réseau VPC. L'exemple suivant choisit une plage d'adresses IP non utilisée avec une longueur de préfixe de 16 bits.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    

Remplacez les éléments suivants :

  • RESERVED_RANGE_NAME : nom de la plage allouée. Exemple : my-allocated-range.

  • DESCRIPTION : description de la plage. Exemple : allocated for my-service.

  • VPC_NETWORK : nom de votre réseau VPC. Exemple : my-vpc-network.

L'exemple suivant crée une connexion privée à Google afin que les instances de VM du réseau VPC my-network puissent accéder aux services Google compatibles avec l'accès aux services privés.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network

Terraform

Pour créer une plage allouée dans votre réseau VPC, utilisez la ressource google_compute_global_address.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Si vous voyez une erreur concernant l'autorisation compute.globalAddresses.list pour le projet, consultez la section Autorisations de compte de service.

Répertorier des plages d'adresses IP allouées

Pour répertorier les plages d'adresses IP allouées, utilisez la commande addresses list.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Créer une connexion privée

Une fois que vous avez créé une plage allouée, vous pouvez créer une connexion privée à un producteur de services. La connexion privée établit une connexion d'Appairage de réseaux VPC entre votre réseau VPC et le réseau du producteur de services.

Les connexions privées sont des relations un à un entre votre réseau VPC et un producteur de services. Si un seul producteur de services offre plusieurs services, vous n'avez besoin que d'une seule connexion privée pour tous les services du producteur.

Si un même producteur de services propose plusieurs services et que vous souhaitez contrôler les plages allouées utilisées pour différentes ressources de service, vous pouvez utiliser plusieurs réseaux VPC, chacun avec ses propres connexions privées. Cette configuration vous permet de sélectionner un réseau particulier lorsque vous créez une ressource de service géré, afin de vous assurer que les plages allouées associées sont bien utilisées pour la nouvelle ressource.

Si vous vous connectez à plusieurs producteurs de services, utilisez une allocation unique pour chacun d'entre eux. Ceci facilite la gestion des paramètres réseau, tels que les routes et les règles de pare-feu, de chaque producteur de services.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC qui se connectera à un producteur de services.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Connexions privées aux services.

  5. Cliquez sur Créer une connexion pour créer une connexion privée entre votre réseau et un producteur de services.

  6. Pour l'allocation attribuée, sélectionnez une ou plusieurs plages attribuées existantes qui ne sont pas utilisées par d'autres producteurs de services.

  7. Cliquez sur Connecter pour créer la connexion.

gcloud

  1. Utilisez la commande vpc-peerings connect.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    Remplacez les éléments suivants :

    • RESERVED_RANGE_NAME : nom d'une ou de plusieurs plages allouées.

    • VPC_NETWORK : nom de votre réseau VPC.

    La commande lance une opération longue. Elle affiche un nom d'opération.

  2. Pour vérifier si l'opération a réussi, utilisez la commande vpc-peerings operations describe.

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    Remplacez OPERATION_NAME par le nom de l'opération renvoyé à l'étape précédente.

Vous pouvez spécifier plusieurs plages allouées lorsque vous créez une connexion privée. Par exemple, si une plage est épuisée, vous pouvez affecter d'autres plages allouées. Le service utilisera les adresses IP de toutes les plages mises à disposition, dans l'ordre que vous avez déterminé.

Terraform

Pour créer une connexion privée, utilisez la ressource google_service_networking_connection.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Lister les connexions privées

Après avoir créé une connexion privée, vous pouvez la répertorier pour vérifier qu'elle existe. La liste des plages allouées associées à chaque connexion est également affichée. Par exemple, si vous ne vous souvenez plus de la plage que vous avez attribuée à une connexion, consultez la liste pour la retrouver.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC qui contient les connexions.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Connexions privées aux services pour afficher toutes les connexions privées du réseau.

gcloud

Utilisez la commande vpc-peerings list.

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

Remplacez VPC_NETWORK par le nom de votre réseau VPC.

Modifier une connexion privée

En ce qui concerne les connexions privées existantes, vous pouvez ajouter ou supprimer des plages d'adresses IP allouées sans interrompre le trafic. Par exemple, si vous êtes sur le point d'épuiser la plage existante, vous pouvez ajouter une plage allouée au fur et à mesure des ajustements que vous effectuez.

Vous ne pouvez pas utiliser la console Google Cloud pour supprimer des plages d'adresses IP allouées. Si vous souhaitez supprimer une plage allouée, modifiez la connexion en suivant les instructions gcloud. Lorsque vous supprimez une plage d'une connexion privée, les critères suivants s'appliquent :

  • La plage allouée n'est plus associée à la connexion privée, mais elle n'est pas supprimée.

  • Les ressources existantes de producteurs de services peuvent continuer à utiliser la plage supprimée.

  • L'accès aux services privés n'utilise pas les plages supprimées pour allouer de nouveaux sous-réseaux.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC qui contient les connexions.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Connexions privées aux services pour afficher toutes les connexions privées du réseau.

  5. Cliquez sur un nom de connexion dans la liste.

  6. Dans le menu déroulant Allocation attribuée, sélectionnez les plages à allouer.

  7. Cliquez sur OK.

gcloud

Pour ajouter ou supprimer des plages d'adresses IP allouées, qui ont été attribuées sur une connexion privée existante, utilisez la commande vpc-peerings update.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    [--force]

Remplacez les éléments suivants :

  • RESERVED_RANGE_NAME : liste d'un ou de plusieurs noms de plages allouées à attribuer à la connexion privée.

    RESERVED_RANGE_NAME remplace la liste des plages allouées précédente. Si vous omettez une plage précédemment associée à cette connexion privée, celle-ci est supprimée de la connexion. Vous devez utiliser l'option --force pour supprimer une plage.

  • VPC_NETWORK : nom de votre réseau VPC.

Supprimer une plage d'adresses IP allouée

Avant de supprimer une plage d'adresses IP allouée, vérifiez si la plage est utilisée par une connexion privée.

Si la plage d'adresses IP allouée est utilisée, commencez par modifier la connexion privée pour la supprimer. Supprimez ensuite la plage d'adresses IP allouée.

Si vous supprimez une adresse IP allouée utilisée et que vous ne modifiez pas la connexion privée, les éléments suivants s'appliquent :

  • Les connexions existantes restent actives, mais rien n'empêche votre réseau VPC d'utiliser des adresses IP qui chevauchent le réseau du producteur de services.

  • Si vous supprimez la seule plage d'adresses IP allouée associée à une connexion privée, le service ne peut pas créer de sous-réseaux, car il n'y a pas de plage d'adresses IP allouée à sélectionner.

  • Si vous créez ultérieurement une plage d'adresses IP allouée correspondant à la plage supprimée ou en la chevauchant, l'ajout de la plage à une connexion privée échoue.

Pour éviter ces problèmes, modifiez toujours vos connexions privées lorsque vous supprimez une plage d'adresses IP allouée en cours d'utilisation.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC contenant les attributions à supprimer.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Plages d'adresses IP allouées pour les services.

  5. Sélectionnez l'allocation à supprimer.

  6. Cliquez sur Libérer pour renvoyer la plage d'adresses IP allouées au pool d'adresses IP internes disponibles sur le réseau.

    Si la plage d'adresses IP est toujours allouée à une connexion existante, vous devez saisir une confirmation supplémentaire avant de pouvoir libérer l'allocation.

  7. Cliquez à nouveau sur Libérer pour confirmer la suppression.

gcloud

Supprimez l'allocation en spécifiant son nom.

gcloud compute addresses delete NAME \
    --global

Remplacez NAME par le nom de la plage allouée que vous souhaitez supprimer.

Supprimer une connexion privée

Avant de supprimer une connexion privée, vous devez supprimer toutes les instances de service auxquelles vous accédez via la connexion. Par exemple, si vous souhaitez supprimer une connexion privée utilisée pour accéder à Cloud SQL, vous devez d'abord supprimer les instances Cloud SQL qui utilisent cette connexion. Après la suppression des instances de service, les ressources du producteur de services sont supprimées, mais il est possible que cette suppression ne se produise pas immédiatement. Certains producteurs de services retardent la suppression jusqu'à ce qu'un délai d'attente soit écoulé. Vous ne pouvez pas supprimer la connexion privée pendant ce délai d'attente. Vous devez attendre que les ressources du producteur de services soient supprimées avant de pouvoir supprimer la connexion.

Par exemple, si vous supprimez une instance Cloud SQL, vous recevez une réponse positive, mais le service attend quatre jours avant de supprimer les ressources du producteur de services. Le délai d'attente signifie que si vous changez d'avis quant à la suppression du service, vous pouvez demander à rétablir les ressources. Si vous essayez de supprimer la connexion pendant le délai d'attente, la suppression échoue et renvoie un message indiquant que les ressources sont toujours en cours d'utilisation par le producteur de services.

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC contenant les connexions à supprimer.

  3. Sélectionnez l'onglet Accès aux services privés.

  4. Dans l'onglet Accès aux services privés, sélectionnez l'onglet Connexion privée aux services.

  5. Sélectionnez la connexion privée à supprimer.

  6. Cliquez sur Supprimer.

  7. Cliquez à nouveau sur Supprimer pour confirmer la suppression.

gcloud

Pour supprimer la connexion d'appairage de réseaux VPC d'une connexion privée, utilisez la commande vpc-peerings delete.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

Remplacez VPC_NETWORK par le nom de votre réseau VPC.

Partager des zones DNS privées avec des producteurs de services

Les zones privées Cloud DNS sont privées pour votre réseau VPC. Si vous souhaitez autoriser un réseau de producteurs de services à résoudre les noms de votre zone privée, vous pouvez configurer l'appairage DNS entre les deux réseaux.

Lorsque vous configurez l'appairage DNS, vous devenez fournisseur d'un réseau VPC et d'un suffixe DNS. Si le producteur de services doit résoudre une adresse ayant ce suffixe DNS, il transfère ces requêtes vers votre réseau VPC afin qu'elle puisse être résolu.

Ces services compatibles sont compatibles avec l'appairage DNS, à l'exception de Cloud SQL.

Si vous souhaitez activer l'appairage DNS, vous devez activer l'API Cloud DNS dans votre projet.

Appairer le DNS avec un producteur de services

gcloud

Pour configurer l'appairage DNS entre votre réseau VPC et le réseau du fournisseur de services, utilisez la commande peered-dns-domains create.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

Remplacez les éléments suivants :

  • PEERING_NAME : nom de la configuration d'appairage DNS.

  • VPC_NETWORK : nom du réseau VPC connecté au producteur de services à l'aide de l'accès aux services privés.

  • DNS_SUFFIX : suffixe DNS que vous souhaitez appairer avec le producteur de services. Vous devez fournir un nom de domaine DNS complet, avec le point. Par exemple, example.com. est un suffixe DNS valide.

Terraform

Pour configurer l'appairage DNS entre votre réseau VPC et le réseau du fournisseur de services, utilisez la ressource google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Répertorier les configurations d'appairage DNS

gcloud

Utilisez la commande peered-dns-domains list.

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

Remplacez VPC_NETWORK par le nom de votre réseau VPC.

Supprimer une configuration d'appairage DNS

gcloud

Utilisez la commande peered-dns-domains delete.

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

Remplacez les éléments suivants :

  • PEERING_NAME : nom de la configuration d'appairage DNS

  • VPC_NETWORK : nom de votre réseau VPC.

Dépannage

Quelle part de mon allocation est utilisée ?

Lorsque vous créez une connexion privée avec un producteur de services, vous allouez à ce dernier une plage d'adresses IP. Si vous utilisez plusieurs services d'un producteur de services, chacun réservera une partie des adresses IP de cette plage allouée. Vous pouvez vérifier l'utilisation des adresses IP par les services, par exemple pour déterminer lesquels utilisent de grands blocs d'adresses IP et éviter ainsi l'épuisement des adresses IP.

Pour afficher le ratio d'allocation de vos plages allouées, utilisez Network Analyzer. Pour en savoir plus, consultez la page Résumé de l'utilisation des adresses IP pour l'accès aux services privés.

Pour voir quel service utilise une plage d'adresses IP particulière, procédez comme suit :

  1. Listez vos connexions privées.
  2. Recherchez le nom de la connexion d'appairage qui vous connecte au producteur de services concerné.
  3. Listez les routes pour le réseau VPC.
  4. Recherchez les routes avec un saut suivant correspondant au nom de la connexion d'appairage. La plage de destination des routes indique les adresses IP utilisées par chaque service.

Épuisement de la plage d'adresses IP

Pour une connexion privée donnée, Google Cloud affiche l'erreur suivante si vous épuisez votre espace d'adresses IP alloué : Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

Cette erreur peut s'afficher si la plage allouée se révèle insuffisante par rapport à l'utilisation que vous voulez en faire, ou si une route statique ou dynamique personnalisée empêche l'entière utilisation de la plage allouée. Pour en savoir plus sur les considérations liées au routage, consultez la section Considérations.

Vous pouvez étendre l'allocation existante ou en ajouter de nouvelles. L'allocation étendue doit être une plage d'adresses IP contiguë incluant la plage existante. L'extension d'une allocation est recommandée, car le nombre d'allocations que vous pouvez créer est limité mais pas la taille de l'allocation.

Pour étendre une allocation existante, procédez comme suit :

  1. Listez vos connexions privées et enregistrez le nom de la plage allouée à étendre.
  2. Supprimez la plage allouée existante.
  3. Créez une nouvelle plage allouée et donnez-lui le même nom que la plage supprimée. Spécifiez une plage d'adresses IP incluant la plage d'adresses IP précédemment supprimée. De cette manière, les ressources appairées existantes qui utilisent l'ancienne plage allouée peuvent continuer à utiliser les mêmes adresses IP sans entrer en conflit avec les ressources de votre réseau VPC. Par exemple, si la plage allouée précédente était 192.168.0.0/20, créez une plage 192.168.0.0/16.

Pour ajouter des plages allouées à une connexion privée existante, procédez comme suit :

  1. Créez une nouvelle plage allouée. Celle-ci ne doit pas nécessairement être contiguë avec les plages allouées existantes.
  2. Ajoutez la plage allouée à la connexion privée existante.

Les hôtes sur site ne peuvent pas communiquer avec le réseau du producteur de services

Il est possible que le réseau du producteur de services ne dispose pas des routes appropriées pour diriger le trafic vers votre réseau sur site. Par défaut, le réseau du producteur de services ne mémorise que les routes de sous-réseau émanant de votre réseau VPC. Par conséquent, toute requête qui ne provient pas d'une plage d'adresses IP de sous-réseau est ignorée par le producteur de services.

Pour configurer la connectivité entre vos hôtes sur site et le réseau du producteur de services, procédez comme suit:

  • Dans votre réseau VPC, mettez à jour la connexion d'appairage pour exporter les routes personnalisées vers le réseau du producteur de services. L'exportation des routes envoie toutes les routes statiques et dynamiques éligibles de votre réseau VPC, telles que les routes vers votre réseau sur site, au réseau du producteur de services. Le réseau du producteur de services les importe automatiquement, puis peut renvoyer le trafic vers votre réseau sur site via le réseau VPC.

  • Assurez-vous que les préfixes qui incluent les plages d'adresses IP allouées pour l'accès aux services privés sont correctement annoncés sur votre réseau sur site. Pour comprendre comment annoncer des préfixes IPv4 personnalisés à l'aide de Cloud Router, consultez la section Routes annoncées.

  • Vérifiez que le rattachement de VLAN ou le tunnel Cloud VPN se termine dans le même réseau VPC (ou réseau VPC partagé) que la connexion privée, car l'appairage de réseaux VPC ne fournit pas de routage transitif.

Autorisations de compte de service

Si vous rencontrez une erreur sur l'autorisation compute.globalAddresses.list pour un projet lors de la création d'une allocation d'adresse IP ou si vous rencontrez des erreurs telles que Error 400: Precondition check failed lors de la création, de la mise en liste ou de la modification des connexions privées, il peut s'agir d'un problème avec les rôles IAM (Identity and Access Management) pour votre compte de service de l'API Service Networking. Ce compte de service est créé automatiquement après l'activation de l'API Service Networking. Le provisionnement du compte et son affichage sur la page IAM peuvent prendre un certain temps.

Console

Pour vous assurer que le compte de service dispose du rôle IAM approprié, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page IAM.

    Accéder à IAM

  2. Cochez la case Inclure les attributions de rôles fournies par Google.

  3. Dans la colonne Nom, recherchez le compte principal Service Networking Service Agent, puis cliquez sur Edit principal (Modifier le compte principal) sur la ligne correspondante.

  4. Dans le champ Rôle, assurez-vous que le rôle Agent de service Service Networking (roles/servicenetworking.serviceAgent) est présent.

  5. Si le rôle Agent de service Service Networking n'est pas présent, cliquez sur Ajouter un rôle ou Ajouter un autre rôle.

  6. Cliquez sur Select a role (Sélectionner un rôle).

  7. Dans la zone de texte Filtre, saisissez Service Networking Service Agent.

  8. Sélectionnez Agent de service Service Networking dans la liste, puis cliquez sur Enregistrer.

gcloud

Pour créer un compte de service pour l'API Service Networking, exécutez la commande add-iam-policy-binding.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

Remplacez les éléments suivants :

  • HOST_PROJECT_NAME : nom du projet hôte
  • HOST_PROJECT_NUMBER : numéro du projet hôte

La route d'appairage de sous-réseau persiste après la mise à jour de l'allocation d'adresses IP

Après la mise à jour de la plage d'adresses IP allouée d'une connexion de services privés, l'ancienne route d'appairage de sous-réseau peut toujours apparaître dans la table de routage de votre réseau VPC. La route persiste, car la plage d'adresses IP est toujours utilisée.

Pour résoudre ce problème, procédez comme suit :

La route d'appairage de sous-réseau est automatiquement supprimée lorsque la plage d'adresses IP n'est plus utilisée. Il peut s'écouler un certain temps entre la suppression de la ressource et la suppression complète par le producteur de services. Par exemple, si l'ancienne plage d'adresses IP est utilisée par une instance Cloud SQL, la suppression complète de l'instance par le producteur de services peut prendre jusqu'à quatre jours. La route d'appairage de sous-réseau est supprimée une fois la suppression terminée.