Más información sobre el uso de IP privadas

En esta página, se proporciona información sobre el uso de IP privadas con Cloud SQL. Si deseas obtener instrucciones paso a paso para configurar una instancia de Cloud SQL a fin de usar una IP privada, consulta Configura una IP privada.

A fin de obtener soluciones de Terraform para herramientas de redes de Cloud SQL, consulta Soluciones de Herramientas de redes simplificadas.

Descripción general

La configuración de una instancia de Cloud SQL para usar una IP privada requiere el acceso privado a los servicios. El acceso privado a los servicios te permite crear conexiones privadas entre tu red de VPC y la red de VPC subyacente del productor de servicios de Google. Las entidades de Google que ofrecen servicios, como Cloud SQL, se denominan productores de servicios. Cada servicio de Google crea una subred en la que aprovisionar recursos. Por lo general, el rango de direcciones IP de la subred es un bloque CIDR /24 que elige el servicio y proviene del rango de direcciones IP asignadas.

Las conexiones privadas hacen que los servicios sean accesibles sin pasar por Internet o usar direcciones IP externas. Por esta razón, la IP privada proporciona una latencia de red menor que la IP pública.

Usa el acceso privado a servicios para conectarte a instancias de Cloud SQL:

Puedes conectarte mediante direcciones IP privadas en todas las regiones. También puedes conectarte mediante una VPC compartida entre proyectos.

Rangos de direcciones IP asignadas

Si quieres usar instancias de Cloud SQL en una red de VPC con IP privada, debes asignar rangos de direcciones IP a fin de configurar el acceso privado a servicios para esta VPC. Para organizar tus instancias de Cloud SQL, es posible que desees asignar varios rangos de direcciones IP a la conexión privada. Cuando configuras una instancia de Cloud SQL para una IP privada, puedes seleccionar la red de VPC y el rango de direcciones IP asignado.

Tamaño del rango asignado

Asigna rangos de IP lo suficientemente grandes para Cloud SQL y otros servicios administrados de Google que planeas usar, cada uno de los cuales requerirá bloques de IP dedicados de los rangos asignados. El tamaño mínimo es un bloque único de /24 (256 direcciones), pero el tamaño recomendado es un bloque /16 (65,536 direcciones).

Cuando asignas un rango de direcciones IP, debes tener en cuenta la cantidad de instancias que planeas crear.

Máscara de subred Direcciones Instancias de Cloud SQL utilizables
/2425650
/23512100
/221024200
/212,048400
/204,096800

Cloud SQL usa rangos CIDR /24 como una unidad de rango, y cada unidad solo se puede usar para instancias de Cloud SQL en una sola región. Por ejemplo, si creas dos instancias de Cloud SQL, pero para dos regiones diferentes, debe haber al menos dos rangos de CIDR de /24.

Además, si un proyecto comenzó a usar Cloud SQL antes del 1 de abril de 2021, las instancias de Postgres no pueden compartir la misma unidad de rango con instancias de MySQL y SQL Server, y necesitan una propia en cada región. Los proyectos más nuevos no están sujetos a esta limitación.

Configura el acceso privado a servicios para tu red

La primera vez que configuras la conectividad de IP privada en una red de VPC específica, debes realizar un procedimiento por única vez a fin de configurar el acceso privado a servicios para Cloud SQL.

Después de establecer el acceso privado a los servicios, puedes crear una instancia de Cloud SQL que esté configurada para usar una IP privada, o bien puedes configurar el uso de IP privada en una instancia de Cloud SQL existente. Consulta Configura una IP privada para obtener instrucciones paso a paso.

Cada vez que cambies una conexión establecida, también deberás actualizar vpc-peerings.

Requisitos para una IP privada

Para usar una IP privada, tu red y el entorno de aplicaciones deben cumplir con los siguientes requisitos. Además, si deseas configurar una IP privada por primera vez, se requieren permisos adicionales de IAM.

Requisitos del entorno de aplicaciones

  • Si te conectas desde GKE, debes ejecutar la versión GKE 1.8, o una superior, en un clúster nativo de VPC.

Requisitos de API y de IAM

  • Debes habilitar la API de Service Networking para tu proyecto.
  • Si usas una red de VPC compartida, también debes habilitar la API de Herramientas de redes de servicios en el proyecto host.

  • Para administrar una conexión de acceso a servicios privados, tu usuario debe tener los siguientes permisos de IAM. Si el usuario no tiene los permisos necesarios, puedes obtener errores de permisos insuficientes.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Si usas una red de VPC compartida, también debes agregar el mismo usuario y asignar los mismos permisos en el proyecto host.

Ejemplo

En el siguiente ejemplo, la red de VPC del cliente asignó el rango de direcciones 10.240.0.0/16 para los servicios de Google y estableció una conexión privada que usa el rango asignado. Cada servicio de Google (por ejemplo, Cloud SQL) crea una subred a partir del bloque asignado para aprovisionar recursos nuevos en una región determinada, como las instancias de Cloud SQL.

Diagrama de descripción general de la configuración de IP privada

  • Se asigna el rango 10.240.0.0/16 a la conexión privada. A partir de esta asignación, los servicios de Google pueden crear subredes en las que se aprovisionan recursos nuevos.
  • Del lado de los servicios de Google de la conexión privada, Google crea un proyecto para el cliente. El proyecto está aislado, lo que significa que no se comparte con ningún otro cliente y al cliente solo se le facturan los recursos con los que se aprovisionó.
  • Cada servicio de Google crea una subred en la que aprovisionar recursos. Por lo general, el rango de direcciones IP de la subred es un bloque CIDR /24 que elige el servicio y proviene del rango de direcciones IP asignadas. No puedes modificar la subred del productor de servicios. Un servicio aprovisiona recursos nuevos en subredes regionales existentes que ese servicio creó antes. Si una subred está llena, el servicio crea una subred nueva en la misma región.
  • Las instancias de VM en la red del cliente pueden acceder a los recursos de servicio en cualquier región si el servicio lo admite. Es posible que algunos servicios no admitan la comunicación entre regiones. Para obtener más información, consulta la documentación del servicio correspondiente.
  • Se siguen aplicando costos de transferencia de datos salientes para el tráfico entre regiones, en el que una instancia de VM se comunica con recursos de una región diferente.
  • A la instancia de Cloud SQL se le asigna la dirección IP 10.240.0.2. En la red de VPC del cliente, las solicitudes con un destino de 10.240.0.2 se enrutan a la conexión privada a la red del productor del servicio. Después de que se accede a la red de servicio, esta contiene rutas que dirigen la solicitud al recurso correcto.
  • El tráfico entre redes de VPC fluye de forma interna dentro de la red de Google, no a través de la Internet pública.

Problemas de red

Cloud SQL asigna una subred /24 desde el rango de IP de acceso privado a los servicios para cada región. Por ejemplo, para colocar instancias de MySQL en dos regiones, se requiere que el rango de direcciones IP asignado incluya al menos dos subredes disponibles de tamaño /24.

Las conexiones a una instancia de Cloud SQL mediante una dirección IP privada se autorizan de forma automática para los rangos de direcciones RFC 1918. De esta manera, todos los clientes privados pueden acceder a la base de datos sin pasar por el proxy de Cloud SQL Auth.

De forma predeterminada, Cloud SQL no procesa rutas de subred de tu VPC que no son RFC 1918. Debes actualizar el intercambio de tráfico entre redes a Cloud SQL para exportar cualquier ruta que no sea RFC 1918.

Seguridad

El tráfico mediante el acceso privado a los servicios se proporciona con un cierto nivel de encriptación. Para obtener más información, consulta Autenticación y encriptación de redes virtuales de Google Cloud.

El proxy de Cloud SQL Auth se puede configurar para conectarse mediante una IP privada y proporciona autenticación mediante credenciales de IAM y encriptación de extremo a extremo con un certificado SSL/TLS que se puede rotar.

Si tus requisitos de seguridad exigen certificados SSL/TLS autoadministrados, consulta las instrucciones que se proporcionan en Configura SSL/TLS.

Crear una red de VPC para cada instancia con una dirección IP privada proporciona un mejor aislamiento de red que colocar todas las instancias en la red de VPC “predeterminada”.

Conectividad de VPC múltiples

Cloud SQL admite direcciones IP privadas a través del acceso privado a servicios. Cuando creas una instancia de Cloud SQL, Cloud SQL crea la instancia dentro de su propia nube privada virtual (VPC), llamada VPC de Cloud SQL. Para habilitar una IP privada, debes configurar una conexión de intercambio de tráfico entre la VPC de Cloud SQL y tu red de VPC. Esto permite que los recursos de la red de VPC accedan a las direcciones IP internas de tus recursos de Cloud SQL en la red de VPC de Cloud SQL.

Mediante el Intercambio de tráfico entre redes de VPC, Cloud SQL implementa el acceso privado a servicios de forma interna, lo que permite que las direcciones IP internas se conecten entre dos redes de VPC, sin importar si pertenecen al mismo proyecto u organización. Sin embargo, debido a que el intercambio de tráfico entre redes de VPC no es transitivo, solo transmite las rutas entre las dos VPC que intercambian tráfico de forma directa. Si tienes una VPC adicional, no podrá acceder a tus recursos de Cloud SQL mediante la conexión configurada con tu VPC original.

Para mitigar esta limitación y conectar tu instancia de Cloud SQL a varias VPC mediante direcciones IP privadas, puedes usar las siguientes opciones de conexión:

  • Conéctate con rutas anunciadas personalizadas
  • Conéctate con un proxy intermedio (SOCKS5)
  • Conéctate con el proxy como servicio de Cloud SQL Auth

Para obtener más información sobre cómo conectar varias VPC, consulta Conecta tu instancia a varias VPC.

Referencia rápida de temas sobre IP privadas

Si administras instancias de Cloud SQL mediante una IP privada, es posible que alguno de los siguientes temas te interese:

Tema Debate
Redes de VPC compartidas Puedes crear instancias de Cloud SQL con direcciones IP privadas en una red de VPC compartida. Sin embargo, no puedes asignar una dirección IP privada en una red de VPC compartida a una instancia de Cloud SQL existente.
Regiones Puedes conectarte mediante una IP privada en todas las regiones.
Redes heredadas No puedes conectarte a la IP privada de una instancia de Cloud SQL desde una red heredada. Las redes heredadas no admiten el intercambio de tráfico entre redes de VPC ni el acceso privado a los servicios.
Quita una IP privada Después de configurar una instancia de Cloud SQL para que use una IP privada, no puedes quitar la capacidad de IP privada de esa instancia.
IP pública y privada Puedes usar una IP pública y una privada para conectarte a la misma instancia de Cloud SQL. Ninguno de los métodos de conexión afecta al otro.
Instancias de Cloud SQL existentes Puedes configurar una instancia en el momento de su creación para que use una IP privada. También puedes configurar una instancia existente para que use una IP privada. Cuando se configura una instancia existente para usar una IP privada o cuando se cambia la red a la que está conectada, la instancia se reinicia, lo que genera un tiempo de inactividad.
Direcciones IP estáticas Para las direcciones IP privadas y públicas, la dirección entrante de la instancia de Cloud SQL es estática: no cambia. La dirección saliente no siempre es estática, excepto las direcciones IP públicas salientes de las réplicas de servidores externos, que siempre son estáticas.
Réplicas Una réplica hereda el estado de una IP privada de la instancia principal. No puedes configurar una IP privada directamente en una réplica. Si te conectas a una réplica mediante una dirección IP privada, no necesitas crear una conexión privada de VPC adicional para la réplica, ya que se hereda de la instancia principal.
El proxy de Cloud SQL Auth Para conectarse a una instancia de Cloud SQL mediante una IP privada, el proxy de Cloud SQL Auth debe estar en un recurso que tenga acceso a la misma red de VPC que la instancia. Si la instancia tiene ambos tipos de IP habilitados, el proxy de Cloud SQL Auth usará la IP pública de forma predeterminada. Para asegurarte de que use la IP privada, debes pasar la marca -ip_address_types=PRIVATE al proxy de Cloud SQL Auth. Más información.
Acceso a VPC sin servidores Para conectarse desde una fuente sin servidor, como el Entorno estándar de App Engine, Cloud Run o las funciones de Cloud Run, la aplicación o función se conecta directamente a la instancia a través Acceso a VPC sin servidores sin el proxy de Cloud SQL Auth.
Intercambio de tráfico entre redes de VPC Una conexión que usa acceso privado a los servicios depende de un intercambio de tráfico entre redes de VPC. Sin embargo, el intercambio de tráfico entre redes de VPC no se crea de forma explícita, ya que es una función interna de Google Cloud. Después de crear la conexión de acceso privado a los servicios, podrás ver su intercambio de tráfico entre redes de VPC subyacente en la página Intercambio de tráfico entre redes de VPC, en la consola de Google Cloud. No lo borres, a menos que quieras quitar la conexión privada.

Obtén más información sobre el intercambio de tráfico entre redes de VPC.

Controles del servicio de VPC Los Controles del servicio de VPC mejoran la capacidad de mitigar el riesgo de robo de datos. Con los Controles del servicio de VPC, puedes crear perímetros alrededor de la instancia de Cloud SQL. Los Controles del servicio de VPC restringen el acceso desde el exterior a los recursos que están dentro del perímetro. Solo los clientes y los recursos que se encuentran dentro del perímetro pueden interactuar entre sí. Para obtener más información, consulta la Descripción general de los Controles del servicio de VPC. También revisa las limitaciones de Cloud SQL cuando se usan los Controles del servicio de VPC. Para usar los Controles del servicio de VPC con Cloud SQL, consulta Configura los Controles del servicio de VPC.
Intercambio de tráfico transitivo Solo las redes de intercambio de tráfico directo pueden comunicarse. No se admite el intercambio de tráfico transitivo. En otras palabras, si la red de VPC N1 intercambia tráfico con las redes N2 y N3, pero estas no están conectadas directamente, la red de VPC N2 no se podrá comunicar con la red de VPC N3 mediante el Intercambio de tráfico entre redes de VPC.

Los clientes de un proyecto pueden conectarse a instancias de Cloud SQL en varios proyectos mediante las redes de VPC compartidas.

Mueve instancias de Cloud SQL Las instancias de Cloud SQL solo se pueden mover entre redes que pertenecen al proyecto en el que residen. Además, las instancias de Cloud SQL no se pueden mover entre proyectos ni entre redes alojadas en proyectos diferentes.

¿Qué sigue?