En esta página, se describe cómo conectarse a una instancia de Cloud SQL desde fuera de su nube privada virtual (VPC) configurada.
Antes de comenzar
Antes de comenzar, asegúrate de completar las siguientes acciones:
- Crear una instancia de Cloud SQL
- Configurar tu instancia para usar una dirección IP interna en lugar de una dirección IP externa
Acerca de las conexiones externas
Tu instancia de Cloud SQL consta de una cantidad de nodos dentro de una VPC administrada por Google. Cuando creas una instancia, también configuras el acceso privado a servicios o Private Service Connect entre una de tus VPC y la VPC administrada por Google que contiene tu nueva instancia. Esta conexión de intercambio de tráfico te permite usar direcciones IP internas para acceder a los recursos en la VPC de la instancia como si fueran parte de tu propia VPC.
En las siguientes situaciones, conéctate a tu instancia desde fuera de una VPC conectada:
Tu aplicación se ejecuta fuera de la VPC que usaste para conectarte a tu instancia mediante el acceso privado a servicios o Private Service Connect.
Tu aplicación se ejecuta en una VPC que existe fuera de la red de Google.
Tu aplicación se ejecuta en una máquina ubicada en otro lugar del Internet público.
En todos estos casos, debes configurar un servicio adicional para habilitar este tipo de conexión externa a la instancia de Cloud SQL.
Recomendamos las siguientes soluciones para realizar conexiones externas, según tus necesidades:
Para el desarrollo o el prototipado de proyectos, o para un entorno de producción de costo relativamente bajo, configura una máquina virtual (VM) intermediaria, también conocida como bastión, dentro de tu VPC. Existen varios métodos para trabajar con esta VM intermediaria a fin de transformarla en una conexión segura entre un entorno de aplicaciones externo y tu instancia de Cloud SQL.
Para entornos de producción que requieren alta disponibilidad, considera establecer una conexión permanente entre la VPC y tu aplicación a través de Cloud VPN o Cloud Interconnect.
En las siguientes secciones, se describen estas soluciones.
Conéctate a través de una VM intermediaria
Para establecer una conexión con una instancia de Cloud SQL desde fuera de su VPC mediante herramientas de código abierto y un mínimo de recursos adicionales, ejecuta un servicio de proxy en una VM intermediaria que se configure dentro de esa VPC. Puedes configurar una VM nueva o usar una VM que ya se esté ejecutando dentro de la VPC de tu instancia de Cloud SQL.
Como solución autoadministrada, el uso de una VM intermediaria suele costar menos y tiene un tiempo de configuración más rápido que usar un producto de Conectividad de red. También tiene desventajas: la disponibilidad, la seguridad y la capacidad de procesamiento de los datos de la conexión dependen de la VM intermediaria, que debes mantener como parte del proyecto.
Conéctate a través de IAP
Con Identity-Aware Proxy (IAP), puedes conectarte a tu instancia de Cloud SQL de forma segura sin necesidad de exponer la dirección IP interna de la VM intermediaria. Usa una combinación de reglas de firewall y Identity and Access Management (IAM) para limitar el acceso a través de esta ruta. Esto hace que IAP sea una buena solución para usos que no son de producción, como el desarrollo y el prototipado.
En este diagrama, IAP funciona como la puerta de enlace entre el cliente externo que está fuera de la VPC y la VM intermediaria que está en la VPC. El cliente crea un túnel SSH hacia IAP. El proxy de autenticación de Cloud SQL encripta el tráfico entre la VM y la instancia de Cloud SQL. A través de estos dos proxies, se establece la comunicación entre el cliente y la instancia.
Para configurar el acceso de IAP a tu instancia, sigue estos pasos:
En tu cliente externo, instala gcloud CLI.
En la VM intermediaria, descarga y, luego, instala el proxy de autenticación de Cloud SQL.
En la VM intermediaria, inicia el proxy de autenticación de Cloud SQL.
Debido a que tu VM está configurada con una dirección IP interna, cuando inicies el proxy de autenticación de Cloud SQL, debes proporcionar la opción
--private-ip
.En tu proyecto de Google Cloud, habilita el reenvío de TCP de IAP.
Cuando definas la regla de firewall nueva, permite el tráfico de TCP de entrada al puerto
22
(SSH). Si usas la red predeterminada de tu proyecto con su regladefault-allow-ssh
prepropagada habilitada, no debes definir una regla adicional.Configura la redirección de puertos entre tu cliente externo y la VM intermedia mediante SSH a través de IAP:
gcloud compute ssh VM_NAME \ --tunnel-through-iap \ --zone=ZONE_NAME \ --ssh-flag="-L 5432:localhost:5432"
Realiza los siguientes reemplazos:
- VM_NAME: El nombre de la VM
- ZONE_NAME: El nombre de la zona asociada con la VM
En tu cliente externo, prueba tu conexión con
psql
.
Conéctate a través de un proxy de SOCKS
Ejecutar un servicio SOCKS en la VM intermediaria proporciona una conexión flexible y escalable a tu instancia de Cloud SQL, con encriptación de extremo a extremo proporcionada por el proxy de autenticación de Cloud SQL.
Si deseas obtener más información sobre el uso de un proxy SOCKS para conectarte a tu instancia de Cloud SQL, consulta Conéctate con un proxy intermedio (SOCKS5).
Conéctate a través de un agrupador
Si necesitas instalar y ejecutar el proxy de autenticación de Cloud SQL en la VM intermediaria, en lugar de un cliente externo, puedes habilitar las conexiones seguras a él si lo sincronizas con un proxy adaptado al protocolo, también conocido como agrupador. Entre los agrupadores de código abierto populares para PostgreSQL se incluyen Pgpool-II y PgBouncer.
En esta solución, ejecutarás el proxy de autenticación de Cloud SQL y el agrupador en la VM intermediaria. Tu cliente o aplicación puede conectarse de forma segura directamente al agrupador a través de SSL, sin necesidad de ejecutar ningún servicio adicional. El agrupador se encarga de pasar consultas de PostgreSQL a tu instancia de Cloud SQL a través del proxy de autenticación de Cloud SQL.
Debido a que cada instancia de Cloud SQL tiene una dirección IP interna diferente, cada servicio de proxy puede comunicarse con una sola instancia específica: la instancia principal, la instancia en espera o un grupo de lectura. Por lo tanto, para cada instancia, debes ejecutar un servicio de agrupación por separado con un certificado SSL configurado de forma adecuada.
Conéctate a través de Cloud VPN o Cloud Interconnect
Para el trabajo de producción que requiere alta disponibilidad (HA), te recomendamos usar un producto de Conectividad de red de Google Cloud, como Cloud VPN o Cloud Interconnect, según las necesidades de tu servicio externo y la topología de red. Luego, configura Cloud Router para anunciar las rutas adecuadas.
Para obtener más información sobre las soluciones de Conectividad de red, consulta Elige un producto de Conectividad de red.
¿Qué sigue?
- Obtén más información sobre IP privada.
- Obtén más información sobre el acceso a los servicios privados y la conectividad local en las VPC administradas por Google.
- Obtén más información sobre cómo usar Private Service Connect para conectarte a una instancia de Cloud SQL.