Se connecter à l'aide d'un client psql

Vous pouvez vous connecter à Cloud SQL à l'aide du client de ligne de commande PostgreSQL. Cette page décrit comment connecter un client psql à votre instance Cloud SQL, qu'elle s'exécute localement sur votre machine cliente, sur une VM Compute Engine ou dans Cloud Shell.

Avant de commencer

Avant de pouvoir utiliser un client psql pour vous connecter à votre instance Cloud SQL, procédez comme suit :

Utiliser un client MySQL sur une machine locale ou une VM Compute Engine

L'utilisation d'un client psql pour se connecter à votre instance Cloud SQL implique trois tâches de premier niveau :

  1. Installer le client
  2. Configurer l'accès à l'instance Cloud SQL
  3. Se connecter à l'instance Cloud SQL

Installer le client

Pour installer le client psql, procédez comme suit :

Debian/Ubuntu

Installez le client psql à partir du gestionnaire de packages :

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

Installez le client psql à partir du gestionnaire de packages :

sudo yum install postgresql

openSUSE

Installez le client psql à partir du gestionnaire de packages :

sudo zypper install postgresql

Autres plates-formes

  1. Téléchargez PostgreSQL Core Distribution sur votre plate-forme depuis la page des téléchargements PostgreSQL.
    Core Distribution inclut le client psql.
  2. Installez la base de données PostgreSQL en suivant les instructions de la page de téléchargement.

Configurer l'accès à l'instance Cloud SQL

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

  1. À partir de la machine cliente ou de l'instance de VM Compute Engine, accédez à la page d'identification d'adresse IP pour afficher l'adresse IP de la machine cliente.
  2. Copiez cette adresse IP.
  3. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  4. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  5. Dans le menu de navigation SQL, sélectionnez Connexions.
  6. Sélectionnez l'onglet Mise en réseau.
  7. Dans la section Réseaux autorisés, cliquez sur Ajouter un réseau puis saisissez l'adresse IP de la machine sur laquelle le client est installé.
  8. Cliquez sur OK, puis sur Enregistrer en bas de la page pour enregistrer les modifications.
  9. Connectez-vous à l'instance, à l'aide de SSL/TLS ou sans chiffrement (sans SSL/TLS).

Se connecter à l'instance Cloud SQL sans chiffrement

Pour vous permettre de vous connecter sans chiffrement, le mode SSL doit être défini sur ALLOW_UNENCRYPTED_AND_ENCRYPTED sur l'instance. Dans la console Google Cloud, la configuration équivalente est Autoriser le trafic réseau non chiffré.

Pour en savoir plus sur la configuration SSL/TLS de votre instance, consultez la section Configurer des certificats SSL/TLS.

Pour vous connecter à votre instance, procédez comme suit :

  1. Vérifiez que vous avez installé le client et configuré l'accès à votre instance.
  2. Démarrez le client psql :
    psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
    
  3. Saisissez votre mot de passe.
  4. L'invite psql apparaît.

Connectez-vous à votre instance Cloud SQL à l'aide de SSL/TLS.

Pour vous connecter à votre instance à l'aide de SSL/TLS et de l'authentification intégrée, procédez comme suit:

  1. Démarrez le client psql :
    psql "sslmode=require \
          hostaddr=INSTANCE_IP_ADDRESS \
          user=postgres dbname=DB_NAME"
       

    Exemple :

    psql "sslmode=require \
          hostaddr=203.12.34.56 \
          user=postgres dbname=postgres"
       

    Vous voudrez peut-être également créer un fichier de service de connexion pour gérer vos paramètres de connexion, en particulier si vous vous connectez à plusieurs instances. Pour en savoir plus, consultez la documentation PostgreSQL.

  2. Saisissez le mot de passe. Le mot de passe est obligatoire pour Cloud SQL, même si PostgreSQL accepte la connectivité sans mot de passe avec SSL/TLS.
  3. Vous pouvez vérifier que la connexion est bien chiffrée en recherchant l'algorithme de chiffrement dans les informations de connexion :
    SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
    

Se connecter à l'instance Cloud SQL à l'aide de SSL/TLS et de la validation du certificat client

Si ssl_mode sur votre instance Cloud SQL est configuré sur TRUSTED_CLIENT_CERTIFICATE_REQUIRED, vous devez également fournir une identité de client validée lorsque vous vous connectez.

Pour vous connecter à l'aide de certificats SSL/TLS avec la validation du client, vous avez besoin des éléments suivants :

  • Un certificat de clé publique du client dans un fichier client-cert.pem
  • Une clé privée du client dans un fichier client-key.pem

En outre, pour permettre au client de valider l'identité du serveur pour l'authentification mutuelle, spécifiez le certificat de serveur server-ca.pem.

Par exemple, pour démarrer le client psql :
   psql "sslmode=verify-ca sslrootcert=server-ca.pem \
      sslcert=client-cert.pem sslkey=client-key.pem \
      hostaddr=INSTANCE_IP_ADDRESS \
      user=postgres dbname=DB_NAME"
   

Si vous ne disposez pas d'un certificat client et d'une clé privée correspondante, créez un certificat client.

Utiliser le client dans Cloud Shell

Pour vous connecter à une instance Cloud SQL (adresse IP publique uniquement), procédez comme suit :

  1. Accédez à Google Cloud Console.

    Accéder à Google Cloud Console

  2. Cliquez sur l'icône Cloud Shell  située à droite dans la barre d'outils.

    L'initialisation de Cloud Shell prend quelques instants.

  3. Lorsque Cloud Shell vous y invite, connectez-vous à l'instance Cloud SQL à l'aide du client intégré.
    gcloud sql connect INSTANCE_ID \
    --user=postgres
    
  4. Saisissez votre mot de passe.

La commande gcloud sql connect ne permet pas de se connecter à une instance Cloud SQL à l'aide d'une adresse IP privée, ni de SSL/TLS. Pour vous connecter avec un chiffrement, installez et utilisez le proxy dans Cloud Shell :

  1. Installez le proxy (Linux 64 bits) dans le répertoire /home/USER.
  2. Démarrez le proxy en utilisant l'authentification de gcloud CLI :

    ./cloud-sql-proxy INSTANCE_CONNECTION_NAME &

  3. Connectez-vous à la base de données à l'aide de la connexion TCP :

    psql -U USERNAME --host=127.0.0.1

Étapes suivantes

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud SQL en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de Cloud SQL