Configurar IP públicas

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 PostgreSQL:

  • 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 Cómo conectar el cliente psql 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 la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Conexiones.
  4. Haz clic en la pestaña Redes.
  5. Selecciona la casilla de verificación IP pública.
  6. Haz clic en Agregar red.
  7. De manera opcional, en el campo Nombre, ingresa un nombre para esta red.
  8. 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.

  9. Haz clic en Listo.
  10. Haz clic en Guardar.

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. 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.

  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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 que se muestra a continuación:

    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:

Terraform

Para habilitar una IP pública y agregar una dirección o rango de direcciones autorizadas, usa un recurso de Terraform.

resource "google_sql_database_instance" "postgres_public_ip_instance_name" {
  database_version = "POSTGRES_14"
  name             = "postgres-public-ip-instance-name"
  region           = "asia-southeast2"
  settings {
    availability_type = "ZONAL"
    ip_configuration {
      # Add optional authorized networks
      # Update to match the customer's networks
      authorized_networks {
        name  = "test-net-3"
        value = "203.0.113.0/24"
      }
      # Enable public IP
      ipv4_enabled = true
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Aplique los cambios

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.

Prepara el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Borra los cambios

Para borrar tus cambios, haz lo siguiente:

  1. Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento deletion_protection en false.
    deletion_protection =  "false"
  2. Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa yes cuando se te solicite:
    terraform apply
  1. Quita los recursos que se aplicaron antes con tu configuración de Terraform mediante la ejecución del siguiente comando y, luego, ingresa yes cuando se te solicite:

    terraform destroy

REST v1beta4

  1. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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 que se muestra a continuación:

    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 la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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 que se muestra a continuación:

  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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 que se muestra a continuación:

  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 la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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: Es 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 que se muestra a continuación:

  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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: Es 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 que se muestra a continuación:

  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 la 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 la consola de Google Cloud, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Selecciona Conexiones en el menú de navegación de SQL.
  4. Desmarca 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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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: ID del proyecto
    • INSTANCE_ID: El ID de la instancia
    • VPC_NETWORK_NAME: especifica el nombre de la red de nube privada virtual (VPC) que deseas usar para esta instancia. El acceso a servicios privados ya debe estar configurado para la red.
    • RANGE_NAME: Opcional. Si se especifica, establece un nombre de rango para el que se asigna un rango de IP. El nombre del rango debe cumplir con RFC-1035 y contener de 1 a 63 caracteres.
    • AUTHORIZED_NETWORKS: Para las conexiones de IP públicas, especifica las conexiones de redes autorizadas que pueden conectarse a la instancia.

    En el parámetro ipv4Enabled, establece el valor en true si usas una dirección IP pública para tu instancia o false si tu instancia tiene una dirección IP privada.

    Si configuras el parámetro enablePrivatePathForGoogleCloudServices como true, permites que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en ellos a través de una conexión IP privada. Si configuras este parámetro en false, otros servicios de Google Cloud no pueden acceder a los datos de Cloud SQL a través de una conexión IP privada.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

    Cuerpo JSON de la solicitud:

    {
      "name": "INSTANCE_ID",
      "region": "region",
      "databaseVersion": "database-version",
      "settings": {
        "tier": "machine-type",
        "ipConfiguration": {
          "ipv4Enabled": false,
          "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
          "allocatedIpRange": "RANGE_NAME"
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          
          "enablePrivatePathForGoogleCloudServices": true
          
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

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

  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. Muestra todas las direcciones autorizadas existentes mediante la descripción de 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
    • 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: ID del proyecto
    • INSTANCE_ID: El ID de la instancia
    • VPC_NETWORK_NAME: especifica el nombre de la red de nube privada virtual (VPC) que deseas usar para esta instancia. El acceso a servicios privados ya debe estar configurado para la red.
    • RANGE_NAME: Opcional. Si se especifica, establece un nombre de rango para el que se asigna un rango de IP. El nombre del rango debe cumplir con RFC-1035 y contener de 1 a 63 caracteres.
    • AUTHORIZED_NETWORKS: Para las conexiones de IP públicas, especifica las conexiones de redes autorizadas que pueden conectarse a la instancia.

    En el parámetro ipv4Enabled, establece el valor en true si usas una dirección IP pública para tu instancia o false si tu instancia tiene una dirección IP privada.

    Si configuras el parámetro enablePrivatePathForGoogleCloudServices como true, permites que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en ellos a través de una conexión IP privada. Si configuras este parámetro en false, otros servicios de Google Cloud no pueden acceder a los datos de Cloud SQL a través de una conexión IP privada.

    Método HTTP y URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

    Cuerpo JSON de la solicitud:

    {
      "name": "INSTANCE_ID",
      "region": "region",
      "databaseVersion": "database-version",
      "settings": {
        "tier": "machine-type",
        "ipConfiguration": {
          "ipv4Enabled": false,
          "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
          "allocatedIpRange": "RANGE_NAME"
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          
          "enablePrivatePathForGoogleCloudServices": true
          
        }
      }
    }
    

    Para enviar tu solicitud, expande una de estas opciones:

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

  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:

Solucionar 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. 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.

Certificate verify failed.

Los certificados de cliente vencieron o la ruta a los certificados no es correcta.

Para volver a generar los certificados, vuelve a crearlos.

FATAL: database 'user' does not exist. gcloud sql connect --user solo funciona con el usuario predeterminado postgres.

Conéctate con el usuario predeterminado y, luego, cambia de usuario.

Quieres saber quién está conectado. Accede a la base de datos y ejecuta este comando:

SELECT datname,
usename,
application_name as appname,
client_addr,
state,
now() - backend_start as conn_age,
now() - state_change as last_activity_age
FROM pg_stat_activity
WHERE backend_type = 'client backend'
ORDER BY 6 DESC
LIMIT 20
   

Hostname/IP does not match certificate's altnames: Host: localhost. is not in the cert's altnames.

La dirección del host no coincide con la dirección de los nombres alternativos del certificado de servidor.

Si usas Node.js con verify-full o su equivalente, usa el nombre de DNS para el parámetro servername. El nombre de DNS se puede encontrar en el certificado de servidor con openssl. Por ejemplo, openssl x509 -in server-cert.pem -noout -text |grep 'DNS:'.

 ssl: {
  rejectUnauthorized: true,
  ca: fs.readFileSync("/path/to/server/CA"),
  servername: 'N-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.us-central1.sql.goog'
}

¿Qué sigue?