Se connecter à Cloud SQL: adresse IP publique et réseaux autorisés

1. Introduction

Dernière mise à jour:04/05/2020

Réfléchir à la connexion

Il existe de nombreux types d'applications et de frameworks. Dans cet atelier de programmation, nous allons aborder la connexion à Cloud SQL depuis n'importe où. La possibilité de se connecter est activée en autorisant explicitement les adresses IP autorisées à se connecter. C'est sans doute l'option la moins sécurisée pour se connecter à une base de données Cloud SQL, mais c'est aussi l'option la plus simple à configurer et à utiliser.

Cela est parfois nécessaire en production, mais si vous pouvez éviter cela, il est préférable d'opter pour une alternative plus sécurisée (par exemple, en utilisant le proxy Cloud SQL). Cette configuration est particulièrement adaptée au développement et aux tests.

Objectifs de l'atelier

Cet atelier de programmation est très minimaliste. L'idée est de vous présenter les rouages du composant de connexion, sans trop penser à l'application elle-même. Dans un monde parfait, la connexion à Cloud SQL est semblable à la connexion à n'importe quelle autre instance d'une base de données SQL. Vous devriez donc pouvoir utiliser ce que vous avez créé dans cet atelier de programmation et l'appliquer à n'importe quelle application de production.

Les instructions comprendront une présentation de ce que vous pouvez faire dans la console GCP, ainsi que les commandes gcloud équivalentes à utiliser dans la CLI ou l'automatisation.

Les étapes individuelles sont les suivantes:

  • Créez une instance Cloud SQL (ce tutoriel utilise Postgres, mais fonctionne de la même manière pour MySQL et SQL Server) et autorisez des adresses IP spécifiques autorisées à s'y connecter.

Prérequis

  • Un compte GCP pour lequel vous disposez des autorisations nécessaires pour activer des API et créer des services
  • Le client Postgres installé pour vérifier la connectivité (ou le client MySQL si vous souhaitez utiliser MySQL au lieu de Postgres)

2. Créer l'instance Cloud SQL

Cloud SQL est notre offre de bases de données relationnelles gérées. Il est compatible avec MySQL, PostgreSQL et SQL Server. Pour cet atelier de programmation, nous allons créer une base de données Postgres, mais les instructions sont similaires pour les trois.

Dans la console

Accédez à la page Cloud SQL, puis cliquez sur le bouton 241836b315e11bf5.png.

Comme je l'ai indiqué, la majeure partie de cet atelier de programmation est générique pour tous les types de code SQL, mais pour cet atelier, choisissez PostgreSQL.

  1. Attribuer un ID à votre instance
  2. Choisissez une région proche de l'endroit où vous vous trouvez
  3. Saisissez un mot de passe pour l'utilisateur par défaut (le nom d'utilisateur sera défini par défaut pour la base de données sélectionnée, par exemple root pour MySQL ou postgres pour PostgreSQL)
  4. Faites défiler la page vers le bas, puis cliquez sur show configuration options.
  5. Développer la section Connectivity
  6. Vérifiez que la case Public IP est cochée et que la case Private IP n'est pas cochée
  7. Cliquez sur le bouton 883b32ec2734de01.png.
  8. Obtenez l'adresse IP à partir de laquelle vous vous connectez. Le plus simple est de rechercher "Quelle est mon adresse IP" sur Google ? et que les résultats de la recherche contiennent votre adresse IP publique.
  1. Saisissez la spécification IP dans le champ "network" (réseau), attribuez-lui un nom si vous le souhaitez, puis cliquez sur "Done" (OK) dans le champ New Network.
  2. Faites défiler vers le bas et cliquez sur Créer

Le démarrage de l'instance prend généralement quelques minutes.

Une fois l'instance créée, cliquez dessus dans la liste, puis copiez la valeur public IP address indiquée sur la page de présentation, sous l'en-tête Connect to this instance. Elle n'y sera visible qu'une fois l'instance entièrement créée, même si vous pouvez cliquer sur les détails avant qu'elle ne soit complètement instanciée.

Utiliser gcloud

Tout d'abord, vous devez récupérer l'adresse IP que vous souhaitez autoriser à vous connecter à l'instance Cloud SQL. Pour ce faire, le plus simple est d'ouvrir un navigateur et de rechercher "Quelle est mon adresse IP" ? et que les résultats de la recherche aient votre adresse IP publique. Toutefois, si vous n'êtes pas en mesure d'ouvrir un navigateur à partir de là où vous effectuez cette opération, vous pouvez utiliser un utilitaire comme dig.

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

Vous devrez spécifier la région la plus proche de votre emplacement pour votre instance Cloud SQL. Vous pouvez afficher la liste des régions en exécutant la commande suivante:

gcloud sql tiers list

Chaque niveau n'est disponible que dans certaines régions. Pour la partie du tutoriel consacrée à gcloud, nous allons simplement créer une micro-instance. Vous pouvez donc trouver les régions de ce niveau disponibles en exécutant spécifiquement cette commande (à condition d'avoir installé la commande grep):

gcloud sql tiers list | grep db-f1-micro

La commande permettant de créer l'instance se présente comme suit (n'oubliez pas de remplacer <AUTHORIZED_IP> par l'adresse IP que vous avez obtenue dans le navigateur ou via dig, et <REGION> par une adresse proche de vous, et un mot de passe pour l'utilisateur racine "postgres"):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

Cette opération prend quelques minutes.

Une fois l'opération terminée, le PRIMARY_ADDRESS de l'instance s'affiche dans le résultat de la CLI. Copiez-le pour l'étape suivante.

3. Tester la connexion et conclure

Pour vérifier que l'instance a été correctement configurée, exécutez la ligne de commande suivante à partir de la machine dont vous avez saisi l'adresse IP:

psql "host=<adresse IP copiée de l'étape précédente> port=5432 sslmode=disable user=postgres"

Indiquez ensuite le mot de passe utilisateur par défaut que vous avez défini lors de la création de l'instance Cloud SQL.

Félicitations ! Si tout s'est déroulé comme prévu, l'invite Postgres doit être affichée et vous pouvez exécuter des commandes sur votre base de données.

Et ensuite ?

Découvrez quelques-uns des ateliers de programmation...

Documents de référence