Configura la conectividad de IP pública

En esta página, se describe cómo configurar la conectividad de IP pública para una instancia de Cloud SQL.

Introducción

Puedes configurar tu instancia de Cloud SQL para que tenga una dirección IPv4 pública y acepte conexiones de direcciones IP específicas o de un rango de direcciones si agregas direcciones autorizadas a tu instancia.

No puedes especificar una red privada (por ejemplo, 10.x.x.x) como red autorizada.

Direcciones IP públicas para instancias de MySQL:

  • IPv6: Las instancias no admiten IPv6.
  • IPv4: Las instancias tienen una dirección IPv4 estática que se les asigna automáticamente. Se realiza un cobro menor por la dirección IP cada vez que se apaga tu instancia (se desactiva).

Para aprender a conectar un cliente de administración a tu instancia mediante una conexión IP, consulta Conecta el cliente MySQL con direcciones IP.

Si configuras tu instancia para que acepte conexiones mediante su dirección IP pública, configúrala también para que use SSL a fin de proteger tus datos. Si deseas obtener más información, consulta Configura SSL para instancias.

Para configurar tu instancia con una dirección IP que no esté expuesta a la Internet pública, consulta Configura la conectividad de IP privada.

Habilita la IP pública y agrega una dirección o rango de direcciones autorizadas

Cuando habilitas una IP pública para tu instancia, Cloud SQL la configura con una dirección IPv4 estática y pública. Después de habilitar la IP pública, debes configurar la autorización para las conexiones de la base de datos. Consulta las Opciones de autorización para obtener más información.

Para habilitar una IP pública y agregar una dirección autorizada, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haz clic en el nombre de la instancia para abrir la página Descripción general de esa instancia.
  3. Selecciona Conexiones en el menú de navegación de SQL.
  4. Selecciona la casilla de verificación IP pública.
  5. Haz clic en Agregar red.
  6. En el campo Red, ingresa la dirección o rango de direcciones IP para las cuales quieres permitir las conexiones.

    Usa la notación CIDR.

  7. Puedes ingresar un nombre para esta entrada.
  8. Haz clic en Listo.
  9. Haz clic en Guardar para actualizar la instancia.

gcloud

  1. Si aún no lo hiciste, agrega una dirección IPv4 a la instancia:
    gcloud sql instances patch INSTANCE_NAME\
    --assign-ip
    
  2. Muestra todas las direcciones autorizadas existentes mediante la descripción de la instancia:
    gcloud sql instances describe INSTANCE_NAME
    

    Busca entradas de authorizedNetwork en ipConfiguration y anota las direcciones autorizadas que deseas conservar.

  3. Actualiza la lista de redes autorizadas con las direcciones que deseas incluir.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...
    

    Usa la notación CIDR.

  4. Confirma tus cambios:
    gcloud sql instances describe INSTANCE_NAME
    

REST v1

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia con todas las direcciones que deseas configurar en ella:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • network_range_1: Un rango o una dirección IP autorizados
    • network_range_2: Otro rango o dirección IP autorizados

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": network_range_2"}]
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Usa la notación CIDR.

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia con todas las direcciones que deseas configurar en ella:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • network_range_1: Un rango o una dirección IP autorizados
    • network_range_2: Otro rango o dirección IP autorizados

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": network_range_2"}]
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

    Usa la notación CIDR.

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Quita una dirección o rango de direcciones autorizadas

Para quitar una dirección autorizada, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haz clic en el nombre de la instancia para abrir la página Descripción general de esa instancia.
  3. Selecciona Conexiones en el menú de navegación de SQL.
  4. Haz clic en el ícono de borrar Borrar para la dirección que deseas borrar.
  5. Haz clic en Guardar para actualizar la instancia.

gcloud

  1. Describe la instancia para que muestre todas las direcciones autorizadas existentes:
    gcloud sql instances describe INSTANCE_NAME
    

    Busca entradas de authorizedNetwork en ipConfiguration y anota las direcciones autorizadas que deseas conservar.

  2. Actualiza la lista de redes autorizadas y descarta las direcciones que deseas quitar.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...
    
  3. Confirma tus cambios:
    gcloud sql instances describe INSTANCE_NAME
    

REST v1

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Para actualizar la instancia, incluye todas las direcciones que deseas conservar y descarta las direcciones que quieras quitar:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • network_range_1: La dirección IP autorizada o el rango de red autorizado que se quitará

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address: El formulario de CIDR de la dirección IP
    • ip-address-name: El nombre de la dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Para actualizar la instancia, incluye todas las direcciones que deseas conservar y descarta las direcciones que quieras quitar:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • network_range_1: La dirección IP autorizada o el rango de red autorizado que se quitará

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address: El formulario de CIDR de la dirección IP
    • ip-address-name: El nombre de la dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Configura una instancia para que rechace todas las conexiones de IP públicas

Para configurar una instancia de forma que rechace todas las conexiones de IP públicas, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haz clic en el nombre de la instancia para abrir la página Descripción general de esa instancia.
  3. Selecciona Conexiones en el menú de navegación de SQL.
  4. Haz clic en el ícono de borrar Borrar para todas las direcciones autorizadas.
  5. Haz clic en Guardar para actualizar la instancia.

gcloud

  1. Borra la lista de direcciones autorizadas:
    gcloud sql instances patch INSTANCE_NAME \
    --clear-authorized-networks
    
  2. Confirma tus cambios:
    gcloud sql instances describe INSTANCE_NAME
    

REST v1

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia con una lista de direcciones vacía:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia con una lista de direcciones vacía:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Inhabilita una IP pública

Puedes inhabilitar la IP pública, pero solo si tu instancia también está configurada para usar IP privadas. Para habilitar la IP privada, consulta cómo configurar una instancia existente para que use una IP privada.

Para inhabilitar una IP pública, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haz clic en el nombre de la instancia para abrir la página Descripción general de esa instancia.
  3. Selecciona Conexiones en el menú de navegación de SQL.
  4. Anula la selección de la casilla de verificación IP pública.
  5. Haz clic en Guardar para actualizar la instancia.

gcloud

  1. Actualiza la instancia:
    gcloud sql instances patch INSTANCE_NAME \
    --no-assign-ip
    
  2. Confirma tus cambios:
    gcloud sql instances describe INSTANCE_NAME
    

REST v1

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration": {"ipv4Enabled": false}
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

REST v1beta4

  1. Describe la instancia para que se muestren todas las direcciones autorizadas existentes:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • ip-address1: El formulario de CIDR de la primera dirección IP
    • ip-address-name1: El nombre de la primera dirección IP
    • ip-address2: El formulario de CIDR de la segunda dirección IP
    • ip-address-name2: El nombre de la segunda dirección IP
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

  2. Actualiza la instancia:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia

    Método HTTP y URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Cuerpo JSON de la solicitud:

    {
      "settings":
      {
        "ipConfiguration": {"ipv4Enabled": false}
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la siguiente:

  3. Confirma tus cambios:

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • project-id: El ID del proyecto
    • instance-id: El ID de la instancia
    • machine-type: El tipo de máquina de la instancia
    • zone: La zona de la instancia

    Método HTTP y URL:

    GET  https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

Soluciona problemas

Problema Soluciona problemas
Aborted connection. Posible problema:
  • Hay inestabilidad en las herramientas de redes.
  • No hay respuesta a los comandos keep-alive de TCP (el cliente o el servidor no responden, es posible que estén sobrecargados)
  • Se excedió el ciclo de vida de la conexión del motor de base de datos y el servidor finalizó la conexión.

Las aplicaciones deben tolerar fallas de red y seguir prácticas recomendadas, como la agrupación de conexiones y los reintentos. La mayoría de los agrupadores de conexiones detectan estos errores siempre que sea posible. De lo contrario, la aplicación debe reintentar o fallar de manera controlada.

Para los reintentos de conexión, recomendamos los siguientes métodos:

  1. Realiza una retirada exponencial. Aumenta el intervalo de tiempo entre cada reintento de manera exponencial.
  2. Agrega una retirada aleatoria.

La combinación de estos métodos ayuda a reducir la limitación.

¿Qué sigue?