Se connecter à une instance Cloud SQL depuis l'extérieur de son VPC

Cette page explique comment se connecter à une instance Cloud SQL depuis l'extérieur de son cloud privé virtuel (VPC) configuré.

Avant de commencer

Avant de commencer, veillez à effectuer les actions suivantes :

  1. Vous devez créer une instance Cloud SQL.
  2. Vous devez configurer votre instance pour qu'elle utilise une adresse IP interne plutôt qu'une adresse IP externe.

À propos des connexions externes

Votre instance Cloud SQL se compose d'un certain nombre de nœuds au sein d'un VPC géré par Google. Lorsque vous créez une instance, vous configurez également l'accès aux services privés ou Private Service Connect entre l'un de vos VPC et le VPC géré par Google contenant votre nouvelle instance. Cette connexion d'appairage vous permet d'utiliser des adresses IP internes pour accéder aux ressources du VPC de l'instance comme si elles faisaient partie de votre propre VPC.

Dans les situations suivantes, vous devez vous connecter à votre instance depuis l'extérieur d'un VPC connecté :

  • Votre application s'exécute en dehors du VPC que vous avez utilisé pour vous connecter à votre instance via l'accès aux services privés ou Private Service Connect.

  • Votre application s'exécute sur un VPC existant en dehors du réseau de Google.

  • Votre application s'exécute sur une machine située ailleurs sur le réseau Internet public.

Dans tous ces cas, vous devez configurer un service supplémentaire pour permettre ce type de connexion externe à votre instance Cloud SQL.

Nous vous recommandons les solutions suivantes pour établir des connexions externes, en fonction de vos besoins :

  • Pour le développement de projets ou le prototypage, ou pour un environnement de production relativement peu coûteux, configurez une machine virtuelle (VM) intermédiaire, également connue sous le nom de bastion, au sein de votre VPC. Il existe différentes méthodes pour exploiter cette VM intermédiaire et la transformer en une connexion sécurisée entre un environnement d'application externe et votre instance Cloud SQL.

  • Pour les environnements de production nécessitant une haute disponibilité, envisagez d'établir une connexion permanente entre le VPC et votre application via Cloud VPN ou Cloud Interconnect.

Les sections suivantes décrivent ces solutions.

Se connecter via une VM intermédiaire

Pour établir une connexion à une instance Cloud SQL depuis l'extérieur de son VPC à l'aide d'outils Open Source et un minimum de ressources supplémentaires, exécutez un service proxy sur une VM intermédiaire configurée dans ce VPC. Vous pouvez configurer une nouvelle VM ou utiliser une VM déjà en cours d'exécution dans le VPC de votre instance Cloud SQL.

En tant que solution autogérée, l'utilisation d'une VM intermédiaire coûte généralement moins cher et offre un temps de configuration plus rapide que l'utilisation d'un produit de connectivité réseau. Elle présente également des inconvénients : la disponibilité, la sécurité et le débit de la connexion dépendent tous de la VM intermédiaire, que vous devez gérer en tant que partie intégrante de votre projet.

Se connecter via IAP

À l'aide d'Identity-Aware Proxy (IAP), vous pouvez vous connecter de façon sécurisée à votre instance Cloud SQL sans avoir à exposer l'adresse IP interne de la VM intermédiaire. Vous pouvez utiliser une combinaison de règles de pare-feu et Identity and Access Management (IAM) pour limiter l'accès via cette route. IAP est donc une bonne solution pour les utilisations hors production telles que le développement et le prototypage.

Architecture Identity-Aware Proxy

Dans ce schéma, IAP sert de passerelle entre le client externe situé en dehors du VPC et la VM intermédiaire située dans le VPC. Le client crée un tunnel SSH vers le proxy IAP. Le proxy d'authentification Cloud SQL chiffre le trafic entre la VM et l'instance Cloud SQL. La communication est établie entre le client et l'instance par l'intermédiaire de ces deux proxys.

Pour configurer l'accès IAP à votre instance, procédez comme suit :

  1. Sur votre client externe, installez gcloud CLI.

  2. Sur la VM intermédiaire, téléchargez et installez le proxy d'authentification Cloud SQL.

  3. Sur la VM intermédiaire, démarrez le proxy d'authentification Cloud SQL.

    Étant donné que votre VM est configurée avec une adresse IP interne, vous devez indiquer l'option --private-ip lorsque vous démarrez le proxy d'authentification Cloud SQL.

  4. Dans votre projet Google Cloud, activez le transfert TCP d'IAP.

    Lors de la définition de la nouvelle règle de pare-feu, autorisez le trafic TCP entrant sur le port 22 (SSH). Si vous utilisez le réseau par défaut de votre projet avec sa règle default-allow-ssh pré-remplie activée, vous n'avez pas besoin de définir une règle supplémentaire.

  5. Configurez le transfert de port entre votre client externe et la VM intermédiaire à l'aide de SSH via IAP :

    gcloud compute ssh VM_NAME \
    --tunnel-through-iap \
    --zone=ZONE_NAME \
    --ssh-flag="-L 1433:localhost:1433"
    

    Effectuez les remplacements suivants :

    • VM_NAME: nom de la VM
    • ZONE_NAME: nom de la zone associée à la VM
  6. Sur votre client externe, testez votre connexion à l'aide d'un client SQL Server.

Se connecter via un proxy SOCKS

L'exécution d'un service SOCKS sur la VM intermédiaire offre une connexion flexible et évolutive à votre instance Cloud SQL, avec un chiffrement de bout en bout fourni par le proxy d'authentification Cloud SQL.

Pour en savoir plus sur l'utilisation d'un proxy SOCKS pour vous connecter à votre instance Cloud SQL, consultez la section Se connecter à l'aide d'un proxy intermédiaire (SOCKS5).

Se connecter via un regroupement de connexions

Si vous devez installer et exécuter le proxy d'authentification Cloud SQL sur la VM intermédiaire plutôt que sur un client externe, vous pouvez activer des connexions sécurisées en l'associant à un proxy compatible avec le protocole, également appelé regroupement de connexions. ADO.NET est une fonctionnalité de regroupement de connexions Open Source couramment utilisée pour SQL Server.

Dans cette solution, vous exécutez à la fois le proxy d'authentification Cloud SQL et le regroupement de connexions sur la VM intermédiaire. Votre client ou votre application peut ensuite se connecter directement au pool de façon sécurisée via SSL, sans avoir à exécuter de services supplémentaires. Le regroupement de connexions se charge de transmettre les requêtes PostgreSQL à votre instance Cloud SQL via le proxy d'authentification Cloud SQL.

Comme chaque instance Cloud SQL possède une adresse IP interne distincte, chaque service proxy ne peut communiquer qu'avec une instance spécifique : l'instance principale, l'instance de secours ou un pool de lecture. Par conséquent, pour chaque instance, vous devez exécuter un service de regroupement de connexions distinct avec un certificat SSL correctement configuré.

Se connecter via Cloud VPN ou Cloud Interconnect

Pour les tâches de production nécessitant une haute disponibilité, nous recommandons l'utilisation d'un produit de connectivité réseau Google Cloud, tel que Cloud VPN ou Cloud Interconnect, en fonction des besoins de votre service externe et de la topologie de votre réseau. Vous devrez ensuite configurer Cloud Router pour annoncer les routes appropriées.

Pour en savoir plus sur les solutions de connectivité réseau, consultez la page Choisir un produit de connectivité réseau.

Étapes suivantes