I connettori Cloud SQL sono librerie che forniscono crittografia e autorizzazione basata su Identity and Access Management (IAM) quando ti connetti 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 proxy di autenticazione Cloud SQL. Per ulteriori informazioni sulla connessione a un'istanza Cloud SQL, consulta la pagina Informazioni sulle opzioni di connessione.
Questa pagina illustra i seguenti connettori Cloud SQL:
- Il connettore Java Cloud SQL
- Connettore Python di Cloud SQL (aperto in Colab)
- Il connettore Cloud SQL Go
- Connettore Node.js Cloud SQL
Vantaggi
L'utilizzo di un connettore Cloud SQL fornisce quanto segue vantaggi:
- Autorizzazione IAM: utilizza le autorizzazioni IAM per controllare chi o cosa può connettersi alle tue istanze Cloud SQL.
- Comodità: elimina la necessità di gestire certificati SSL, configura regole firewall o abilita reti.
- Autenticazione IAM dei database: fornisce il supporto per la funzionalità di autenticazione IAM automatica dei database di Cloud SQL.
Prima di iniziare
- Abilita l'API Cloud SQL Admin.
- Creare un'istanza Cloud SQL, inclusa la configurazione dell'utente predefinito.
Per ulteriori informazioni sulla creazione di istanze, consulta Creare istanze.
Per ulteriori informazioni sulla configurazione dell'utente predefinito, vedi Impostare 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 Cloud SQL è una libreria che fornisce autorizzazione e crittografia basate su IAM quando ti connetti a un'istanza Cloud SQL. Non può fornire un percorso di rete a un l'istanza Cloud SQL, se non ne esiste già una.
Installa
Per istruzioni su come creare e utilizzare i driver per JDBC e R2DBC con il connettore Java 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 quanto segue Comando gcloud:
gcloud auth application-default login
Connettiti a IntelliJ
Per connettere IntelliJ all'istanza Cloud SQL, dovrai aggiungere la libreria come jar con dipendenze nella Sezione File aggiuntivi nella pagina delle impostazioni del driver. Ad esempio, puoi trovare barattoli di grasso Release del connettore Java di Cloud SQL a questo scopo.
Python
Il connettore Python Cloud SQL è una libreria che può essere utilizzata insieme a un driver del 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 sull'utilizzo del connettore Python Cloud SQL, apri il notebook del connettore Python Cloud SQL.
I driver supportati da PostgreSQL sono pg8000 e asyncpg.
Installa
Per installare la release più recente del connettore Python di Cloud SQL, utilizza il comando pip install
e specifica il driver pg8000
o asyncpg
per il database:
pip install "cloud-sql-python-connector[pg8000]"
o
pip install "cloud-sql-python-connector[asyncpg]"
Autentica
Questa libreria utilizza le Credenziali predefinite dell'applicazione per autenticare la connessione al server Cloud SQL.
Per attivare le credenziali localmente, utilizza quanto segue 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 essere utilizzata con Node.js che ti consente di connetterti in modo sicuro all'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
Vedi Come utilizzare questo connettore per istruzioni dettagliate sull'uso della libreria. Visualizza un esempio di codice per il test della connessione su GitHub.
Vai
Per istruzioni dettagliate sull'utilizzo della libreria, consulta Utilizzo. Visualizza un esempio di codice per il test della connessione su GitHub.
Node.js
Per istruzioni dettagliate sull'uso della libreria, vedi Utilizzo.
Applica
Utilizzando l'applicazione dei connettori, puoi imporre l'utilizzo solo del proxy di autenticazione Cloud SQL o dei connettori dei linguaggi Cloud SQL per connetterti alle istanze Cloud SQL. Con l'applicazione del connettore, Cloud SQL rifiuta le connessioni dirette al database. Non puoi creare repliche di lettura per un'istanza in cui è abilitata l'applicazione del connettore. Analogamente, se un'istanza ha l'applicazione del connettore abilitata, non potrai creare repliche di lettura per l'istanza.
gcloud
Per applicare l'utilizzo solo del proxy di autenticazione Cloud SQL o dei connettori dei linguaggi di Cloud SQL per connettersi 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 seguenti sostituzioni:
- 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 delle seguenti 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 la versione più recente dei connettori Cloud SQL e il driver di database per evitare incompatibilità. Alcune versioni precedenti degli aggiornamenti 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 sui problemi di connessione, consulta Risoluzione dei problemi e Debug dei problemi di connessione. pagine.
Passaggi successivi
- Consulta la home page del connettore Java Cloud SQL su GitHub.
- Consulta la home page del connettore Python di Cloud SQL su GitHub.
- Scopri di più sul proxy di autenticazione Cloud SQL.
- Scopri di più su IAM.
- Scopri le opzioni di assistenza.