IP privada

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.

Descripción general

Cuando configuras una instancia de Cloud SQL para que use una IP privada, debes usar el acceso a servicios privados. El acceso privado a los servicios se implementa como una conexión de intercambio de tráfico de VPC entre tu red de VPC y la red de VPC de los servicios de Google subyacentes en la que reside la instancia de Cloud SQL. Aunque se pueden asignar varios rangos de IP, Google siempre asignará el rango de IP que se usa para la IP privada. El tráfico de la IP que usa el acceso privado a los servicios nunca se expone a la Internet pública. Por lo tanto, los vectores de ataque son limitados. La IP privada puede proporcionar una latencia de red menor que la IP pública.

Puedes usar el acceso privado a los servicios para conectarte a los siguientes recursos:

  • Recursos de Cloud SQL con acceso a una red de VPC

  • Recursos de Cloud SQL de fuentes externas a través de un túnel VPN o Cloud Interconnect hacia la red de VPC

Puedes conectarte mediante una IP privada desde cualquier región. También puedes conectarte mediante VPC compartidas entre proyectos.

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 crea una subred 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 se aprovisionan 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. Por ejemplo, las instancias de VM solo se pueden comunicar con las instancias de Cloud SQL que estén en la misma región. Para obtener más información, consulta la documentación del servicio correspondiente.
  • Se aplican costos de salida para el tráfico entre regiones, en el que una instancia de VM se comunica con recursos en 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.

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 esta API para el proyecto host.

  • Para administrar una conexión de acceso a servicios privados, el usuario debe tener los siguientes permisos de IAM. Si no cuentas con los permisos necesarios, puedes recibir 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 usuario al proyecto host y asignarle los mismos permisos al usuario en el proyecto host.

Problemas de red

Cloud SQL asigna una subred /24 desde el rango de IP de acceso privado a los servicios para cada combinación de región y tipo de base de datos. Por ejemplo, para colocar instancias de MySQL en dos regiones, el rango de direcciones IP asignado debe contener al menos dos subredes disponibles de tamaño /24, y la implementación de MySQL y PostgreSQL en dos regiones requiere cuatro subredes disponibles de tamaño /24. Las instancias de SQL Server pueden compartir la misma subred con instancias de MySQL en una región.

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 autenticación de Cloud SQL. Los rangos de direcciones que no son RFC 1918 deben configurarse como redes autorizadas.

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 autenticación de Cloud SQL 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”.

Descripción general de la configuración del acceso privado a servicios para la 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.

Referencia rápida de temas de IP privada

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 La dirección IP privada de la instancia de Cloud SQL es estática, es decir, no cambia.
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 autenticación de Cloud SQL Para conectarse 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 ambos tipos de IP habilitados, el proxy de autenticación de Cloud SQL usará la IP pública de forma predeterminada. Para asegurarse de que use una IP privada, el usuario debe pasar la marca -ip_address_types=PRIVATE al proxy de autenticación de Cloud SQL. Más información.
Acceso a VPC sin servidores Para conectarse desde una fuente sin servidores, como el Entorno estándar de App Engine, el Entorno flexible de App Engine, Cloud Run oCloud Functions, tu aplicación o función se conecta directamente a tu instancia a través del 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 Cloud Console. 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 N2 y N3, pero estas no están conectadas de forma directa, 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?