Descripción general de las conexiones

En esta página, se proporciona un resumen de las opciones disponibles para conectarte a tu instancia de Cloud SQL.

Descripción general

Para conectarte a la instancia de Cloud SQL, debes considerar estos dos aspectos:

  • Cómo conectarse: Se refiere a qué ruta de red usas para llegar a la instancia, ya sea una dirección IP externa, accesible a través de Internet (pública), o una dirección IP interna, solo de VPC (privada).
  • Cómo autenticar: Se refiere a qué conexiones están autorizadas y pueden conectarse a la instancia de Cloud SQL.

Usa la siguiente información para decidir qué opciones de conexión y autenticación te resultan más útiles.

Antes de comenzar

Si se otorga acceso a una aplicación, esto no significa que se habilite de forma automática una cuenta de usuario de base de datos para conectarse a la instancia. Antes de que puedas conectarte a una instancia, debes tener una cuenta de usuario de base de datos con la que te puedas conectar. Para instancias nuevas, debes tener configurada la cuenta de usuario predeterminada. Obtén más información.

Opciones de conexión

IP privada

Una IP privada es una dirección IPv4 o IPv6 a la que se puede acceder en una nube privada virtual (VPC). Puedes usar esta dirección para conectarte desde otros recursos con acceso a la VPC. Las conexiones mediante IP privadas suelen proporcionar una latencia más baja y vectores de ataque limitados, ya que no requieren el desvío a Internet.

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

Es posible requerir que todas las conexiones usen el proxy de Cloud SQL o los certificados SSL autoadministrados (opcional).

Es preferible conectarse con una IP privada cuando la conexión se establece desde un cliente en un recurso que tiene acceso a una VPC. Para obtener más información sobre qué recursos pueden usar una IP privada, consulta Requisitos de IP privada. Si deseas obtener instrucciones para agregar una IP privada a la instancia, consulta Configura la conectividad de IP privada.

IP pública

Una IP pública es una dirección IPv4 o IPv6 que está disponible de forma externa en la Internet pública. Esta dirección puede recibir conexiones de dispositivos dentro y fuera de la red de Google, incluso desde ubicaciones como una oficina o tu casa.

Para contribuir a la seguridad de tu instancia, cualquier conexión a una instancia de Cloud SQL mediante una IP pública debe autorizarse mediante el uso del proxy de Cloud SQL o las redes autorizadas.

Es preferible conectarse mediante una IP pública cuando la conexión se establece desde un cliente que no cumple con los requisitos de una VPC.

Si deseas obtener instrucciones para agregar una IP pública a una instancia, consulta Configura la conectividad de IP pública.

Opciones de autenticación

Proxy de Cloud SQL

El proxy de Cloud SQL te permite autorizar y proteger tus conexiones mediante los permisos de la administración de identidades y accesos (IAM). El proxy valida las conexiones mediante credenciales para un usuario o una cuenta de servicio, y une la conexión en una capa SSL/TLS autorizada para una instancia de Cloud SQL. Para obtener más detalles sobre cómo funciona el proxy de Cloud SQL, consulta Información sobre el proxy de Cloud SQL.

El uso del proxy de Cloud SQL es el método recomendado para autenticar conexiones a una instancia de Cloud SQL, ya que es el más seguro.

El proxy de cliente es una biblioteca de código abierto que se distribuye como un objeto binario ejecutable. El proxy de cliente actúa como un servidor intermediario que escucha las conexiones entrantes, las une en SSL/TLS y, luego, las pasa a una instancia de Cloud SQL.

Para comenzar a usar el proxy de Cloud SQL como objeto binario, consulta Autoriza con el proxy de Cloud SQL.

Además, algunos lenguajes tienen la opción de usar una biblioteca cliente. Puedes usar estas bibliotecas directamente desde el entorno de lenguaje. Proporcionan la misma autenticación que el proxy sin la necesidad de un proceso externo. Para comenzar, consulta las siguientes páginas:

Por último, algunos entornos, como Cloud Run, Cloud Functions y App Engine, proporcionan un mecanismo que se conecta mediante el proxy de Cloud SQL. A fin de obtener instrucciones para conectarte mediante estos entornos, consulta una de las siguientes páginas:

Certificados SSL/TLS autoadministrados

En lugar de usar el proxy de Cloud SQL para encriptar las conexiones, es posible configurar certificados SSL/TLS de cliente o servidor que sean específicos de una instancia de Cloud SQL. Estos certificados se usan para validar el cliente y el servidor entre sí, y encriptar las conexiones entre ellos.

Se recomienda usar certificados SSL/TLS autoadministrados para proporcionar encriptación cuando no se usa el proxy de Cloud SQL. Si no lo haces, tus datos se transmiten de forma insegura y un tercero podría interceptarlos o inspeccionarlos.

Para comenzar a usar los certificados SSL/TLS autoadministrados, consulta Autoriza con certificados SSL/TLS.

Redes autorizadas

A menos que uses el proxy de Cloud SQL, las conexiones a la dirección IP pública de una instancia solo se permiten si la conexión proviene de una red autorizada. Las redes autorizadas son direcciones IP o rangos a los que el usuario especificó que tiene permiso para conectarse.

Para comenzar a usar las redes autorizadas, consulta Autoriza con redes autorizadas.

Conéctate desde aplicaciones externas

Las conexiones de bases de datos consumen recursos en el servidor y en la aplicación de conexión. Usa siempre prácticas adecuadas de administración de conexión para minimizar el espacio de tu aplicación y reducir la posibilidad de superar los límites de conexión de Cloud SQL. Para obtener más información, consulta la página sobre cómo administrar conexiones de bases de datos.

Comparación de las opciones de conexión

Esta tabla compara las opciones para conectarse desde una aplicación externa:

Opción de conexión ¿Seguro, encriptado? Más información Notas
Dirección IP pública con SSL Se requiere la administración de certificados SSL.
Dirección IP pública sin SSL No No se recomienda en instancias de producción.
Proxy de Cloud SQL
Imagen de Docker del proxy de Cloud SQL
Biblioteca de sockets de JDBC Solo se admite el lenguaje de programación Java.
Biblioteca del proxy de Go Solo lenguaje de programación Go.
Cloud Shell No Usa el proxy de Cloud SQL para conectarse desde Google Cloud Console. Ideal para tareas de administración que requieren la herramienta de línea de comandos de mysql.
Apps Script Apps Script puede conectarse a bases de datos externas a través del servicio de JDBC, un wrapper de la tecnología estándar de la conectividad a bases de datos de Java.

Configura el acceso para las aplicaciones con direcciones IP asignadas de forma dinámica

Algunas aplicaciones necesitan conectarse a tu instancia de Cloud SQL mediante una dirección IP asignada de forma dinámica o una dirección IP efímera. Este es el caso de las aplicaciones de plataforma como servicio (PaaS), entre otras.

La mejor solución para estas aplicaciones es conectarse mediante el proxy de Cloud SQL. Esta solución proporciona el mejor control de acceso para la instancia.

Prueba la conexión

Puedes usar el cliente MySQL a fin de probar tu capacidad de conexión desde tu entorno local. Si quieres obtener más información, consulta Conecta un cliente MySQL mediante una dirección IP pública y la página sobre cómo conectar el cliente MySQL con el proxy de Cloud SQL.

¿Necesitas ayuda? Para solucionar problemas del proxy, consulta Cómo solucionar problemas de conexión del proxy de Cloud SQL. También puedes consultar nuestra página de asistencia de Cloud SQL.

Cómo definir la dirección IP de tu aplicación

Para definir la dirección IP de una computadora que ejecuta tu aplicación a fin de que puedas autorizar el acceso a tu instancia de Cloud SQL desde esa dirección, debes usar una de las siguientes opciones:

  • Si la computadora no se encuentra detrás de un proxy, accede a esta y usa este vínculo para definir su dirección IP.
  • Si la computadora se encuentra detrás de un proxy, accede a esta y usa una herramienta o servicio como whatismyipaddress.com para definir su dirección IP verdadera.

Muestras de código

Puedes conectarte al proxy desde cualquier lenguaje que permita conectarte a un socket Unix o TCP. A continuación, se muestran algunas instrucciones de invocación y conexión de ejemplo que te ayudarán a comprender cómo funcionan en conjunto en tu aplicación.

.NET

Después de iniciar el proxy, edita el archivo appsettings.json y define una string de conexión en CloudSql:ConnectionString. Por ejemplo:

{
  "CloudSQL" : {
     ConnectionString": "Host=127.0.0.1;Uid=DATABASE_USER;Pwd=PASSWORD;Database=DATABASE_NAME"
  }
}

Luego, en el archivo Startup.cs, crea una conexión de base de datos:

var connectionString = new MySqlConnectionStringBuilder(
    Configuration["CloudSql:ConnectionString"])
{
    // Connecting to a local proxy that does not support ssl.
    SslMode = MySqlSslMode.None,
};
DbConnection connection =
    new MySqlConnection(connectionString.ConnectionString);

Go

Puedes usar el proxy de Cloud SQL con el lenguaje de programación Go de dos maneras:

  1. Mediante la biblioteca del proxy de Go
  2. Mediante la ejecución del proxy como un proceso complementario

Biblioteca del proxy de Go

La biblioteca proporciona la forma más fácil de conectarse a Cloud SQL desde un programa de Go, ya que no necesitas iniciar de manera explícita el proxy como su propio proceso.

import (
	"github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
)
...
cfg := mysql.Cfg(INSTANCE_CONNECTION_NAME, DATABASE_USER, PASSWORD)
cfg.DBName = DATABASE_NAME
db, err := mysql.DialCfg(cfg)

Para obtener más información, consulta la página GitHub del proxy de Cloud SQL.

Proceso complementario

También puedes ejecutar el proxy como un proceso complementario y conectarlo desde tu aplicación.

Las instrucciones de invocación de proxy a continuación usan la autenticación del SDK de Cloud local para abreviar. Tu instrucción de invocación puede variar según cómo autentiques y especifiques tus instancias. Si deseas obtener más información, consulta Opciones para autenticar el proxy de Cloud SQL.

Sockets TCP

Instrucción de invocación del proxy:

./cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306 &

Instrucción de conexión:

import (
       "database/sql"
        _ "github.com/go-sql-driver/mysql"
)

dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s",
       DATABASE_USER,
       PASSWORD,
       "127.0.0.1:3306",
       DATABASE_NAME)
db, err := sql.Open("mysql", dsn)

Sockets Unix

Instrucción de invocación del proxy:

./cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME] -dir=/cloudsql &

Instrucción de conexión:

import (
       "database/sql"
        _ "github.com/go-sql-driver/mysql"
)

dsn := fmt.Sprintf("%s:%s@unix(/cloudsql/%s)/%s",
       DATABASE_USER,
       PASSWORD,
       INSTANCE_CONNECTION_NAME,
       DATABASE_NAME)
db, err := sql.Open("mysql", dsn)

Java

El lenguaje de programación Java no proporciona compatibilidad integrada en los sockets Unix. Puedes usar sockets TCP o una biblioteca que sea compatible con los sockets Unix mediante el proxy de Cloud SQL, pero la forma más sencilla de conectarse a una instancia de Cloud SQL sin agregar direcciones de red autorizadas es usar la fábrica de sockets de JDBC.

La fábrica de sockets de JDBC proporciona una alternativa al software de proxy del cliente y requiere que habilites la API de Administrador de Cloud SQL, al igual que el proxy de Cloud SQL. La fábrica de sockets proporciona el mismo nivel de encriptación que el proxy y se autentica con las credenciales del SDK de Cloud. Debes instalar y autenticar el SDK de Cloud antes de usar la fábrica de sockets.

Consulta Fábrica de sockets de Cloud SQL para los controladores JDBC a fin de obtener ejemplos de código. Revisa el README para obtener instrucciones.

PHP

PDO y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

En los siguientes ejemplos, se establece una conexión a Cloud SQL con objetos de datos PHP (PDO):

// Use a Data source name (DSN) to connect to Cloud SQL through the proxy
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=DATABASE_NAME';
// Instantiate your DB using the DSN, username, and password
$dbUser = 'DATABASE_USER';
$dbPass = 'PASSWORD';
$db = new PDO($dsn, $dbUser, $dbPass);

Sockets Unix y PDO

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

En los siguientes ejemplos, se establece una conexión a Cloud SQL con PDO:

// Use a Data source name (DSN) to connect to Cloud SQL through the proxy
$dsn = sprintf('mysql:unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME;dbname=DATABASE_NAME';
// Instantiate your DB using the DSN, username, and password
$dbUser = 'DATABASE_USER';
$dbPass = 'PASSWORD';
$db = new PDO($dsn, $dbUser, $dbPass);

mysqli y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

En los siguientes ejemplos, se establece una conexión a Cloud SQL mediante mysqli:

// Instantiate your DB using the database host, port, name, username, and password
$dbName = 'DATABASE_NAME';
$dbUser = 'DATABASE_USER';
$dbPass = 'PASSWORD';
$mysqli = new mysqli('127.0.0.1', $dbUser, $dbPass, $dbName, 3306);

Sockets Unix y mysqli

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

En los siguientes ejemplos, se establece una conexión a Cloud SQL mediante mysqli:

// Instantiate your DB using the database name, socket, username, and password
$dbName = 'DATABASE_NAME';
$dbUser = 'DATABASE_USER';
$dbPass = 'PASSWORD';
$dbSocket = '/cloudsql/INSTANCE_CONNECTION_NAME';
$mysqli = new mysqli(null, $dbUser, $dbPass, $dbName, null, $dbSocket);

Python

Las instrucciones de invocación de proxy a continuación usan la autenticación del SDK de Cloud local para abreviar. Tu instrucción de invocación puede variar según cómo autentiques y especifiques tus instancias. Obtén más información.

PyMySQL y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

Instrucción de conexión:

import pymysql
connection = pymysql.connect(host='127.0.0.1',
                             user='DATABASE_USER',
                             password='PASSWORD',
                             db='DATABASE_NAME')

PyMySQL y Unix

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

Instrucción de conexión:

import pymysql
connection = pymysql.connect(unix_socket='/cloudsql/' + INSTANCE_CONNECTION_NAME,
                             user='DATABASE_USER',
                             password='PASSWORD',
                             db='DATABASE_NAME')

SQLAlchemy y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

Instrucción de conexión:

from sqlalchemy import create_engine
  engine = create_engine('mysql+pymysql://DATABASE_USER:PASSWORD@127.0.0.1/DATABASE_NAME')

SQLAlchemy y Unix

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

Instrucción de conexión:

from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://DATABASE_USER:PASSWORD@/DATABASE_NAME?unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME')

Ruby

mysql2 y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

En los siguientes ejemplos, se establece una conexión a Cloud SQL mediante la RubyGem mysql2:

require "mysql2"
client = Mysql2::Client.new host: "127.0.0.1", port: 3306,
    database: "DATABASE_NAME", username: "DATABASE_USER",
    password: "PASSWORD"

Sockets Unix y mysql2

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

En los siguientes ejemplos, se establece una conexión a Cloud SQL mediante la RubyGem mysql2:

require "mysql2"
client = Mysql2::Client.new socket: "/cloudsql/CONNECTION_NAME",
    database: "DATABASE_NAME", username: "DATABASE_USER",
    password: "PASSWORD"

Rails y TCP

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:3306 &

En config/databases.yml, usa la siguiente configuración:

mysql_settings: &mysql_settings
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: DATABASE_USER
  password: PASSWORD
  database: DATABASE_NAME
  host: 127.0.0.1:3306

Rails y sockets Unix

Invoca el proxy:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME -dir=/cloudsql &

En config/databases.yml, usa la siguiente configuración:

mysql_settings: &mysql_settings
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: DATABASE_USER
  password: PASSWORD
  database: DATABASE_NAME
  socket: /cloudsql/INSTANCE_CONNECTION_NAME

Soluciona problemas

Haz clic en los vínculos de la tabla para obtener más información:

Situación Posible problema Solución
Aborted connection. Se produjo un error durante la lectura de los paquetes o se anuló la conexión. Consulta estas alternativas para solucionarlo.
Se generan errores Unauthorized to connect. Puede haber muchas causas principales. Consulta estas alternativas para solucionarlo.
No se pudo asociar la red. Service Networking API no está habilitada en el proyecto. Habilita Service Networking API en el proyecto.
Remaining connection slots are reserved. Se alcanzó la cantidad máxima de conexiones. Aumenta la marca max_connections.
Set Service Networking service account as servicenetworking.serviceAgent role on consumer project. Faltan permisos de Herramientas de redes en la cuenta de servicio o los permisos que hay son incorrectos. Inhabilita y vuelve a habilitar la API de Herramientas de redes de servicios.
error x509: certificate is not valid for any names, but wanted to match project-name:db-name. Problema conocido: En este momento, el marcador del proxy de Cloud SQL no es compatible con Go 1.15. Hasta que este problema se corrija, consulta este debate en GitHub, en el que se incluye una solución alternativa.
No se pueden analizar los certificados en algunos sistemas operativos. Los clientes que usan bibliotecas x509 de mac OS 11.0 (Big Sur) podrían no completar el análisis de algunos certificados de las instancias de mysql. Es posible que se muestre al cliente como un error genérico, como “cancelado”. La solución alternativa es rotar el certificado de servidor y volver a crear los certificados de cliente.
Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Los intercambios de tráfico de VPC no se actualizaron después de modificar o quitar un rango asignado. Consulta estas alternativas para solucionarlo a fin de obtener información detallada sobre la actualización del intercambio de tráfico de VPC.

Conexión anulada

Verás el mensaje de error Got an error reading communication packets o Aborted connection xxx to db: DB_NAME.

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.

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


No estás autorizado para establecer la conexión

Verás el mensaje de error Unauthorized to connect.

Posible problema

Puede haber muchas causas, ya que la autorización ocurre en muchos niveles.

  • A nivel de la base de datos, el usuario de la base de datos debe existir y su contraseña debe coincidir.
  • A nivel del proyecto, es posible que el usuario no tenga los permisos de IAM correctos.
  • A nivel de Cloud SQL, es posible que la causa principal dependa de cómo te conectes a tu instancia. Si te conectas directamente a una instancia a través de la IP pública, la IP de origen de la conexión debe estar en la red autorizada de la instancia.

    La conectividad de IP privada está permitida de forma predeterminada, excepto cuando te conectas desde una dirección que no es RFC 1918. Las direcciones de clientes 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. Por ejemplo:

    gcloud compute networks peerings update cloudsql-mysql-googleapis-com --network=NETWORK --export-subnet-routes-with-public-ip --project=PROJECT
    

    Si te conectas a través del proxy de Cloud SQL, asegúrate de que los permisos de IAM estén configurados de forma correcta.

  • A nivel de red, si la instancia de Cloud SQL usa una IP pública, la IP de origen de la conexión debe estar en una red autorizada.

Solución

  • Verifica el nombre de usuario y la contraseña.
  • Verifica las funciones y los permisos de IAM del usuario.
  • Si usas una IP pública, asegúrate de que el origen esté en las redes autorizadas.

No se pudo asociar la red

Verás el mensaje de error Error: Network association failed due to the following error: configura la cuenta de servicio de las Herramientas de redes de servicios con la función servicenetworking.serviceAgent en el proyecto consumidor.

Posible problema

La Service Networking API no está habilitada en el proyecto.

Solución

Habilita la Service Networking API en tu proyecto. Si ves este error cuando intentas asignar una dirección IP privada a una instancia de Cloud SQL y usas una VPC compartida, también debes habilitar la Service Networking API para el proyecto host.


Las ranuras de conexión restantes están reservadas

Verás el mensaje de error FATAL: remaining connection slots are reserved for non-replication superuser connections.

Posible problema

Se alcanzó la cantidad máxima de conexiones.

Solución

Edita el valor de la marca max_connections.


Configura la cuenta de servicio de las Herramientas de redes de servicios como servicenetworking.serviceAgent en el proyecto del consumidor

Verás el mensaje de error set Service Networking service account as servicenetworking.serviceAgent role on consumer project..

Posible problema

Los permisos de la cuenta de servicio o del usuario no son correctos. Esto puede suceder durante las secuencias de comandos de configuración automáticas, como una secuencia de comandos de configuración de Terraform.

Solución

Para reparar los permisos del servicio, inhabilita la Service Networking API, espera cinco minutos y vuelve a habilitarla.

También puedes intentar usar estos comandos de gcloud para asignar la función al proyecto.

gcloud beta services identity create --service=servicenetworking.googleapis.com --project=project-id
gcloud projects add-iam-policy-binding project-id --member="service-account-prefix@service-networking.iam.gserviceaccount.com" --role="roles/servicenetworking.serviceAgent"

Error x509: el certificado no es válido para ningún nombre

Verás el mensaje de error error x509: certificate is not valid for any names, but wanted to match project-name:db-name.

Posible problema

Problema conocido: En este momento, el marcador del proxy de Cloud SQL no es compatible con Go 1.15.

Solución

Hasta que este error se corrija, consulta este debate en GitHub, en el que se incluye una solución alternativa.


No se pueden analizar los certificados en algunos sistemas operativos

Cuando usas bibliotecas x509 de mac OS 11.0 (Big Sur), es posible que no se analicen los certificados de las instancias de mysql. Esto puede aparecer como un error genérico, como “cancelado”.

Solución

El error se corrigió y las nuevas instancias no presentarán este problema. En el caso de las instancias antiguas con este problema, rota el certificado de servidor y vuelve a crear los certificados de cliente.


No se pueden modificar los rangos asignados en CreateConnection. Usa UpdateConnection

Verás el mensaje de error Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection

Posible problema

Cuando se reserva un rango y, luego, se quita, también se quita la conexión privada. Este error se produce cuando intentas establecer una conexión con un rango reservado diferente sin haber creado la conexión privada.

Solución

Debes volver a crear la conexión privada. Usa el siguiente comando y asegúrate de usar el argumento --force:

gcloud services vpc-peerings update --network=VPC_NETWORK --ranges=ALLOCATED_RANGES --service=servicenetworking.googleapis.com --force

¿Qué sigue?