Informazioni sulle opzioni di connessione

Questa pagina fornisce una panoramica dei modi in cui puoi connetterti all'istanza Cloud SQL e descrive le opzioni di autenticazione e autorizzazione disponibili.

Panoramica

Quando valuti come connetterti alla tua istanza Cloud SQL, ci sono molte opzioni da tenere a mente, tra cui:

  • Vuoi che la tua istanza Cloud SQL sia accessibile da internet, resti privata all'interno di una rete Virtual Private Cloud (VPC) o vuoi che sia accessibile sia pubblicamente che privata?
  • Vuoi scrivere il tuo codice di connessione o connetterti utilizzando strumenti disponibili pubblicamente come il proxy di autenticazione Cloud SQL o un client psql?
  • Vuoi richiedere la crittografia tramite SSL/TLS o consentire il traffico non criptato?

Nelle sezioni seguenti, parleremo delle opzioni fornite da Cloud SQL per la connessione, l'autorizzazione e l'autenticazione nel database.

  • Come connettersi: il percorso di rete che utilizzi per raggiungere l'istanza:
    • Un indirizzo IP interno solo VPC (privato).
    • Un indirizzo IP esterno accessibile da internet (pubblico).
  • Come autorizzare: le connessioni autorizzate e autorizzate a connettersi all'istanza Cloud SQL:
    • Librerie del proxy di autenticazione Cloud SQL e del connettore Cloud SQL per Java e Python forniscono l'accesso basato su IAM.
    • Certificati SSL/TLS autogestiti: consentono solo connessioni basate su chiavi pubbliche specifiche.
    • Reti autorizzate: un elenco di indirizzi IP autorizzati a connettersi.
  • Modalità di autenticazione: il metodo per accedere al database.
    • Autenticazione database integrata: accedi con nome utente/password impostati nel motore del database.
    • Autenticazione database IAM: accedi con un'email o con un token OAuth 2.0 come password.

Utilizza le informazioni che seguono per decidere quali opzioni di connessione, autorizzazione e autenticazione sono più adatte alle tue esigenze.

Prima di iniziare

La concessione dell'accesso a un'applicazione non abilita automaticamente un account utente del database per la connessione all'istanza. Per poterti connettere a un'istanza, devi avere un account utente del database con cui connetterti. Per le nuove istanze, significa che devi aver configurato l'account utente predefinito. Per saperne di più, vedi Gestire gli utenti con l'autenticazione integrata.

Come connettersi a Cloud SQL

Le connessioni al database consumano risorse sul server e sull'applicazione di connessione. Adotta sempre buone prassi di gestione delle connessioni per ridurre al minimo l'ingombro dell'applicazione e ridurre la probabilità di superare i limiti di connessione di Cloud SQL. Per ulteriori informazioni, consulta Gestione delle connessioni ai database.

IP pubblico e privato

In Cloud SQL, IP pubblico indica che l'istanza è accessibile tramite la rete internet pubblica. Al contrario, le istanze che utilizzano solo IP privato non sono accessibili tramite la rete internet pubblica, ma sono accessibili tramite un Virtual Private Cloud (VPC). Le istanze Cloud SQL possono avere un indirizzo IP pubblico e un indirizzo privato.

IP privato

Un IP privato è un indirizzo IPv4 accessibile su un Virtual Private Cloud (VPC).

Puoi utilizzare questo indirizzo per connetterti da altre risorse con accesso al VPC. Le connessioni su IP privato forniscono in genere una latenza inferiore e vettori di attacco limitati, perché non richiedono il attraversamento di internet. Facoltativamente, puoi richiedere che tutte le connessioni utilizzino il proxy Cloud SQL o i certificati SSL autogestiti.

Per la connessione da un client su una risorsa con accesso a un VPC, è preferibile configurare l'istanza con un IP privato. Per ulteriori informazioni su quali risorse possono utilizzare l'IP privato, consulta Requisiti per l'IP privato.

Per i percorsi IP privati, i seguenti servizi e applicazioni si connettono direttamente all'istanza tramite l'accesso VPC serverless:

  • Ambiente standard di App Engine
  • Ambiente flessibile di App Engine
  • Cloud Functions
  • Cloud Run

Scopri di più sull'utilizzo dell'IP privato con Cloud SQL

Per istruzioni sull'aggiunta di un IP privato all'istanza, consulta una delle seguenti opzioni:

IP pubblico

Un IP pubblico è un indirizzo IPv4 disponibile esternamente sulla rete internet pubblica. Questo indirizzo può ricevere connessioni da dispositivi sia all'interno che all'esterno della rete Google, ad esempio da località come casa o ufficio.

Per contribuire alla sicurezza dell'istanza, tutte le connessioni a un'istanza Cloud SQL tramite IP pubblico devono essere autorizzate utilizzando il proxy di autenticazione Cloud SQL o le reti autorizzate.

La configurazione dell'istanza con un IP pubblico è la soluzione migliore per la connessione da un client che non soddisfa i requisiti per un VPC.

Per istruzioni sull'aggiunta di un IP pubblico all'istanza, consulta Configurazione della connettività IP pubblico.

Per informazioni sulla connessione di un client psql a un'istanza Cloud SQL tramite IP pubblico, consulta Connessione tramite un client di database.

Indirizzi IP assegnati dinamicamente

Alcune applicazioni devono connettersi all'istanza Cloud SQL utilizzando un indirizzo IP temporaneo o assegnato dinamicamente. Questo è il caso, ad esempio, delle applicazioni Platform as a Service (PaaS).

In questi casi, devi utilizzare il proxy di autenticazione Cloud SQL.

Come autorizzare Cloud SQL

Connettori di linguaggio Cloud SQL

I connettori di linguaggio Cloud SQL sono librerie client che forniscono crittografia e autorizzazione IAM durante la connessione a un'istanza Cloud SQL. Cloud SQL consiglia di utilizzare i connettori di linguaggio Cloud SQL per connettersi all'istanza Cloud SQL rispetto ad altre opzioni di connessione.

Puoi utilizzare queste librerie direttamente dal loro linguaggio di programmazione supportato. Forniscono la stessa autenticazione del proxy di autenticazione Cloud SQL senza richiedere un processo esterno. Questo migliora la sicurezza e riduce i requisiti di configurazione per connettersi a Cloud SQL. I connettori di linguaggio Cloud SQL utilizzano lo stesso codice anche per la connessione tramite un indirizzo IP pubblico o un indirizzo IP privato.

Per iniziare, consulta Informazioni sui connettori di linguaggio Cloud SQL.

Proxy di autenticazione Cloud SQL

Il proxy di autenticazione Cloud SQL consente di autorizzare e proteggere le connessioni utilizzando le autorizzazioni di Identity and Access Management (IAM). Il proxy di autenticazione Cloud SQL convalida le connessioni utilizzando le credenziali di un account utente o di servizio e implementando la connessione in un livello SSL/TLS autorizzato per un'istanza Cloud SQL. Per maggiori dettagli sul funzionamento del proxy di autenticazione Cloud SQL, vedi Informazioni sul proxy di autenticazione Cloud SQL.

L'utilizzo del proxy di autenticazione Cloud SQL è il metodo consigliato per autenticare le connessioni a un'istanza Cloud SQL, perché è il metodo più sicuro.

Il proxy di autenticazione Cloud SQL è una libreria open source distribuita come programma binario eseguibile. Il proxy di autenticazione Cloud SQL agisce come un server intermedio che rimane in ascolto delle connessioni in entrata, le inserisce in SSL/TLS e le passa a un'istanza Cloud SQL.

Alcuni ambienti forniscono un meccanismo che si connette utilizzando il proxy di autenticazione Cloud SQL. Per istruzioni sulla connessione utilizzando questi ambienti, consulta una delle seguenti pagine:

Certificati SSL/TLS autogestiti

Anziché utilizzare il proxy di autenticazione Cloud SQL per criptare le connessioni, puoi configurare certificati SSL/TLS client/server specifici per un'istanza Cloud SQL. Questi certificati vengono utilizzati per convalidare l'interazione tra client e server e per criptare le connessioni tra i due.

Ti consigliamo vivamente di utilizzare certificati SSL/TLS autogestiti per fornire la crittografia quando non utilizzi il proxy di autenticazione Cloud SQL. Se non lo fai, i tuoi dati vengono trasmessi in modo non sicuro e potrebbero essere intercettati o ispezionati da terze parti.

Per iniziare a utilizzare i certificati SSL/TLS autogestiti, consulta Autorizzazione con certificati SSL/TLS.

Reti autorizzate

A meno che non utilizzi il proxy di autenticazione Cloud SQL, le connessioni all'indirizzo IP pubblico di un'istanza sono consentite solo se la connessione proviene da una rete autorizzata. Le reti autorizzate sono indirizzi o intervalli IP che l'utente ha specificato come autorizzati a connettersi.

Per iniziare a utilizzare le reti autorizzate, consulta Autorizzazione con reti autorizzate.

Come eseguire l'autenticazione in Cloud SQL

L'autenticazione fornisce il controllo dell'accesso verificando l'identità di un utente. Per gli utenti finali, l'autenticazione viene ottenuta quando l'utente inserisce le credenziali (nome utente e password). Per le applicazioni, l'autenticazione si ottiene quando le credenziali di un utente vengono assegnate a un account di servizio.

Cloud SQL utilizza l'autenticazione integrata del database che esegue l'autenticazione mediante nome utente e password. Per maggiori informazioni, consulta Creazione e gestione degli utenti PostgreSQL.

Cloud SQL è inoltre integrato con IAM per aiutarti a monitorare e gestire meglio l'accesso al database di utenti e account di servizio. Questa funzionalità è chiamata autenticazione del database IAM.

Scopri di più sull'autenticazione IAM dei database.

Scopri di più sulla creazione e sulla gestione degli utenti che utilizzano l'autenticazione IAM dei database.

Strumenti per la connessione a Cloud SQL

La tabella seguente contiene alcune opzioni per la connessione a Cloud SQL:

Opzione di connessione Ulteriori informazioni
Proxy di autenticazione Cloud SQL
interfaccia a riga di comando gcloud
Connettori di linguaggio Cloud SQL
Cloud Shell
Codice Cloud
Connettiti utilizzando strumenti di amministrazione di database di terze parti
pgAdmin
Toad Edge
Frullato

Esempi di codice

Puoi connetterti al proxy di autenticazione Cloud SQL da qualsiasi linguaggio che consenta di connettersi a un socket Unix o TCP. Di seguito sono riportati alcuni snippet di codice provenienti da esempi completi su GitHub per aiutarti a capire come funzionano insieme nella tua applicazione.

Risolvere i problemi

Se hai problemi di connessione, consulta le pagine seguenti per assistenza sul debug o sulla ricerca di soluzioni a problemi noti:

Passaggi successivi