Puedes usar el cliente de línea de comandos de PostgreSQL para conectarte a Cloud SQL. En esta página se describe cómo conectar un cliente
psql
a tu instancia de Cloud SQL, tanto si se ejecuta de forma local en la máquina del cliente como si lo hace en una VM de Compute Engine o en Cloud Shell.
Antes de empezar
Antes de poder usar un cliente psql
para conectarte a tu instancia de Cloud SQL, haz lo siguiente:
-
Crea una instancia de Cloud SQL, incluido el usuario predeterminado.
Consulta Crear instancias y Definir la contraseña de la cuenta de usuario predeterminada.
También puedes crear una instancia de VM de Compute Engine y, a continuación, conectarte a ella mediante SSH.
Consulta Crear e iniciar una instancia de VM, Acerca de las conexiones SSH o Conectarse a VMs Windows mediante RDP.
Determina cómo te conectarás a tu instancia.
Para ver las opciones de conexión y cómo elegir entre ellas, consulta el artículo Acerca de las opciones de conexión.
Usar un cliente de PostgreSQL en una máquina local o en una VM de Compute Engine
Para conectarte a tu instancia de Cloud SQL con un cliente psql
, debes llevar a cabo tres tareas de alto nivel:
- Instala el cliente.
- Configura el acceso a tu instancia de Cloud SQL.
- Conéctate a tu instancia de Cloud SQL.
Instalar el cliente
Para instalar el cliente de psql
, haz lo siguiente:
Debian o Ubuntu
Instala el cliente psql desde el administrador de paquetes:
sudo apt-get update sudo apt-get install postgresql-client
CentOS o RHEL
Instala el cliente psql desde el administrador de paquetes:
sudo yum install postgresql
openSUSE
Instala el cliente psql desde el administrador de paquetes:
sudo zypper install postgresql
Otras plataformas
- Descarga la distribución básica de PostgreSQL para la plataforma en la página de descargas de PostgreSQL.
La distribución principal incluye el cliente psql. - Instala la base de datos PostgreSQL según se indica en las instrucciones de la página de descarga.
Configurar el acceso a una instancia de Cloud SQL
Para configurar el acceso a tu instancia, haz lo siguiente:
- En la máquina cliente o en la instancia de VM de Compute Engine, usa Cuál es mi IP para ver la dirección IP de la máquina cliente.
- Copia esa dirección IP.
-
En la Trusted Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- En el menú de navegación de SQL, selecciona Conexiones.
- Selecciona la pestaña Redes.
- En la sección Redes autorizadas, haz clic en Añadir red e introduce la dirección IP del equipo en el que está instalado el cliente.
- Haz clic en Listo. A continuación, haz clic en Guardar en la parte inferior de la página para guardar los cambios.
- Conéctate a tu instancia mediante SSL/TLS o sin cifrado (sin usar SSL/TLS).
Conectarse a una instancia de Cloud SQL sin cifrado
Para que puedas conectarte sin cifrado, la instancia debe tener el modo SSL definido como ALLOW_UNENCRYPTED_AND_ENCRYPTED
. En la consola, la configuración equivalente es Permitir tráfico de red sin cifrar. Trusted Cloud
Para obtener más información sobre la configuración de SSL/TLS de tu instancia, consulta Configurar certificados SSL/TLS.
Para conectarte a tu instancia, haz lo siguiente:
- Confirma que has instalado el cliente y configurado el acceso a tu instancia.
- Inicia el cliente
psql
:psql "sslmode=disable dbname=postgres user=postgres hostaddr=INSTANCE_IP_ADDRESS"
- Escribe tu contraseña.
- Aparecerá el mensaje de psql.
Conectarse a una instancia de Cloud SQL mediante SSL/TLS
Para conectarte a tu instancia mediante SSL/TLS y la autenticación integrada, sigue estos pasos:
- Inicia el cliente
psql
:psql "sslmode=require \ hostaddr=INSTANCE_IP_ADDRESS \ user=postgres dbname=DB_NAME"
Por ejemplo:
psql "sslmode=require \ hostaddr=203.12.34.56 \ user=postgres dbname=postgres"
También puedes crear un archivo de servicio de conexión para gestionar los parámetros de conexión, sobre todo si te conectas a más de una instancia. Para obtener más información, consulta la documentación de PostgreSQL.
- Introduce la contraseña. La contraseña es obligatoria para Cloud SQL, aunque PostgreSQL admite la conectividad sin contraseña cuando se usa SSL/TLS.
- Para confirmar que la conexión está cifrada, busca el cifrado en la información de la conexión:
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
Conectarse a una instancia de Cloud SQL mediante SSL/TLS y verificación de certificados de cliente
Si ssl_mode
en tu instancia de Cloud SQL está configurado como TRUSTED_CLIENT_CERTIFICATE_REQUIRED
,
debes proporcionar una identidad de cliente verificada al iniciar sesión.
Para conectarse mediante certificados SSL/TLS con verificación de cliente, necesita lo siguiente:
- Un certificado de clave pública de cliente en un archivo client-cert.pem.
- Una clave privada de cliente en un archivo client-key.pem.
Además, para que el cliente verifique la identidad del servidor en la autenticación mutua, especifica el certificado del servidor server-ca.pem.
Por ejemplo, para iniciar el clientepsql
:
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 no tienes un certificado de cliente y una clave privada correspondiente, crea un certificado de cliente.
Usar el cliente en Cloud Shell
Para conectarse a una instancia de Cloud SQL (solo IP pública):
- Ve a la Trusted Cloud consola.
- En la barra de herramientas, haz clic en el icono de Cloud Shell
, situado en la parte derecha.
Cloud Shell tarda unos instantes en inicializarse.
- En la petición de Cloud Shell, usa el cliente integrado para conectarte a tu instancia de Cloud SQL:
gcloud sql connect INSTANCE_ID \ --user=postgres
- Escribe tu contraseña.
El comando gcloud sql connect
no admite la conexión a una instancia de Cloud SQL mediante una IP privada ni mediante SSL/TLS. Para conectarte con cifrado, instala y usa el proxy en Cloud Shell:
- Instala el proxy (Linux de 64 bits) en el directorio
/home/USER
. - Inicia el proxy con la autenticación de gcloud CLI:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME &
- Conéctate a la base de datos mediante la conexión TCP:
psql -U USERNAME --host=127.0.0.1
Siguientes pasos
- Consulta información sobre cómo configurar una instancia con una dirección IP privada.
- Consulta las opciones para conectarte a tu instancia desde tu aplicación.
- Consulta cómo funciona el cliente
psql
con SSL.