Los conectores de Cloud SQL son bibliotecas que proporcionan cifrado y autorización basada en la gestión de identidades y accesos (IAM) al conectarse a una instancia de Cloud SQL. No pueden proporcionar una ruta de red a una instancia de Cloud SQL si no existe una.
Otras formas de conectarse a una instancia de Cloud SQL incluyen usar un cliente de base de datos o el proxy de autenticación de Cloud SQL . Consulta la página "Acerca de las opciones de conexión" para obtener más información sobre cómo conectarte a una instancia de Cloud SQL.
En esta página se analizan los siguientes conectores de Cloud SQL:
- El conector Java de Cloud SQL
- El conector Python de Cloud SQL (abierto en Colab)
- El conector Go de Cloud SQL
- El conector Node.js de Cloud SQL
Beneficios
El uso de un conector de Cloud SQL proporciona los siguientes beneficios:
- Autorización de IAM: utiliza permisos de IAM para controlar quién o qué puede conectarse a sus instancias de Cloud SQL.
- Conveniencia: elimina el requisito de administrar certificados SSL, configurar reglas de firewall o habilitar redes autorizadas.
- Autenticación de base de datos IAM : proporciona soporte para la función de autenticación automática de base de datos IAM de Cloud SQL .
Antes de empezar
- Habilitar la API de administración de Cloud SQL.
- Cree una instancia de Cloud SQL, incluida la configuración del usuario predeterminado.
Para obtener más información sobre la creación de instancias, consulte Crear instancias .
Para obtener más información sobre cómo configurar el usuario predeterminado, consulte Establecer la contraseña para la cuenta de usuario predeterminada .
- Configure los roles y permisos necesarios para conectarse a una instancia de Cloud SQL.
Configuración
Java
El Conector Java de Cloud SQL es una biblioteca que proporciona autorización y cifrado basados en IAM al conectarse a una instancia de Cloud SQL. No puede proporcionar una ruta de red a una instancia de Cloud SQL si no existe una.
Instalar
Para obtener instrucciones sobre cómo crear y utilizar los controladores para JDBC y R2DBC con el conector Java de Cloud SQL, consulte los siguientes enlaces:
- JDBC: Conexión a Cloud SQL mediante JDBC .
- R2DBC: Conexión a Cloud SQL mediante R2DBC .
Para ver ejemplos del uso de esta biblioteca en el contexto de una aplicación, consulte estas aplicaciones de muestra .
Autenticar
Esta biblioteca utiliza credenciales predeterminadas de la aplicación para autenticar la conexión al servidor Cloud SQL.
Para activar las credenciales localmente, utilice el siguiente comando gcloud :
gcloud auth application-default login
Conéctate con Intellij
Para conectar IntelliJ a su instancia de Cloud SQL, deberá agregar la biblioteca como un archivo JAR con dependencias en la sección "Archivos adicionales" de la página de configuración del controlador. Por ejemplo, puede encontrar archivos JAR precompilados en la página de versiones del conector Java de Cloud SQL para este fin.
Pitón
El conector Python de Cloud SQL es una biblioteca que se puede usar junto con un controlador de base de datos para permitir que los usuarios con permisos suficientes se conecten a una base de datos de Cloud SQL sin tener que incluir manualmente direcciones IP en la lista blanca o administrar certificados SSL.
Para obtener ejemplos interactivos del uso del Conector Python de Cloud SQL, abra el cuaderno del Conector Python de Cloud SQL .
Los controladores que admite PostgreSQL son pg8000 y asyncpg .
Instalar
Para instalar la última versión de Cloud SQL Python Connector, use el comando pip install
y especifique el controlador pg8000
o asyncpg
para su base de datos:
pip install "cloud-sql-python-connector[pg8000]"
o
pip install "cloud-sql-python-connector[asyncpg]"
Autenticar
Esta biblioteca utiliza credenciales predeterminadas de la aplicación para autenticar la conexión al servidor Cloud SQL.
Para activar las credenciales localmente, utilice el siguiente comando gcloud :
gcloud auth application-default login
Ir
El conector Go de Cloud SQL está diseñado para usarse con el lenguaje Go. Para mayor seguridad, utiliza un cifrado TLS 1.3 robusto y autenticado manualmente entre el conector del cliente y el proxy del servidor, independientemente del protocolo de la base de datos.
Instalar
Puedes instalar este repositorio con go get
:
go get cloud.google.com/go/cloudsqlconn
Node.js
El conector Node.js es una biblioteca diseñada para usarse con el entorno de ejecución Node.js que le permite conectarse de forma segura a su instancia de Cloud SQL.
Instalar
Puede instalar la biblioteca con npm install
:
npm install @google-cloud/cloud-sql-connector
Usar
Java
Para ver este fragmento en el contexto de una aplicación web, consulte el archivo README en GitHub .
Pitón
Consulta "Cómo usar este conector" para obtener instrucciones detalladas sobre el uso de la biblioteca. Consulta un ejemplo de código de prueba de conexión en GitHub.
Ir
Consulta la sección "Uso" para obtener instrucciones detalladas sobre el uso de la biblioteca. Consulta un ejemplo de código de prueba de conexión en GitHub.
Node.js
Para obtener instrucciones detalladas sobre el uso de la biblioteca, consulte Uso .
Hacer cumplir
Al usar la aplicación de conectores , puede usar únicamente el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL para conectarse a las instancias de Cloud SQL. Con la aplicación de conectores, Cloud SQL rechaza las conexiones directas a la base de datos.
Si utiliza una instancia con Private Service Connect habilitado , existe una limitación. Si la instancia tiene habilitada la aplicación de conectores, no podrá crear réplicas de lectura para ella. De igual forma, si la instancia tiene réplicas de lectura, tampoco podrá habilitar la aplicación de conectores para ella.
nube g
Para aplicar el uso exclusivo de Cloud SQL Auth Proxy o Cloud SQL Language Connectors para conectarse a una instancia, utilice el comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --connector-enforcement=REQUIRED
Reemplace INSTANCE_NAME
con el nombre de su instancia de Cloud SQL.
DESCANSAR
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de su instancia de Cloud SQL
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "kind": "sql#instance", "name": INSTANCE_NAME, "project": PROJECT_ID, "settings": { "connectorEnforcement": "REQUIRED", "kind": "sql#settings" } }
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Solucionar problemas
Versiones del controlador
Asegúrese de utilizar la versión más reciente de los conectores de Cloud SQL y del controlador de su base de datos para evitar incompatibilidades. Algunas versiones anteriores de los controladores no son compatibles.
Rutas de conexión
Los conectores de Cloud SQL autorizan las conexiones, pero no ofrecen nuevas rutas de conectividad. Por ejemplo, para conectarse a una instancia de Cloud SQL mediante una dirección IP privada, la aplicación ya debe tener acceso a la VPC.
Problemas de conexión de depuración
Para obtener ayuda adicional con problemas de conexión, consulte las páginas Solucionar problemas de conexión y Depurar problemas de conexión .
¿Qué sigue?
- Consulte la página de inicio de Cloud SQL Java Connector en GitHub .
- Consulte la página de inicio del conector Python de Cloud SQL en GitHub .
- Obtenga más información sobre el proxy de autenticación de Cloud SQL .
- Obtenga más información sobre IAM .
- Conozca las opciones de soporte .