Descripción general de las conexiones

En esta página, se proporciona un resumen de las opciones disponibles para conectarte a tu instancia de Cloud SQL.

Introducción

Usar el proxy de autenticación de Cloud SQL es el método recomendado para conectarse a una instancia de Cloud SQL. El proxy de autenticación de Cloud SQL

  • Funciona con extremos de IP pública y privada.
  • Valida las conexiones mediante credenciales para un usuario o una cuenta de servicio.
  • Une la conexión en una capa SSL/TLS autorizada para una instancia de Cloud SQL.

Algunos servicios y aplicaciones de Google Cloud proporcionan conexiones para las rutas de IP públicas con encriptación y autorización mediante el proxy de autenticación de Cloud SQL, que incluyen lo siguiente:

En el caso de las rutas de IP privadas, estos servicios y aplicaciones se conectan directamente a tu instancia a través del Acceso a VPC sin servidores.

Las aplicaciones que se ejecutan en Google Kubernetes Engine pueden conectarse mediante el proxy de autenticación de Cloud SQL.

Consulta la Guía de inicio rápido para usar el proxy de autenticación de Cloud SQL a fin de obtener una introducción básica al uso.

También puedes conectarte con o sin el proxy de autenticación de Cloud SQL mediante un cliente psql desde una máquina local o Compute Engine.

Descripción general

Cuando consideres cómo conectarte a tu instancia de Cloud SQL, debes tener en cuenta muchas opciones, incluidas las siguientes:

  • ¿Quieres que se pueda acceder a tu instancia de Cloud SQL desde Internet o mantenerla privada dentro de una red de nube privada virtual (VPC)?
  • ¿Planeas escribir tu propio código de conexión o conectarte mediante herramientas disponibles públicamente, como el proxy de autenticación de Cloud SQL o un cliente psql?
  • ¿Quieres solicitar encriptación mediante SSL/TLS o permitir el tráfico sin encriptar?

En las secciones que se muestran a continuación, analizaremos las opciones que Cloud SQL proporciona para conectar, autorizar y autenticar en tu base de datos.

  • Cómo conectarse: Se refiere a qué ruta de red usas para llegar a la instancia:
    • Una dirección IP interna, solo de VPC (privada).
    • Una dirección IP externa, accesible a través de Internet (Pública).

  • Cómo autenticar: Se refiere a qué conexiones están autorizadas y pueden conectarse a la instancia de Cloud SQL.
    • Conectores de lenguaje del proxy de autenticación de Cloud SQL y Cloud SQL: Estos proporcionan acceso en función de IAM.
    • Certificados SSL/TLS autoadministrados: Estos solo permiten conexiones basadas en claves públicas específicas.
    • Redes autorizadas: Una lista de direcciones IP permitidas para conectarse.

  • Cómo realizar la autenticación: El método para acceder a tu base de datos.
    • Autenticación nativa de la base de datos: Accede con un nombre de usuario/contraseña configurado en el motor de base de datos.
    • Autenticación de la base de datos IAM: Accede con un correo electrónico o con un token oauth2 como contraseña.

Usa la siguiente información para decidir qué opciones de conexión y autenticación te resultan más útiles.

Antes de comenzar

Si se otorga acceso a una aplicación, esto no significa que se habilite de forma automática una cuenta de usuario de base de datos para conectarse a la instancia. Antes de que puedas conectarte a una instancia, debes tener una cuenta de usuario de base de datos con la que te puedas conectar. Para instancias nuevas, debes tener configurada la cuenta de usuario predeterminada. Más información

Opciones de conexión

IP privada

Una IP privada es una dirección IPv4 o IPv6 a la que se puede acceder en una nube privada virtual (VPC).

Consideraciones de seguridad

Puedes usar esta dirección para conectarte desde otros recursos con acceso a la VPC. Las conexiones mediante IP privadas suelen proporcionar una latencia más baja y vectores de ataque limitados, ya que no requieren el desvío a Internet. De forma opcional, puedes solicitar que todas las conexiones usen el proxy de autenticación de Cloud SQL o los certificados SSL autoadministrados.

Es preferible configurar tu instancia con una IP privada cuando te conectas desde un cliente en un recurso con acceso a una VPC. Para obtener más información sobre qué recursos pueden usar una IP privada, consulta Requisitos de IP privada.

Más información

Obtén más información sobre el uso de IP privada con Cloud SQL.

Si deseas obtener instrucciones para agregar una IP privada a la instancia, consulta Configura la conectividad de IP privada.

IP pública

Una IP pública es una dirección IPv4 o IPv6 que está disponible de forma externa en la Internet pública. Esta dirección puede recibir conexiones de dispositivos dentro y fuera de la red de Google, incluso desde ubicaciones como una oficina o tu casa.

Consideraciones de seguridad

Para contribuir a la seguridad de tu instancia, cualquier conexión a una instancia de Cloud SQL mediante una IP pública debe autorizarse mediante el uso del proxy de autenticación de Cloud SQL o las redes autorizadas.

La configuración de tu instancia con una IP pública es mejor cuando te conectas desde un cliente que no cumple con los requisitos de una VPC.

Más información

Si deseas obtener instrucciones para agregar una IP pública a una instancia, consulta Configura la conectividad de IP pública.

Opciones de autorización

Conectores de Cloud SQL

Consideraciones de seguridad

El proxy de Cloud SQL te permite autorizar y proteger tus conexiones mediante los permisos de la administración de identidades y accesos (IAM). El proxy valida las conexiones mediante credenciales para un usuario o una cuenta de servicio, y une la conexión en una capa SSL/TLS autorizada para una instancia de Cloud SQL. Para obtener más información sobre cómo funciona el proxy de autenticación de Cloud SQL, consulta Acerca del proxy de autenticación de Cloud SQL.

El uso del proxy de autenticación de Cloud SQL es el método recomendado para autenticar conexiones a una instancia de Cloud SQL, ya que es el más seguro.

El proxy de autenticación de Cloud SQL es una biblioteca de código abierto que se distribuye como un objeto binario ejecutable. El proxy de autenticación de Cloud SQL actúa como un servidor intermediario que escucha las conexiones entrantes, las une en SSL/TLS y, luego, las pasa a una instancia de Cloud SQL.

Además, algunos lenguajes tienen la opción de usar una biblioteca cliente. Puedes usar estas bibliotecas directamente desde el entorno de lenguaje. Proporcionan la misma autenticación que el proxy de autenticación de Cloud SQL sin necesidad de un proceso externo. Para comenzar, consulta Conéctate mediante los conectores de Cloud SQL.

Algunos entornos proporcionan un mecanismo que se conecta mediante el proxy de autenticación de Cloud SQL. A fin de obtener instrucciones para conectarte mediante estos entornos, consulta una de las siguientes páginas:

Certificados SSL/TLS autoadministrados

En lugar de usar el proxy de autenticación de Cloud SQL para encriptar las conexiones, es posible configurar certificados SSL/TLS de cliente o servidor que sean específicos de una instancia de Cloud SQL. Estos certificados se usan para validar el cliente y el servidor entre sí, y encriptar las conexiones entre ellos.

Se recomienda usar certificados SSL/TLS autoadministrados para proporcionar encriptación cuando no se usa el proxy de autenticación de Cloud SQL. Si no lo haces, tus datos se transmiten de forma insegura, y un tercero podría interceptarlos o inspeccionarlos.

Para comenzar a usar los certificados SSL/TLS autoadministrados, consulta Autoriza con certificados SSL/TLS.

Redes autorizadas

A menos que uses el proxy de autenticación de Cloud SQL, las conexiones a la dirección IP pública de una instancia solo se permiten si la conexión proviene de una red autorizada. Las redes autorizadas son direcciones IP o rangos a los que el usuario especificó que tiene permiso para conectarse.

Para comenzar a usar las redes autorizadas, consulta Autoriza con redes autorizadas.

Administrar conexiones de bases de datos

Las conexiones de bases de datos consumen recursos en el servidor y en la aplicación de conexión. Usa siempre prácticas adecuadas de administración de conexión para minimizar el espacio de tu aplicación y reducir la posibilidad de superar los límites de conexión de Cloud SQL. Para obtener más información, consulta la página sobre cómo administrar conexiones de bases de datos.

Opciones de autenticación

La autenticación proporciona control de acceso mediante la verificación de la identidad de un usuario. Para los usuarios finales, la autenticación se logra cuando el usuario ingresa credenciales (nombre de usuario y contraseña). Para las aplicaciones, la autenticación se logra cuando se asignan las credenciales de un usuario a una cuenta de servicio.

Cloud SQL usa la autenticación integrada de la base de datos que se autentica con un nombre de usuario y una contraseña. Para obtener más información, consulta cómo crear y administrar usuarios de PostgreSQL.

Cloud SQL también está integrado con IAM para ayudarte a supervisar y administrar mejor el acceso a la base de datos de usuarios y las cuentas de servicio. Esta característica se llama autenticación de base de datos de IAM.

Obtén más información sobre la autenticación de bases de datos de IAM.

Obtén más información sobre cómo crear y administrar usuarios que usen la autenticación de la base de datos de IAM.

Herramientas para la conexión

En la siguiente tabla, se muestran algunas opciones para conectarse a Cloud SQL:

Opción de conexión Más información
Proxy de Cloud SQL Auth
gcloud
Conectores de lenguaje de Cloud SQL
Cloud Shell
Conéctate con herramientas de administración de bases de datos de terceros
pgAdmin
Toad Edge
Blendo

Conecta aplicaciones con direcciones IP asignadas de forma dinámica

Algunas aplicaciones necesitan conectarse a tu instancia de Cloud SQL con una dirección IP asignada de forma dinámica o efímera. Este es el caso de las aplicaciones de plataforma como servicio (PaaS), entre otras.

En estos casos, debes usar el proxy de autenticación de Cloud SQL.

Muestras de código

Puedes conectarte al proxy de autenticación de Cloud SQL desde cualquier lenguaje que permita conectarte a un socket Unix o TCP. A continuación, se incluyen algunos fragmentos de código de ejemplos completos en GitHub para ayudarte a comprender cómo funcionan juntos en tu aplicación.

Soluciona problemas

Si tienes problemas de conexión, revisa las siguientes páginas para obtener ayuda con la depuración o la solución de problemas conocidos:

¿Qué sigue?