Configurer l'appairage VPC

Vous pouvez utiliser l'appairage de réseaux VPC pour permettre à Datastream de communiquer en privé avec les ressources de votre réseau cloud privé virtuel (VPC) .

L'appairage de réseaux VPC est une connexion entre votre réseau VPC et le réseau privé de Datastream. Il permet à Datastream de communiquer avec des ressources internes à l'aide d'adresses IP internes. L'utilisation d'une connectivité privée établit une connexion dédiée sur le réseau Datastream, ce qui signifie que vous ne partagez cette connexion avec aucun autre client.

La connexion d'appairage de réseaux VPC entre votre réseau VPC et le réseau VPC de Datastream permet à Datastream de se connecter aux éléments suivants :

La connexion d'appairage de réseaux VPC entre votre réseau VPC et le réseau VPC de Datastream ne permet pas à Datastream de se connecter aux éléments suivants :

Pour établir une connectivité entre Datastream et une ressource accessible uniquement à partir de votre réseau VPC, vous pouvez utiliser une VM de traduction d'adresse réseau (NAT) dans votre réseau VPC. Un cas d'utilisation courant pour une VM NAT est lorsque Datastream doit se connecter à une instance Cloud SQL.

Cette page décrit un exemple de configuration de VM NAT qui permet à Datastream de se connecter en privé à une instance Cloud SQL.

Schéma de parcours utilisateur de Datastream

Prérequis pour l'appairage de VPC

Avant de créer une configuration de connectivité privée, vous devez suivre la procédure suivante pour que Datastream puisse créer la connexion d'appairage de VPC à votre projet :

  • Vous disposez d'un réseau VPC pouvant être appairé au réseau privé de Datastream et qui répond aux exigences décrites sur la page Appairage de réseaux VPC. Pour plus d'informations sur la création de ce réseau, consultez la section Utiliser l'appairage de réseaux VPC.
  • Identifiez une plage d'adresses IP disponible (avec un bloc CIDR de /29) sur le réseau VPC. Il ne peut pas s'agir d'une plage d'adresses IP qui existe déjà en tant que sous-réseau, d'une plage d'adresses IP préallouée pour l'accès aux services privés ni d'une route (autre que la route par défaut 0.0.0.0) qui inclut la plage d'adresses IP. La plage d'adresses IP ne peut pas non plus chevaucher les plages d'adresses IP internes réservées par Datastream (10.1.0.0/16 et 10.2.2.0/24). Datastream utilise cette plage d'adresses IP pour créer un sous-réseau afin de pouvoir communiquer avec la base de données source. Le tableau suivant décrit les plages d'adresses IP valides.
Plage Description
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Adresses IP privées RFC 1918
100.64.0.0/10 Espace d'adresses partagé RFC 6598
192.0.0.0/24 Attributions de protocole IETF RFC 6890
192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)
Documentation RFC 5737
192.88.99.0/24 Relais IPv6 vers IPv4 (obsolète) RFC 7526
198.18.0.0/15 Tests d'évaluation RFC 2544
  • Assurez-vous qu'aucune ressource de votre réseau VPC qui communique avec Datastream (telle que des VM NAT, des équilibreurs de charge internes ou des bases de données source et de destination) n'utilise d'adresses IP dans les plages 10.1.0.0/16 ou 10.2.2.0/24. Ces plages sont réservées à l'infrastructure interne de Datastream. Leur utilisation pour vos ressources peut entraîner des conflits de routage et des échecs de connectivité imprévisibles.

  • Vérifiez que Google Cloud et le pare-feu sur site autorisent le trafic provenant de la plage d'adresses IP sélectionnée. Si ce n'est pas le cas, créez une règle de pare-feu d'entrée qui autorise le trafic sur le port de la base de données source, et assurez-vous que la plage d'adresses IPv4 de la règle de pare-feu est identique à la plage d'adresses IP allouée lors de la création de la ressource de connectivité privée :

    gcloud compute firewall-rules create FIREWALL-RULE-NAME \
      --direction=INGRESS \
      --priority=PRIORITY \
      --network=PRIVATE_CONNECTIVITY_VPC \
      --project=VPC_PROJECT \
      --action=ALLOW \
      --rules=FIREWALL_RULES \
      --source-ranges=IP-RANGE
      

    Remplacez les éléments suivants :

    • FIREWALL-RULE-NAME : nom de la règle de pare-feu à créer.
    • PRIORITY : priorité de la règle, exprimée sous la forme d'un entier compris entre 0 et 65 535 inclus. La valeur doit être inférieure à celle définie pour la règle de blocage du trafic, si elle existe. Les valeurs de priorité inférieures impliquent une priorité plus élevée.
    • PRIVATE_CONNECTIVITY_VPC : réseau VPC pouvant être appairé au réseau privé de Datastream et répondant aux exigences décrites sur la page Appairage de réseaux VPC. Il s'agit du VPC que vous spécifiez lorsque vous créez votre configuration de connectivité privée.
    • VPC_PROJECT : projet du réseau VPC.
    • FIREWALL_RULES : liste des protocoles et des ports auxquels la règle de pare-feu s'applique, par exemple tcp:80. La règle doit autoriser le trafic TCP vers l'adresse IP et le port de la base de données source ou du proxy. Étant donné que la connectivité privée peut prendre en charge plusieurs bases de données, la règle doit tenir compte de l'utilisation réelle de votre configuration.
    • IP-RANGE : plage d'adresses IP que Datastream utilise pour communiquer avec la base de données source. Il s'agit de la même plage que celle que vous indiquez dans le champ Allouer une plage d'adresses IP lorsque vous créez votre configuration de connectivité privée.

      Vous devrez peut-être également créer une règle de pare-feu de sortie identique pour autoriser le trafic vers Datastream.

  • Vous disposez d'un rôle contenant l'autorisation compute.networks.list. Vous disposez ainsi des autorisations IAM requises pour répertorier les réseaux VPC de votre projet. Pour savoir quels rôles contiennent cette autorisation, consultez la documentation de référence sur les autorisations IAM.

Prérequis pour le VPC partagé

Si vous utilisez un VPC partagé, vous devez effectuer les actions suivantes en plus des étapes décrites dans la section Prérequis pour le VPC :

  1. Dans le projet de service :

    1. Activez l'API Datastream.
    2. Obtenez l'adresse e-mail utilisée pour le compte de service Datastream. Les comptes de service Datastream sont créés lorsque vous effectuez l'une des opérations suivantes :

      • Vous créez une ressource Datastream, telle qu'un profil de connexion ou un flux.
      • Vous créez une configuration de connectivité privée, sélectionnez votre VPC partagé, puis cliquez sur Créer un compte de service Datastream. Le compte de service est créé dans le projet hôte.

      Pour obtenir l'adresse e-mail utilisée pour le compte de service Datastream, recherchez le numéro de projet sur la Google Cloud page d'accueil de la console. L'adresse e-mail du compte de service est service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com.

  2. Sur le projet hôte :

    1. Accordez le rôle IAM (Identity and Access Management) compute.networkAdmin au compte de service Datastream. Ce rôle n'est requis que lorsque vous créez l'appairage de VPC. Une fois l'appairage établi, vous n'avez plus besoin du rôle.

      Si votre organisation n'autorise pas l'octroi de l'autorisation, créez un rôle personnalisé avec les autorisations minimales suivantes pour créer et supprimer des ressources de connexion privée :

    Pour en savoir plus sur les rôles personnalisés, consultez la page Créer et gérer les rôles personnalisés.

Configurer une VM NAT

  1. Identifiez l'adresse IP de l'instance Cloud SQL à laquelle Datastream doit se connecter.

  2. Identifiez votre réseau VPC. Il s'agit du réseau VPC connecté au réseau VPC Datastream à l'aide de l'appairage de réseaux VPC.

  3. Si ce n'est pas déjà fait, créez une configuration de connectivité privée dans Datastream. Cela crée la connexion d'appairage de réseaux VPC qui connecte votre réseau VPC et le réseau VPC Datastream. Notez la plage d'adresses IP utilisée par la configuration de connectivité privée Datastream.

  4. Choisissez un type de machine à utiliser pour la VM NAT que vous créez à l'étape suivante. Google Cloud applique une limite maximale de bande passante sortante par instance, pour les paquets acheminés par les sauts suivants au sein d'un réseau VPC, en fonction du type de machine de l'instance de VM. Pour en savoir plus, consultez la section Sortie vers des destinations routables au sein d'un réseau VPC et Bande passante sortante maximale par instance.

  5. Créez la VM NAT dans votre réseau VPC. Lorsque vous créez la VM, vous devez activer le transfert IP. Pour en savoir plus, consultez la page Activer le transfert IP pour les instances.

    Si votre réseau VPC est un réseau VPC partagé, vous pouvez créer la VM NAT dans le projet hôte ou dans n'importe quel projet de service, à condition que l'interface réseau de la VM NAT se trouve dans le réseau VPC partagé.

    • Pour minimiser le délai aller-retour du réseau, créez la VM NAT dans la même région que Datastream.
    • Cet exemple suppose que la VM NAT ne possède qu'une seule interface réseau.
    • Exécutez le script dans une distribution Linux, par exemple Debian 12.
    • Utilisez le script de démarrage suivant. Le script de démarrage est exécuté par l'utilisateur racine chaque fois que la VM démarre. Ce script inclut des commentaires expliquant le rôle de chaque ligne du script. Dans le script, remplacez CLOUD_SQL_INSTANCE_IP par l'adresse IP de l' instance Cloud SQL et DATABASE_PORT par le port de destination utilisé par le logiciel de base de données.
    #! /bin/bash
    
    export DB_ADDR=CLOUD_SQL_INSTANCE_IP
    export DB_PORT=DATABASE_PORT
    
    # Enable the VM to receive packets whose destinations do
    # not match any running process local to the VM
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Ask the Metadata server for the IP address of the VM nic0
    # network interface:
    md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
    vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)"
    
    # Clear any existing iptables NAT table entries (all chains):
    iptables -t nat -F
    
    # Create a NAT table entry in the prerouting chain, matching
    # any packets with destination database port, changing the destination
    # IP address of the packet to the SQL instance IP address:
    iptables -t nat -A PREROUTING \
         -p tcp --dport $DB_PORT \
         -j DNAT \
         --to-destination $DB_ADDR
    
    # Create a NAT table entry in the postrouting chain, matching
    # any packets with destination database port, changing the source IP
    # address of the packet to the NAT VM's primary internal IPv4 address:
    iptables -t nat -A POSTROUTING \
         -p tcp --dport $DB_PORT \
         -j SNAT \
         --to-source $vm_nic_ip
    
    # Save iptables configuration:
    iptables-save
  6. Créez une règle de pare-feu d'entrée autorisée firewall rule (ou une règle dans une stratégie de pare-feu de réseau globale policy, une stratégie de pare-feu de réseau régionale ou une stratégie de pare-feu hiérarchique) présentant les caractéristiques suivantes :

    • Direction : entrée
    • Action : autoriser
    • Paramètre cible : au moins la VM NAT
    • Paramètre source : plage d'adresses IP utilisée par la configuration de connectivité privée Datastream
    • Protocole : TCP
    • Port : doit au moins inclure le DATABASE_PORT
  7. La règle de pare-feu implicite d'autorisation pour le trafic sortant permet à la VM NAT d' envoyer des paquets vers n'importe quelle destination. Si votre réseau VPC utilise des règles de pare-feu de refus de sortie, vous devrez peut-être créer une règle de pare-feu d'autorisation pour le trafic sortant afin de permettre à la VM NAT d'envoyer des paquets à l'instance Cloud SQL. Si une règle d'autorisation pour le trafic sortant est nécessaire, utilisez les paramètres suivants :

    • Direction : sortie
    • Action : autoriser
    • Paramètre cible : au moins la VM NAT
    • Paramètre de destination : adresse IP de l'instance Cloud SQL
    • Protocole : TCP
    • Port : doit au moins inclure le DATABASE_PORT
  8. Assurez-vous d'avoir configuré votre instance Cloud SQL pour qu'elle accepte les connexions à partir de l'adresse IPv4 interne principale utilisée par l'interface réseau de votre VM NAT. Pour obtenir des instructions, consultez la section Autoriser avec des réseaux autorisés dans la documentation Cloud SQL .

  9. Créez un profil de connexion dans Datastream. Dans les détails de connexion du profil, spécifiez l'adresse IPv4 interne principale de la VM NAT que vous avez créée. Saisissez le port de la base de données source dans le champ "Port" du profil de connexion.

Configurer une paire de VM NAT et un équilibreur de charge réseau passthrough interne

Pour améliorer la fiabilité d'une solution de VM NAT, envisagez l'architecture suivante, qui utilise une paire de VM NAT et un équilibreur de charge réseau passthrough interne :

  1. Créez deux VM NAT dans différentes zones de la même région. Suivez les instructions de la section Configurer une VM NAT pour créer chaque VM et placez les dans leur propre groupe d'instances non géré zonal.

    Vous pouvez également créer un groupe d'instances géré régional. Dans le modèle de groupe d'instances géré, incluez un script de démarrage tel que le exemple de script de démarrage dans les instructions de la section Configurer une VM NAT.

  2. Créez un équilibreur de charge réseau passthrough interne dont le service de backend utilise le ou les groupes d'instances de l'étape précédente comme backends. Pour obtenir un exemple d'équilibreur de charge réseau passthrough interne, consultez la page Configurer un équilibreur de charge réseau passthrough interne avec backends de groupe d'instances de VM.

    Lorsque vous configurez la vérification de l'état de l'équilibreur de charge, vous pouvez utiliser une vérification de l'état TCP qui utilise un port TCP de destination correspondant au DATABASE_PORT. Les paquets de vérification de l'état sont acheminés vers le CLOUD_SQL_INSTANCE_IP en fonction de la configuration de la VM NAT. Vous pouvez également exécuter un processus local sur la VM NAT qui répond à une vérification de l'état TCP ou HTTP sur un port personnalisé.

  3. Créez des règles de pare-feu et configurez les réseaux autorisés Cloud SQL comme décrit dans les instructions de la section Configurer une VM NAT. Assurez-vous que les réseaux autorisés Cloud SQL incluent l'adresse IPv4 interne principale des deux VM NAT.

  4. Lorsque vous créez un profil de connexion Datastream, spécifiez l'adresse IP de la règle de transfert de l'équilibreur de charge réseau passthrough interne dans les détails de connexion du profil.

Étape suivante