Información sobre el uso de IPs privadas

En esta página se ofrece información sobre el uso de IP privada con Cloud SQL. Para obtener instrucciones detalladas sobre cómo configurar una instancia de Cloud SQL para que use una IP privada, consulta Configurar una IP privada.

Para ver soluciones de Terraform para redes de Cloud SQL, consulta Soluciones de configuración de redes de Cloud simplificadas.

Información general

Para configurar una instancia de Cloud SQL de forma que use una IP privada, se necesita acceso privado a servicios. El acceso privado a los servicios te permite crear conexiones privadas entre tu red de VPC y la red de VPC del productor de servicios Google Cloud subyacente. Google Cloud Las entidades que ofrecen servicios, como Cloud SQL, se denominan productores de servicios. Cada servicio de Google Cloud crea una subred en la que aprovisionar recursos. El intervalo de direcciones IP de la subred suele ser un bloque CIDR /24 que elige el servicio y que procede del intervalo de direcciones IP asignado.

Las conexiones privadas permiten acceder a los servicios sin tener que pasar por Internet ni usar direcciones IP externas. Por este motivo, la IP privada ofrece una latencia de red menor que la IP pública.

Utiliza el acceso a servicios privados para conectarte a instancias de Cloud SQL:

Puedes conectarte a direcciones IP privadas de diferentes regiones. También puedes conectarte mediante una VPC compartida entre proyectos.

Intervalos de direcciones IP asignados

Para usar instancias de Cloud SQL en una red de VPC con IP privada, debes asignar intervalos de direcciones IP para configurar el acceso a servicios privados en esta VPC. Para organizar tus instancias de Cloud SQL, puedes asignar varios intervalos de direcciones IP a la conexión privada. Cuando configuras una instancia de Cloud SQL para una IP privada, puedes seleccionar tanto la red de VPC como el intervalo de direcciones IP asignado.

Tamaño del intervalo asignado

Debes asignar intervalos de direcciones IP lo suficientemente grandes para Cloud SQL y los demásGoogle Cloud servicios gestionados que quieras usar. Cloud SQL y cada servicio requieren bloques de IPs dedicados de los intervalos asignados. Google Cloud El tamaño mínimo es un bloque /24 (256 direcciones), pero el tamaño recomendado es un bloque /16 (65.536 direcciones).

Cuando asignas un intervalo de direcciones IP, debes tener en cuenta el número de instancias que tienes previsto crear.

Máscara de subred Direcciones Instancias de Cloud SQL utilizables
/2425650
/23512100
/221024200
/212048400
/204096800

Cuándo usar intervalos CIDR /24 independientes

Como Cloud SQL usa intervalos CIDR /24 como unidad de intervalo de IPs, hay varias situaciones en las que se necesitan intervalos /24 independientes.

  • Separación regional: si creas dos instancias de Cloud SQL en dos regiones independientes, debes asignar al menos dos intervalos CIDR /24 independientes. Cada unidad de intervalo de IPs solo se puede usar en instancias de Cloud SQL de una sola región.
  • Separación obligatoria de la arquitectura de red: las instancias que cree con la marca --enforce-new-network-architecture (o el campo de API equivalente) no pueden compartir la misma unidad de intervalo de IP con las instancias del mismo proyecto que usen la antigua arquitectura de red. Las instancias que crees con la nueva arquitectura de red requieren sus propios intervalos /24 dedicados en cada región.

Configurar el acceso privado a servicios para tu red

Cuando configures la conectividad de IP privada por primera vez en una red de VPC específica, tendrás que llevar a cabo un procedimiento único para configurar el acceso a servicios privados para Cloud SQL.

Una vez que hayas establecido el acceso a servicios privados, podrás crear una instancia de Cloud SQL configurada para usar una IP privada o configurar una IP privada para una instancia de Cloud SQL que ya tengas. Consulta las instrucciones paso a paso para configurar una IP privada.

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

Requisitos de la IP privada

Para usar IPs privadas, tu red y tu entorno de aplicación deben cumplir los siguientes requisitos. Además, para configurar la IP privada por primera vez, se necesitan permisos de gestión de identidades y accesos adicionales.

Requisitos del entorno de la aplicación

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

Requisitos de la API y de IAM

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

  • Para gestionar una conexión de acceso a servicios privados, tu usuario debe tener los siguientes permisos de gestión de identidades y accesos. Si el usuario no tiene los permisos necesarios, pueden aparecer errores de permisos insuficientes.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Si utilizas una red de VPC compartida, también debes añadir el mismo usuario y asignarle los mismos permisos en el proyecto del host.

Ejemplo

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

Diagrama de la configuración de IP privada.

  • A la conexión privada se le asigna el intervalo 10.240.0.0/16. A partir de esta asignación,los servicios pueden crear subredes en las que se aprovisionan nuevos recursos. Google Cloud
  • En el Google Cloud lado de los servicios de la conexión privada, Google Cloud crea un proyecto para el cliente. El proyecto está aislado, lo que significa que ningún otro cliente lo comparte y que al cliente solo se le factura por los recursos que aprovisiona.
  • Cada servicio de Google Cloud crea una subred en la que aprovisionar recursos. El intervalo de direcciones IP de la subred suele ser un /24 bloque CIDR elegido por el servicio y procede del intervalo de direcciones IP asignado. No puedes modificar la subred del productor de servicios. Un servicio aprovisiona nuevos recursos en subredes regionales que ya ha creado. Si una subred está llena, el servicio crea una nueva subred en la misma región.
  • Las instancias de VM de la red del cliente pueden acceder a los recursos de servicio de cualquier región si el servicio lo admite. Puede que algunos servicios no admitan la comunicación entre regiones. Consulta la documentación del servicio correspondiente para obtener más información.
  • Los costes de transferencia de datos saliente del tráfico entre regiones, en el que una instancia de VM se comunica con recursos de otra región, siguen aplicándose.
  • 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 el destino 10.240.0.2 se enrutan a la conexión privada a la red del productor de servicios. Una vez que la solicitud llega a la red de servicios, esta contiene rutas que dirigen la solicitud al recurso correcto.
  • El tráfico entre redes de VPC se desplaza internamente por la red de Google Cloud, no por la red pública de Internet.

Problemas de red

Cloud SQL asigna una subred /24 del intervalo de IPs de acceso privado a servicios a cada región. Por ejemplo, para colocar instancias de SQL Server en dos regiones, los intervalos de direcciones IP asignados deben incluir al menos dos subredes de tamaño /24 disponibles.

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

De forma predeterminada, Cloud SQL no aprende rutas de subredes que no sean RFC 1918 de tu VPC. Debes actualizar el peering de red a Cloud SQL para exportar las rutas que no sean RFC 1918.

Seguridad

El tráfico a través del acceso a servicios privados se proporciona con un determinado nivel de cifrado. Para obtener más información, consulta el artículo sobre el cifrado y la autenticación de la red virtual deGoogle Cloud.

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

Si tus requisitos de seguridad exigen que utilices certificados SSL/TLS autogestionados, consulta las instrucciones de Configurar SSL/TLS.

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

Conectividad de varias VPCs

Cloud SQL admite direcciones IP privadas a través del acceso a servicios privados. Cuando creas una instancia de Cloud SQL, Cloud SQL la crea en su propia nube privada virtual (VPC), llamada VPC de Cloud SQL. Para habilitar la IP privada, debes configurar una conexión de emparejamiento entre la VPC de Cloud SQL y tu red VPC. De esta forma, los recursos de tu red de VPC pueden acceder a las direcciones IP internas de tus recursos de Cloud SQL en la red de VPC de Cloud SQL.

Con el emparejamiento de redes de VPC, Cloud SQL implementa el acceso a servicios privados de forma interna, lo que permite que las direcciones IP internas se conecten a través de dos redes de VPC, independientemente de si pertenecen al mismo proyecto u organización. Sin embargo, como el emparejamiento de redes de VPC no es transitivo, solo difunde rutas entre las dos VPCs que están emparejadas directamente. Si tienes otra VPC, 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 VPCs mediante direcciones IP privadas, puedes usar las siguientes opciones de conexión:

  • Conectarse usando rutas anunciadas personalizadas
  • Conectarse mediante un proxy intermedio (SOCKS5)
  • Conectarse mediante el proxy de autenticación de Cloud SQL como servicio

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

Referencia rápida de temas sobre IP privada

Si gestionas instancias de Cloud SQL con IP privada, puede que te interesen los siguientes temas:

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 ya creada.
Regiones Puedes conectarte a través de una IP privada en diferentes regiones.
Redes antiguas No puedes conectarte a la IP privada de una instancia de Cloud SQL desde una red antigua. Las redes antiguas no admiten el acceso a servicios privados ni el emparejamiento entre redes de VPC.
Eliminar una IP privada Una vez que hayas configurado una instancia de Cloud SQL para que use una IP privada, no podrás quitarle esa función.
IP pública y privada Puedes usar tanto la IP pública como la 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 Puedes configurar una instancia para que use una IP privada en el momento de crearla. También puedes configurar una instancia para que use una IP privada. Si configuras una instancia para que use una IP privada o cambias la red a la que está conectada, la instancia se reiniciará, lo que provocará unos minutos de inactividad.
Direcciones IP estáticas En el caso de las direcciones IP públicas y privadas, la dirección entrante de la instancia de Cloud SQL es estática, no cambia. La dirección de salida no siempre es estática, excepto en el caso de las direcciones IP públicas de salida de las réplicas de servidores externos, que siempre son estáticas.
Réplicas Una réplica hereda el estado de IP privada de su 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 es necesario que crees una conexión privada de VPC adicional para la réplica, ya que también se hereda de la instancia principal.
Proxy de autenticación de Cloud SQL Para conectarte a una instancia de Cloud SQL mediante una IP privada, el proxy de autenticación de Cloud SQL debe estar en un recurso que tenga acceso a la misma red de VPC que la instancia. Si la instancia tiene habilitados ambos tipos de IP, el proxy de autenticación de Cloud SQL usará la IP pública de forma predeterminada. Para asegurarte de que usa una IP privada, debes pasar la marca -ip_address_types=PRIVATE al proxy de autenticación de Cloud SQL. Más información
Acceso a VPC sin servidor Para conectarte desde una fuente sin servidor, como el entorno estándar de App Engine, Cloud Run o Cloud Run functions, tu aplicación o función se conecta directamente a tu instancia a través del acceso a VPC sin servidor sin el proxy de autenticación de Cloud SQL.
Emparejamiento entre redes VPC Una conexión que usa el acceso a servicios privados se basa en el emparejamiento entre redes de VPC. Sin embargo, no creas el emparejamiento de redes de VPC de forma explícita, ya que el emparejamiento es interno a Google Cloud. Después de crear la conexión de acceso a servicios privados, puedes ver su emparejamiento entre redes VPC subyacente en la página Emparejamiento entre redes VPC de la consolaGoogle Cloud , pero no lo elimines a menos que quieras eliminar la conexión privada.

Más información sobre el emparejamiento entre redes de VPC

Controles de Servicio de VPC Controles de Servicio de VPC te permite mitigar el riesgo de filtración externa de datos. Con Controles de Servicio de VPC, puedes crear perímetros alrededor de la instancia de Cloud SQL. Controles de Servicio de VPC restringe el acceso a los recursos que se encuentran dentro del perímetro desde el exterior. Solo los clientes y los recursos que estén dentro del perímetro pueden interactuar entre sí. Para obtener más información, consulta la descripción general de Controles de Servicio de VPC. Consulta también las limitaciones de Cloud SQL al usar Controles de Servicio de VPC. Para usar Controles de Servicio de VPC con Cloud SQL, consulta Configurar Controles de Servicio de VPC.
Emparejamiento transitivo Solo las redes con emparejamiento directo pueden comunicarse. El emparejamiento transitivo no es compatible. Es decir, si la red de VPC N1 está emparejada con N2 y N3, pero N2 y N3 no están conectadas directamente, la red de VPC N2 no puede comunicarse con la red de VPC N3 a través del emparejamiento entre redes de VPC.

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

Mover instancias de Cloud SQL Las instancias de Cloud SQL solo se pueden mover entre redes propiedad del 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.

Siguientes pasos