I connettori Cloud SQL sono librerie che forniscono la crittografia e l'autorizzazione basata su Identity and Access Management (IAM) quando ci si connette a un'istanza Cloud SQL. Non possono fornire un percorso di rete a un'istanza Cloud SQL se non è già presente.
Altri modi per connettersi a un'istanza Cloud SQL includono l'utilizzo di un client di database o del Cloud SQL Auth Proxy. Per saperne di più sulla connessione a un'istanza Cloud SQL, consulta la pagina Informazioni sulle opzioni di connessione.
Questa pagina illustra i seguenti connettori Cloud SQL:
- Connettore Java di Cloud SQL
- Connettore Python di Cloud SQL (Apri in Colab)
- Connettore Go per Cloud SQL
- Connettore Node.js di Cloud SQL
Vantaggi
L'utilizzo di un connettore Cloud SQL offre i seguenti vantaggi:
- Autorizzazione IAM: utilizza le autorizzazioni IAM per controllare chi o cosa può connettersi alle tue istanze Cloud SQL.
- Comodità: elimina l'obbligo di gestire i certificati SSL, configurare le regole firewall o abilitare le reti autorizzate.
Prima di iniziare
- Abilita l'API Cloud SQL Admin.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli. - Creare un'istanza Cloud SQL, inclusa la configurazione dell'utente predefinito.
Per saperne di più sulla creazione di istanze, consulta Crea istanze.
Per ulteriori informazioni sulla configurazione dell'utente predefinito, consulta Imposta la password per l'account utente predefinito.
- Configura i ruoli e le autorizzazioni necessari per connetterti a un'istanza Cloud SQL.
Configurazione
Java
Il connettore Java di Cloud SQL è una libreria che fornisce l'autorizzazione e la crittografia basate su IAM durante la connessione a un'istanza Cloud SQL. Non può fornire un percorso di rete a un'istanza Cloud SQL se non è già presente.
Installa
Per istruzioni sulla creazione e sull'utilizzo dei driver per JDBC e R2DBC con il connettore Java di Cloud SQL, consulta i seguenti link:
Per esempi di utilizzo di questa libreria nel contesto di un'applicazione, consulta queste applicazioni di esempio.
Autentica
Questa libreria utilizza le Credenziali predefinite dell'applicazione per autenticare la connessione al server Cloud SQL.
Per attivare le credenziali localmente, utilizza il seguente comando gcloud:
gcloud auth application-default login
Connettiti con IntelliJ
Per connettere IntelliJ alla tua istanza Cloud SQL, devi aggiungere la libreria come file jar con dipendenze nella sezione File aggiuntivi della pagina delle impostazioni del driver. Ad esempio, i fat jar predefiniti sono disponibili nella pagina Release del connettore Java di Cloud SQL a questo scopo.
Python
Il connettore Python di Cloud SQL è una libreria che può essere utilizzata insieme a un driver di database per consentire agli utenti con autorizzazioni sufficienti di connettersi a un database Cloud SQL senza dover inserire manualmente gli IP nella lista consentita o gestire i certificati SSL.
Per esempi interattivi di utilizzo del connettore Python di Cloud SQL, apri il blocco note del connettore Python di Cloud SQL.
Il driver supportato da SQL Server è pytds.
Installa
Per installare l'ultima versione del connettore Python di Cloud SQL, utilizza il comando pip install e specifica il driver pytds per il tuo database:
pip install "cloud-sql-python-connector[pytds]"
Autentica
Questa libreria utilizza le Credenziali predefinite dell'applicazione per autenticare la connessione al server Cloud SQL.
Per attivare le credenziali localmente, utilizza il seguente comando gcloud:
gcloud auth application-default login
Vai
Il connettore Cloud SQL Go è un connettore Cloud SQL progettato per l'utilizzo con il linguaggio Go. Per una maggiore sicurezza, questo connettore utilizza una crittografia TLS 1.3 robusta e autenticata manualmente tra il connettore client e il proxy lato server, indipendentemente dal protocollo del database.
Installa
Puoi installare questo repository con go get:
go get cloud.google.com/go/cloudsqlconn
Node.js
Il connettore Node.js è una libreria progettata per l'utilizzo con il runtime Node.js che consente di connetterti in modo sicuro alla tua istanza Cloud SQL.
Installa
Puoi installare la libreria con npm install:
npm install @google-cloud/cloud-sql-connector
Utilizza
Java
Per visualizzare questo snippet nel contesto di un'applicazione web, consulta il file README su GitHub.
Python
Per istruzioni dettagliate sull'utilizzo della libreria, consulta Come utilizzare questo connettore. Visualizza il codice di esempio del test di connettività su GitHub.
Vai
Per istruzioni dettagliate sull'utilizzo della libreria, consulta Utilizzo. Visualizza il codice di esempio del test di connettività su GitHub.
Node.js
Per istruzioni dettagliate sull'utilizzo della libreria, consulta Utilizzo.
Applica
Utilizzando l'applicazione forzata del connettore, puoi imporre l'utilizzo esclusivo del Cloud SQL Auth Proxy o dei connettori dei linguaggi di Cloud SQL per connetterti alle istanze Cloud SQL. Con l'applicazione del connettore, Cloud SQL rifiuta le connessioni dirette al database.
Se utilizzi un'istanza abilitata per Private Service Connect, esiste una limitazione. Se nell'istanza è abilitata l'applicazione dei connettori, non puoi creare repliche di lettura per l'istanza. Analogamente, se l'istanza ha repliche di lettura, non puoi abilitare l'applicazione del connettore per l'istanza.
gcloud
Per applicare l'utilizzo esclusivo del Cloud SQL Auth Proxy o dei connettori dei linguaggi di Cloud SQL per connetterti a un'istanza, utilizza il comando gcloud sql instances patch:
gcloud sql instances patch INSTANCE_NAME \ --connector-enforcement=REQUIRED
Sostituisci INSTANCE_NAME con il nome della tua istanza Cloud SQL.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza Cloud SQL
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON della richiesta:
{
"kind": "sql#instance",
"name": INSTANCE_NAME,
"project": PROJECT_ID,
"settings": {
"connectorEnforcement": "REQUIRED",
"kind": "sql#settings"
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
"status": "PENDING",
"user": "user@example.com",
"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"
}
Risoluzione dei problemi
Versioni dei driver
Assicurati di utilizzare l'ultima versione dei connettori Cloud SQL e del driver del database per evitare incompatibilità. Alcune versioni precedenti dei driver non sono supportate.
Percorsi di connessione
I connettori Cloud SQL forniscono l'autorizzazione per le connessioni, ma non forniscono nuovi percorsi per la connettività. Ad esempio, per connettersi a un'istanza Cloud SQL utilizzando un indirizzo IP privato, l'applicazione deve già disporre dell'accesso VPC.
Debug dei problemi di connessione
Per ulteriore assistenza in caso di problemi di connessione, consulta le pagine Risolvi i problemi ed Esegui il debug dei problemi di connessione.
Passaggi successivi
- Consulta la home page del connettore Java di Cloud SQL su GitHub.
- Consulta la home page di Cloud SQL Python Connector su GitHub.
- Scopri di più sul Cloud SQL Auth Proxy.
- Scopri di più su IAM.
- Scopri di più sulle opzioni di assistenza.