Questa pagina fornisce una panoramica dei modi in cui puoi connetterti a Cloud SQL e descrive le opzioni disponibili per l'autenticazione e l'autorizzazione.
Panoramica
Quando valuti come connetterti all'istanza Cloud SQL, ci sono molte scelte da tenere presenti, tra cui:
- Vuoi che l'istanza Cloud SQL sia accessibile da internet, che sia privata all'interno di una rete Virtual Private Cloud (VPC) o che sia accessibile sia pubblicamente che privatamente?
- Hai intenzione di scrivere il tuo codice di connessione o di connetterti utilizzando strumenti disponibili pubblicamente come Cloud SQL Auth Proxy o un client sqlcmd?
- Vuoi richiedere la crittografia tramite SSL/TLS o consentire la crittografia traffico?
Nelle sezioni seguenti illustreremo le opzioni di Cloud SQL fornisce la connessione, l'autorizzazione e l'autenticazione al tuo 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: quali connessioni sono autorizzate e autorizzate a
connettiti all'istanza Cloud SQL:
- Le librerie del connettore 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 del database integrata: accedi con un nome utente e una password impostati nel motore del database.
Utilizza le informazioni che seguono per decidere quale connessione, autorizzazione le opzioni di autenticazione sono le più adatte alle tue esigenze.
Prima di iniziare
La concessione dell'accesso a un'applicazione non consente automaticamente a un account utente del database di connettersi all'istanza. Prima di poterti connettere a un'istanza, devi avere un account utente del database a cui puoi connetterti. Per le nuove istanze, questo significa che devi aver configurato l'account utente predefinito. Per ulteriori informazioni, consulta 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. Usa sempre buone pratiche di gestione della connessione per ridurre al minimo dell'applicazione e ridurre la probabilità di superare Limiti di connessione di Cloud SQL. Per ulteriori informazioni, vedi Gestione delle connessioni ai database
IP pubblico e privato
In Cloud SQL, IP pubblico significa che l'istanza è accessibile tramite nella rete internet pubblica. Al contrario, le istanze che utilizzano solo l'IP privato non sono accessibili alla rete internet pubblica, ma sono accessibili tramite una Virtual Private Cloud (VPC). Le istanze Cloud SQL possono avere un'istanza Indirizzo IP.
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 tramite IP privato in genere forniscono una latenza inferiore e vettori di attacco limitati perché non richiedono il passaggio attraverso internet. Facoltativamente, puoi richiedono che tutte le connessioni utilizzino il proxy Cloud SQL o certificati SSL autogestiti.
È preferibile configurare l'istanza con un IP privato quando ti connetti da un su una risorsa con accesso a un VPC. Per ulteriori informazioni le risorse possono usare l'IP privato, Requisiti per l'IP privato.
Per i percorsi IP privati, si connettono i seguenti servizi e applicazioni direttamente alla tua istanza Accesso VPC serverless:
- Ambiente standard di App Engine
- Ambiente flessibile di App Engine
- Funzioni Cloud Run
- Cloud Run
Scopri di più sull'utilizzo dell'IP privato con Cloud SQL
Per istruzioni su come aggiungere un indirizzo IP privato all'istanza, consulta una delle seguenti risorse:
- Configurazione della connettività IP privato.
- Connettersi a un'istanza utilizzando Private Service Connect
IP pubblico
Un IP pubblico è un indirizzo IPv4 disponibile esternamente sul pubblico internet. Questo indirizzo può ricevere connessioni dai dispositivi all'interno e al di fuori della rete Google, ad esempio da luoghi come casa o l'ufficio.
Per proteggere l'istanza, qualsiasi connessione a Cloud SQL che utilizza un IP pubblico deve essere autorizzata utilizzando Proxy di autenticazione Cloud SQL oppure reti autorizzate.
Configurare l'istanza con un IP pubblico è la soluzione migliore quando ti connetti da un 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 sqlcmd a un client Cloud SQL utilizzando l'IP pubblico, consulta Connessione tramite un client di database.
Come eseguire l'autorizzazione per Cloud SQL
Connettori di linguaggio Cloud SQL
I connettori di linguaggio Cloud SQL sono librerie client che forniscono crittografia e IAM quando ti connetti a un'istanza Cloud SQL. Cloud SQL consiglia di utilizzare i connettori di linguaggio Cloud SQL per connetterti a Cloud SQL su altre opzioni di connessione.
Puoi utilizzare queste librerie direttamente dal relativo linguaggio di programmazione supportato. Forniscono la stessa autenticazione del proxy di autenticazione Cloud SQL senza richiedere un processo esterno. Ciò fornisce una sicurezza migliorata e requisiti di configurazione ridotti e la connessione a Cloud SQL. Anche i connettori dei linguaggi Cloud SQL utilizzano lo stesso codice quando si connettono utilizzando un indirizzo IP pubblico o 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 Identity and Access Management (IAM). Cloud SQL Auth Proxy convalida le connessioni utilizzando le credenziali di un account utente o di servizio e inserendo la connessione in un livello SSL/TLS autorizzato per un'istanza Cloud SQL. Per ulteriori dettagli su come Il proxy di autenticazione Cloud SQL funziona, 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 è un libreria open source distribuiti come file binario eseguibile. Il proxy di autenticazione Cloud SQL agisce da intermediario server che rimane in ascolto delle connessioni in arrivo, le aggrega in SSL/TLS e quindi 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 le seguenti pagine:
- Connessione da Cloud Run
- Connessione dalle funzioni di Cloud Run
- Connessione dall'ambiente standard di App Engine
- Connessione dall'ambiente flessibile di App Engine
- Connessione da Google Kubernetes Engine
Certificati SSL/TLS autogestiti
Anziché utilizzare il proxy di autenticazione Cloud SQL per criptare le connessioni, è possibile configurare certificati SSL/TLS client/server specifici per Cloud SQL in esecuzione in un'istanza Compute Engine. Questi certificati vengono utilizzati sia per convalidare il client che il server e crittografare le connessioni tra loro.
Ti consigliamo vivamente di utilizzare i certificati SSL/TLS autogestiti per fornire se non utilizzi il proxy di autenticazione Cloud SQL. In caso contrario, i tuoi dati vengono trasmessi in modo non sicuro e potrebbero essere intercettati o ispezionati da una terza parte.
Per iniziare a utilizzare i certificati SSL/TLS autogestiti, consulta Autorizzazione con certificati SSL/TLS.
Reti autorizzate
A meno che non si utilizzi il proxy di autenticazione Cloud SQL, le connessioni all'IP pubblico di un'istanza sono consentiti solo se la connessione proviene rete autorizzata. Le reti autorizzate sono indirizzi o intervalli IP che l'utente ha specificato l'autorizzazione per la connessione.
Per iniziare a utilizzare le reti autorizzate, consulta: Autorizzazione con reti autorizzate.
Come eseguire l'autenticazione in Cloud SQL
L'autenticazione consente di 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 viene eseguita quando le credenziali di un utente vengono assegnate a un account di servizio.
Cloud SQL utilizza l'autenticazione integrata del database che autentica utilizzando un nome utente e una password. Per ulteriori informazioni, vedi creazione e gestione degli utenti SQL Server.
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 | |
gcloud CLI | |
Connettori dei linguaggi Cloud SQL | |
Cloud Shell | |
Cloud Code | |
Connettiti utilizzando strumenti di amministrazione di database di terze parti | |
SQL Server Management Studio | |
Esplorazione oggetti SSMS | |
Visual Studio |
Esempi di codice
Puoi connetterti al proxy di autenticazione Cloud SQL da qualsiasi linguaggio che ti consenta di connetterti a un socket TCP. Di seguito sono riportati alcuni snippet di codice di esempi completi su GitHub per aiutarti a comprendere come interagiscono nella tua applicazione.
Connessione con TCP
Istruzione di chiamata del proxy di autenticazione Cloud SQL:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME &
Python
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
Java
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
Nota:
- CLOUD_SQL_CONNECTION_NAME deve essere rappresentato come <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- L'uso dell'argomento ipTypes=PRIVATE forza l'esecuzione di per la connessione all'IP privato associato a un'istanza
- Consulta i requisiti di versione di fabbrica del socket JDBC per pom.xml file qui .
Node.js
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
Vai
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
C#
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
Ruby
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
PHP
Per visualizzare questo snippet nel contesto di un'applicazione web, visualizza il file README su GitHub.
Risoluzione dei problemi
Se hai problemi di connessione, consulta le seguenti pagine per ricevere assistenza eseguire il debug o trovare soluzioni a problemi noti:
- Debug dei problemi di connessione
- Errori di connettività noti
- Risoluzione dei problemi di connessione del proxy di autenticazione Cloud SQL
- Problemi di connessione comuni
Passaggi successivi
- Scopri come metterti in contatto con Guida rapida per Cloud SQL per sqlserver.
- Scopri le best practice per gestione delle connessioni ai database.
- Scopri di più sull'autenticazione dei database IAM.
- Informazioni su connessione mediante un client sqlcmd da una macchina locale o Compute Engine.
- Scopri di più sulla configurazione della connettività IP.
- Scopri di più sul proxy di autenticazione Cloud SQL.
- Scopri le opzioni di assistenza.