Questa pagina riassume le informazioni sul proxy di autenticazione Cloud SQL e descrive come utilizzarlo per stabilire connessioni autorizzate, criptate e protette alle istanze.
Per istruzioni passo passo sull'utilizzo del proxy di autenticazione Cloud SQL, segui il link per il tuo ambiente:
- Guida rapida per l'utilizzo del proxy di autenticazione Cloud SQL
- Come connettersi utilizzando il proxy di autenticazione Cloud SQL
- Come connettersi utilizzando il proxy di autenticazione Cloud SQL da GKE
Non è necessario utilizzare il proxy di autenticazione Cloud SQL o configurare SSL per connettersi a Cloud SQL da ambiente standard di App Engine o ambiente flessibile di App Engine.
Vantaggi del proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL è un connettore Cloud SQL che fornisce un accesso sicuro alle istanze senza la necessità di reti autorizzate o di configurare SSL.
Il proxy di autenticazione Cloud SQL e altri connettori Cloud SQL presentano i seguenti vantaggi:
- Connessioni sicure: il proxy di autenticazione Cloud SQL cripta automaticamente il traffico da e verso il database utilizzando TLS 1.3 con la selezione della crittografia determinata dalle regole di Go. I certificati SSL vengono utilizzati per verificare le identità di client e server e sono indipendenti dai protocolli di database; non dovrai gestire i certificati SSL.
- Autorizzazione di connessione più semplice: il proxy di autenticazione Cloud SQL utilizza le autorizzazioni IAM per controllare chi e cosa può connettersi alle istanze Cloud SQL. Pertanto, il proxy di autenticazione Cloud SQL gestisce l'autenticazione con Cloud SQL, eliminando la necessità di fornire indirizzi IP statici.
- Autenticazione IAM dei database. Facoltativamente, il proxy di autenticazione Cloud SQL supporta un aggiornamento automatico dei token di accesso OAuth 2.0. Per informazioni su questa funzionalità, consulta Autenticazione IAM dei database Cloud SQL.
Il proxy di autenticazione Cloud SQL non fornisce un nuovo percorso di connettività, ma si basa sulla connettività IP esistente. Per connetterti a un'istanza Cloud SQL utilizzando l'IP privato, il proxy di autenticazione Cloud SQL deve trovarsi su una risorsa con accesso alla stessa rete VPC dell'istanza.
Limitazioni
Non puoi utilizzare il proxy di autenticazione Cloud SQL se utilizzi l'accesso sensibile al contesto e l'autenticazione IAM dei database. Quando provi ad accedere all'istanza, l'autenticazione IAM non riesce.
Come funziona il proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL funziona con un client locale in esecuzione nell'ambiente locale. L'applicazione comunica con il proxy di autenticazione Cloud SQL con il protocollo di database standard utilizzato dal database.
Il proxy di autenticazione Cloud SQL utilizza un tunnel sicuro per comunicare con il processo complementare in esecuzione sul server. Ogni connessione stabilita tramite il proxy di autenticazione Cloud SQL crea una connessione all'istanza Cloud SQL.
Quando un'applicazione si connette al proxy di autenticazione Cloud SQL, verifica se è disponibile una connessione esistente tra l'applicazione e l'istanza Cloud SQL di destinazione. Se non esiste una connessione, chiama le API Cloud SQL Admin per ottenere un certificato SSL temporaneo e lo utilizza per connettersi a Cloud SQL. I certificati SSL temporanei scadono dopo circa un'ora. Il proxy di autenticazione Cloud SQL aggiorna questi certificati prima della scadenza.
Il proxy di autenticazione Cloud SQL non fornisce il pool di connessioni, ma può essere abbinato ad altri pool di connessioni per aumentare l'efficienza.
Il seguente diagramma mostra come il proxy di autenticazione Cloud SQL si connette a Cloud SQL:
Requisiti per l'utilizzo del proxy di autenticazione Cloud SQL
Per utilizzare il proxy di autenticazione Cloud SQL, devi soddisfare i seguenti requisiti:
- L'API Cloud SQL Admin deve essere abilitata.
- Devi fornire al proxy di autenticazione Cloud SQL le Google Cloud credenziali di autenticazione.
- Devi fornire al proxy di autenticazione Cloud SQL un account utente di database e una password validi.
L'istanza deve avere un indirizzo IPv4 pubblico o essere configurata in modo da utilizzare un IP privato.
L'indirizzo IP pubblico non deve essere accessibile a nessun indirizzo esterno (non deve essere aggiunto come indirizzo di rete autorizzato).
Se l'istanza Cloud SQL a cui ti stai connettendo utilizza
un'autorità di certificazione (CA) condivisa
per l'impostazione serverCaMode,
devi utilizzare la versione 2.13.0 o successive del proxy di autenticazione Cloud SQL sul lato client.
Se l'istanza Cloud SQL a cui ti stai connettendo utilizza
una CA gestita dal cliente
per l'impostazione serverCaMode,
devi utilizzare la versione 2.14.3 o successive del proxy di autenticazione Cloud SQL sul lato client.
Quando un'istanza utilizza una CA gestita dal cliente come modalità CA server, puoi configurare l'istanza con un nome DNS personalizzato. Fornisci il nome DNS personalizzato nel campo del nome alternativo dell'oggetto (SAN) personalizzato del certificato server.
Dopo aver configurato un nome DNS personalizzato per l'istanza, puoi connetterti all'istanza dai connettori dei linguaggi di Cloud SQL utilizzando il nome DNS.
Scaricare e installare il proxy di autenticazione Cloud SQL
Linux a 64 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.linux.amd64
- Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Linux a 32 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.linux.386
- Se il comando
curlnon viene trovato, eseguisudo apt install curle ripeti il comando di download. - Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
macOS a 64 bit
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.darwin.amd64
- Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Mac M1
- Scarica il proxy di autenticazione Cloud SQL:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.darwin.arm64
- Rendi eseguibile il proxy di autenticazione Cloud SQL:
chmod +x cloud-sql-proxy
Windows a 64 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.x64.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file incloud-sql-proxy.exe.
Windows a 32 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.3/cloud-sql-proxy.x86.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file incloud-sql-proxy.exe.
Immagine Docker del proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL ha diverse immagini container, come distroless, alpine e buster. L'immagine container predefinita del proxy di autenticazione Cloud SQL utilizza
distroless, che
non contiene alcuna shell. Se hai bisogno di una shell o di strumenti correlati, scarica un'immagine basata su alpine o buster.
Per ulteriori informazioni, consulta
Immagini container del proxy di autenticazione Cloud SQL.
Puoi eseguire il pull dell'ultima immagine sulla tua macchina locale utilizzando Docker con il seguente comando:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.3
Altri sistemi operativi
Per altri sistemi operativi non inclusi qui, puoi compilare il proxy di autenticazione Cloud SQL dal codice sorgente.Opzioni di avvio del proxy di autenticazione Cloud SQL
Quando avvii il proxy di autenticazione Cloud SQL, fornisci le seguenti informazioni:
- A quali istanze Cloud SQL stabilire le connessioni
- Dove rimarrà in ascolto dei dati provenienti dall'applicazione da inviare a Cloud SQL
- Dove troverà le credenziali che utilizzerà per autenticare l'applicazione in Cloud SQL
- Se necessario, quale tipo di indirizzo IP utilizzare.
Le opzioni di avvio del proxy di autenticazione Cloud SQL che fornisci determinano se rimarrà in ascolto su una porta TCP o su un socket Unix. Se è in ascolto su un socket Unix, crea il socket nella posizione che scegli, in genere la directory /cloudsql/.
Per TCP, il proxy di autenticazione Cloud SQL rimane in ascolto su localhost per impostazione predefinita.
Esegui l'eseguibile cloud-sql-proxy con l'argomento --help per visualizzare l'elenco completo delle opzioni di avvio.
Puoi installare il proxy di autenticazione Cloud SQL ovunque nel tuo ambiente locale. La posizione dei file binari del proxy di autenticazione Cloud SQL non influisce sul punto in cui rimane in ascolto dei dati provenienti dall'applicazione.
Per ulteriori informazioni su come avviare il proxy di autenticazione Cloud SQL, consulta Avviare il proxy di autenticazione Cloud SQL.
Utilizzare un account di servizio per l'autenticazione
Il proxy di autenticazione Cloud SQL richiede l'autenticazione come identità Cloud SQL IAM per autorizzare le connessioni a un'istanza Cloud SQL.
Il vantaggio di utilizzare un account di servizio a questo scopo è che puoi creare un file di credenziali specifico per il proxy di autenticazione Cloud SQL, che è collegato in modo esplicito e permanente al proxy di autenticazione Cloud SQL finché è in esecuzione. Per questo motivo, l'utilizzo di un account di servizio è il metodo consigliato per le istanze di produzione non in esecuzione su un'istanza Compute Engine.
Il file di credenziali può essere duplicato in un'immagine di sistema se devi richiamare il proxy di autenticazione Cloud SQL da più macchine.
Per utilizzare questo metodo, devi creare e gestire il file di credenziali. Solo gli utenti con l'autorizzazione resourcemanager.projects.setIamPolicy (ad esempio i proprietari del progetto) possono creare il account di servizio. Se il tuo
Google Cloud utente non dispone di questa autorizzazione, devi chiedere a un altro
utente di creare il account di servizio per te o utilizzare un altro metodo per
autenticare il proxy di autenticazione Cloud SQL.
Scopri come creare un service account.
Autorizzazioni richieste per i service account
Quando utilizzi un account di servizio per fornire le credenziali per il proxy di autenticazione Cloud SQL, devi crearlo con autorizzazioni sufficienti. Se utilizzi i ruoli
Identity Access and Management (IAM) più granulari per gestire le autorizzazioni
Cloud SQL, devi assegnare al account di servizio un ruolo che
includa l'autorizzazione cloudsql.instances.connect. I ruoli Cloud SQL predefiniti che includono questa autorizzazione sono:
- Cloud SQL Client
- Cloud SQL Editor
- Cloud SQL Admin
Se utilizzi i ruoli di progetto legacy (Visualizzatore, Editor, Proprietario), il service account deve avere almeno il ruolo Editor.
Mantenere aggiornato il proxy di autenticazione Cloud SQL
Di tanto in tanto, Google rilascia nuove versioni del proxy di autenticazione Cloud SQL. Puoi vedere qual è la versione attuale controllando la pagina delle release di GitHub del proxy di autenticazione Cloud SQL.
Utilizzo delle API
Il proxy di autenticazione Cloud SQL invia richieste all'API Cloud SQL Admin. Queste richieste vengono conteggiate ai fini della quota API per il tuo progetto.
L'utilizzo più elevato delle API si verifica quando avvii il proxy di autenticazione Cloud SQL. Mentre il proxy di autenticazione Cloud SQL è in esecuzione, effettua due chiamate API all'ora per ogni istanza connessa.
Parametri e flag del proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL accetta diversi flag e parametri all'avvio. Queste opzioni determinano dove e come il proxy di autenticazione Cloud SQL crea i socket che utilizza per comunicare con Cloud SQL e come esegue l'autenticazione.
Per assistenza con le opzioni del proxy di autenticazione Cloud SQL, consulta le seguenti informazioni:
- Opzioni per l'autenticazione del proxy di autenticazione Cloud SQL
- Esempi di invocazioni del proxy di autenticazione Cloud SQL
- Pagina GitHub del proxy di autenticazione Cloud SQL
- La guida del proxy di autenticazione Cloud SQL, visualizzata con
./cloud-sql-proxy --help
Utilizzare il proxy di autenticazione Cloud SQL in un ambiente di produzione
Quando utilizzi il proxy di autenticazione Cloud SQL in un ambiente di produzione, puoi eseguire alcuni passaggi per assicurarti che il proxy di autenticazione Cloud SQL fornisca la disponibilità richiesta per la tua applicazione.
Assicurarsi che il proxy di autenticazione Cloud SQL venga eseguito come servizio permanente
Se il processo del proxy di autenticazione Cloud SQL viene arrestato, tutte le connessioni esistenti tramite il proxy vengono interrotte e l'applicazione non può creare altre connessioni all'istanza Cloud SQL con il proxy di autenticazione Cloud SQL. Per evitare questo scenario, assicurati di eseguire il proxy di autenticazione Cloud SQL come servizio permanente, in modo che, se il proxy di autenticazione Cloud SQL si chiude per qualsiasi motivo, venga riavviato automaticamente. Questa operazione può essere eseguita utilizzando un servizio come systemd, upstart o supervisor. Per il sistema operativo Windows, esegui il proxy di autenticazione Cloud SQL come servizio Windows. In generale, assicurati che il proxy di autenticazione Cloud SQL abbia gli stessi requisiti di uptime del processo dell'applicazione.
Quante copie del proxy di autenticazione Cloud SQL sono necessarie per l'applicazione
Non è necessario creare un processo proxy per ogni processo dell'applicazione; molti processi dell'applicazione possono condividere un singolo processo del proxy di autenticazione Cloud SQL. Esegui un processo client del proxy di autenticazione Cloud SQL per workstation o macchina virtuale.
Se utilizzi lo scalabilità automatica per le macchine virtuali, assicurati che il proxy di autenticazione Cloud SQL sia incluso nella configurazione della macchina virtuale, in modo che ogni volta che viene avviata una nuova macchina virtuale, abbia il proprio processo del proxy di autenticazione Cloud SQL.
È tua responsabilità gestire il numero di connessioni richieste dall'applicazione, limitandole o raggruppandole. Il proxy di autenticazione Cloud SQL non impone limiti alle nuove frequenze di connessione o al numero di connessioni permanenti.
Ridurre l'output del proxy di autenticazione Cloud SQL
Se devi ridurre le dimensioni del log del proxy di autenticazione Cloud SQL, puoi farlo impostando --quiet all'avvio del proxy di autenticazione Cloud SQL. Tieni presente, tuttavia, che in questo modo si riduce l'efficacia dell'output del proxy di autenticazione Cloud SQL nella diagnosi dei problemi di connessione.
In che modo il failover influisce sul proxy di autenticazione Cloud SQL
Se esegui il proxy di autenticazione Cloud SQL su un'istanza configurata per la disponibilità elevata e si verifica un failover, le connessioni tramite il proxy di autenticazione Cloud SQL sono interessate allo stesso modo delle connessioni tramite IP: tutte le connessioni esistenti vengono perse e l'applicazione deve stabilire nuove connessioni. Tuttavia, non è richiesto alcun intervento manuale; l'applicazione può continuare a utilizzare le stesse stringhe di connessione di prima.
Se ti connetti a un'istanza con un endpoint di scrittura, puoi connetterti all'istanza utilizzando il nome DNS dell'endpoint di scrittura anziché l'indirizzo IP. L'utilizzo del nome dell'endpoint di scrittura consente al proxy di autenticazione Cloud SQL di connettersi alla nuova istanza primaria in caso di operazione di switchover o failover della replica. Per ulteriori informazioni, consulta Connettere i client di database alle istanze utilizzando il proxy di autenticazione Cloud SQL o i connettori dei linguaggi di Cloud SQL
Mantenere aggiornata l'immagine Docker del proxy di autenticazione Cloud SQL
L'immagine Docker del proxy di autenticazione Cloud SQL si basa su una versione specifica del proxy di autenticazione Cloud SQL. Quando è disponibile una nuova versione del proxy di autenticazione Cloud SQL, esegui il pull della nuova versione dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato il tuo ambiente. Puoi vedere la versione attuale del proxy di autenticazione Cloud SQL controllando la pagina delle release di GitHub del proxy di autenticazione Cloud SQL.
Come applicare l'utilizzo del proxy di autenticazione Cloud SQL
Puoi applicare l'utilizzo del proxy di autenticazione Cloud SQL nelle connessioni alle istanze Cloud SQL utilizzando ConnectorEnforcement. Con l'applicazione del connettore, le connessioni dirette al database vengono rifiutate.
Per utilizzare l'applicazione del connettore, utilizza il campo ConnectorEnforcement nell'API instances.
Se utilizzi un'istanza abilitata per Private Service Connect, esiste una limitazione. Se l'istanza ha l'applicazione del connettore abilitata, non puoi creare repliche di lettura per l'istanza. Allo stesso modo, se l'istanza ha repliche di lettura, non puoi abilitare l'applicazione del connettore per l'istanza.
Per ulteriori informazioni su come applicare l'utilizzo solo del proxy di autenticazione Cloud SQL o dei connettori dei linguaggi di Cloud SQL per connetterti a un'istanza, consulta Applicare l'utilizzo del proxy di autenticazione Cloud SQL.
Informazioni sull'operatore proxy Cloud SQL
L'operatore proxy Cloud SQL è un operatore Kubernetes open source che automatizza la connessione dei carichi di lavoro in un cluster GKE ai database Cloud SQL. L'operatore proxy di autenticazione Cloud SQL utilizza una risorsa personalizzata AuthProxyWorkload che specifica la configurazione del proxy di autenticazione Cloud SQL per un carico di lavoro specifico. L'operatore proxy di autenticazione Cloud SQL legge questa risorsa e aggiunge un container proxy di autenticazione Cloud SQL con la configurazione richiesta ai carichi di lavoro appropriati.
Quando installi l'operatore nel cluster GKE e configuri i carichi di lavoro e le istanze Cloud SQL, l'operatore proxy di autenticazione Cloud SQL configura automaticamente il proxy di autenticazione Cloud SQL e connette i carichi di lavoro GKE alle istanze Cloud SQL.
L'operatore proxy di autenticazione Cloud SQL controlla anche lo stato del proxy di autenticazione Cloud SQL. Se il proxy di autenticazione Cloud SQL non riesce a connettersi, l'operatore proxy di autenticazione Cloud SQL genera informazioni di debug e fornisce indicazioni per risolvere e correggere i problemi di configurazione comuni.
Per ulteriori informazioni, consulta Connettersi utilizzando l'operatore proxy Cloud SQL.