Informazioni sul proxy di autenticazione Cloud SQL

Questa pagina riassume il proxy di autenticazione Cloud SQL e descrive come utilizzarlo per stabilire connessioni autorizzate, criptate e protette alle tue istanze.

Per istruzioni dettagliate sull'utilizzo del proxy di autenticazione Cloud SQL, segui il link per il tuo ambiente:

Non è necessario utilizzare il proxy di autenticazione Cloud SQL o configurare SSL per connettersi a Cloud SQL dall'ambiente standard di App Engine o dall'ambiente flessibile di App Engine.

Provalo

Se non conosci Google Cloud, crea un account per valutare le prestazioni di Cloud SQL in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova Cloud SQL gratuitamente

Vantaggi del proxy di autenticazione Cloud SQL

Il proxy di autenticazione Cloud SQL è un connettore Cloud SQL che fornisce accesso sicuro alle tue istanza senza dover utilizzare le reti autorizzate o configurare SSL.

Il proxy di autenticazione Cloud SQL e altri connettori Cloud SQL offrono i seguenti vantaggi:

  • Connessioni sicure:il proxy di autenticazione Cloud SQL cripta automaticamente il traffico verso e dal database utilizzando TLS 1.3 con la selezione del cifrario determinata dalle regole di Go. I certificati SSL vengono utilizzati per verificare le identità di client e server e sono indipendenti dai protocolli del database. Non dovrai gestire i certificati SSL.
  • Autorizzazione delle connessioni semplificata:il proxy di autenticazione Cloud SQL utilizza le autorizzazioni IAM per controllare chi e cosa può connettersi alle tue 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 un IP privato, il proxy di autenticazione Cloud SQL deve trovarsi in una risorsa con accesso alla stessa rete VPC dell'istanza.

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 relativo processo complementare eseguito 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, controlla se è disponibile una connessione 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 effimeri scadono dopo circa un'ora. Il proxy di autenticazione Cloud SQL aggiorna questi certificati prima della scadenza.

Sebbene il proxy di autenticazione Cloud SQL possa ascoltare su qualsiasi porta, crea connessioni in uscita o di entrata all'istanza Cloud SQL solo sulla porta 3307. Poiché il proxy di autenticazione Cloud SQL chiama le API tramite il nome di dominio sqladmin.googleapis.com, che non ha un indirizzo IP fisso, tutte le connessioni TCP in uscita sulla porta 443 devono essere consentite. Se la macchina client ha un criterio firewall in uscita, assicurati che consenta le connessioni in uscita alla porta 3307 sull'IP dell'istanza Cloud SQL.

Il proxy di autenticazione Cloud SQL non fornisce il pooling delle connessioni, ma può essere accoppiato con altri pooling delle connessioni per aumentare l'efficienza.

Il seguente diagramma mostra come il proxy di autenticazione Cloud SQL si connette a Cloud SQL:

Diagramma del proxy di autenticazione Cloud SQL che si connette dal software client all'istanza 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 credenziali di autenticazione di Google Cloud.
  • Devi fornire al proxy di autenticazione Cloud SQL un account utente e una password del database 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 da parte di nessun indirizzo esterno (non è necessario aggiungerlo come indirizzo di rete autorizzato).

Se l'istanza Cloud SQL a cui ti connetti utilizza una CA (autorità di certificazione) condivisa per l'impostazione serverCaMode, lato client devi utilizzare Cloud SQL Auth Proxy versione 2.13.0 o successiva.

La modalità CA condivisa è in (Anteprima).

Scarica e installa il proxy di autenticazione Cloud SQL

Linux a 64 bit

  1. Scarica il proxy di autenticazione Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.linux.amd64
  2. Rendi eseguibile il proxy di autenticazione Cloud SQL:
    chmod +x cloud-sql-proxy

Linux a 32 bit

  1. Scarica il proxy di autenticazione Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.linux.386
  2. Se il comando curl non viene trovato, esegui sudo apt install curl e ripeti il comando di download.
  3. Rendi eseguibile il proxy di autenticazione Cloud SQL:
    chmod +x cloud-sql-proxy

macOS a 64 bit

  1. Scarica il proxy di autenticazione Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.darwin.amd64
  2. Rendi eseguibile il proxy di autenticazione Cloud SQL:
    chmod +x cloud-sql-proxy

Mac M1

  1. Scarica il proxy di autenticazione Cloud SQL:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.darwin.arm64
      
  2. 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.14.1/cloud-sql-proxy.x64.exe e seleziona Salva link come per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file in cloud-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.14.1/cloud-sql-proxy.x86.exe e seleziona Salva link come per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file in cloud-sql-proxy.exe.

Immagine Docker del proxy di autenticazione Cloud SQL

Il proxy di autenticazione Cloud SQL ha diverse immagini contenitore, ad esempio distroless, alpine e buster. L'immagine del contenitore del proxy di autenticazione Cloud SQL predefinita utilizza distroless, che non contiene shell. Se hai bisogno di una shell o di strumenti correlati, scarica un'immagine basata su alpine o buster. Per ulteriori informazioni, consulta Immagini del contenitore del proxy di autenticazione Cloud SQL.

Puoi eseguire il pull dell'immagine più recente sulla tua macchina locale utilizzando Docker con il seguente comando:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.14.1

Altro sistema operativo

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:

  • Le istanze Cloud SQL a cui stabilire connessioni
  • Dove ascolterà i dati provenienti dalla tua applicazione da inviare a Cloud SQL
  • Dove troverà le credenziali da utilizzare per autenticare la tua applicazione su Cloud SQL
  • Se necessario, il tipo di indirizzo IP da utilizzare.

Le opzioni di avvio del proxy di autenticazione Cloud SQL che fornisci determinano se il proxy rimarrà in ascolto su una porta TCP o su una socket Unix. Se è in ascolto su una presa Unix, crea la presa nella posizione che scegli, in genere la directory /cloudsql/. Per TCP, il proxy di autenticazione Cloud SQL rimane in ascolto sulla porta 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 in qualsiasi punto del tuo ambiente locale. La posizione dei file binari di Cloud SQL Auth Proxy non influisce sulla posizione in cui il proxy rimane in ascolto per i dati della tua applicazione.

Per ulteriori informazioni su come avviare il proxy di autenticazione Cloud SQL, consulta Avvia 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à IAM Cloud SQL per autorizzare le connessioni a un'istanza Cloud SQL.

Il vantaggio dell'utilizzo di un account di servizio per questo scopo è che puoi creare un file delle credenziali specifico per il proxy di autenticazione Cloud SQL, che viene 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 delle credenziali può essere duplicato in un'immagine di sistema se devi invocare il proxy di autenticazione Cloud SQL da più macchine.

Per utilizzare questo metodo, devi creare e gestire il file delle credenziali. Solo gli utenti con l'autorizzazione resourcemanager.projects.setIamPolicy (ad esempio i proprietari del progetto) possono creare l'account di servizio. Se il tuo utente Google Cloud non dispone di questa autorizzazione, devi chiedere a qualcun altro di creare l'account di servizio per te o utilizzare un altro metodo per autenticare il proxy di autenticazione Cloud SQL.

Scopri come creare un account di servizio.

Autorizzazioni richieste per gli account di servizio

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 IAM (Identity Access and Management) più granulari per gestire le autorizzazioni Cloud SQL, devi assegnare all'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 precedenti (Visualizzatore, Editor, Proprietario), l'account di servizio deve disporre almeno del 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 corrente controllando la pagina delle release di GitHub del proxy di autenticazione Cloud SQL. Le release future dei proxy verranno indicate anche nel forum Google Groups Cloud SQL announce.

Utilizzo delle API

Il proxy di autenticazione Cloud SQL invia richieste all'API Cloud SQL Admin. Queste richieste vengono conteggiate in base alla quota API per il tuo progetto.

Il maggiore utilizzo dell'API si verifica quando avvii il proxy di autenticazione Cloud SQL. Quando il proxy di autenticazione Cloud SQL è in esecuzione, emette 2 chiamate API all'ora per istanza connessa.

Informazioni sulla creazione di un account utente speciale per il proxy di autenticazione Cloud SQL

Quando ti connetti all'istanza utilizzando il proxy di autenticazione Cloud SQL, fornisci un account utente utilizzato per accedere all'istanza. Puoi utilizzare qualsiasi account utente del database per questo scopo. Tuttavia, poiché il proxy di autenticazione Cloud SQL si connette sempre da un nome host a cui non è possibile accedere tranne che dal proxy di autenticazione Cloud SQL, puoi creare un account utente che può essere utilizzato solo dal proxy di autenticazione Cloud SQL. Il vantaggio di questa operazione è che puoi specificare questo account senza una password senza compromettere la sicurezza della tua istanza o dei tuoi dati.

Per creare un account utente per le connessioni al proxy di autenticazione Cloud SQL, specifica il nome host come'cloudsqlproxy~[IP_ADDRESS]'. Puoi anche utilizzare il carattere jolly per gli indirizzi IP, che avrà come risultato 'cloudsqlproxy~%'. Il nome completo dell'account utente sarà:

'[USER_NAME]'@'cloudsqlproxy~%'

o

'[USER_NAME]'@'cloudsqlproxy~[IP_ADDRESS]'

Per assistenza sulla creazione di un utente, vedi Creare e gestire gli utenti. Per informazioni su come Cloud SQL funziona con gli account utente, consulta Utenti. Per informazioni sugli account utente MySQL, consulta Protezione degli account MySQL iniziali nella documentazione di MySQL.

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 utilizzati per comunicare con Cloud SQL e come esegue l'autenticazione.

Per assistenza sulle opzioni del proxy di autenticazione Cloud SQL, consulta le seguenti informazioni:

Come viene utilizzato FUSE con il proxy di autenticazione Cloud SQL

FUSE è l'acronimo di "Filesystem in User Space". A seconda di come viene invocato, il proxy di autenticazione Cloud SQL può optionally utilizzare FUSE per creare le socket utilizzate per connettersi a Cloud SQL.

Quando ti connetti da Compute Engine o da ambienti di sviluppo locali, il proxy di autenticazione Cloud SQL utilizza FUSE per accedere alle istanze Cloud SQL come segue:

  • La directory "/cloudsql" viene montata come file system nello spazio utente o come FUSE dal proxy di autenticazione Cloud SQL.

  • Un processo (ad esempio mysql) tenta di cercare un file denominato $INSTANCE.

  • Il proxy di autenticazione Cloud SQL intercetta la richiesta e restituisce che /cloudsql/$INSTANCE è un link simbolico che rimanda a un socket Unix situato altrove nel file system.

  • Il processo (ad esempio mysql) segue il link e apre la socket Unix a cui rimanda e si connette.

Installa FUSE

Per Linux:

FUSE richiede il programma fusermount e un modulo del kernel per funzionare. Puoi verificare se questo programma è installato cercando il file /dev/fuse/. Se fusermount non è installato sul tuo sistema, puoi installarlo utilizzando il gestore dei pacchetti o compilandolo dal codice sorgente.

Per macOS:

Installa FUSE per macOS.

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 seguire alcuni passaggi per assicurarti che fornisca la disponibilità richiesta per la tua applicazione.

Assicurati che il proxy di autenticazione Cloud SQL venga eseguito come servizio persistente

Se il processo del proxy di autenticazione Cloud SQL viene interrotto, tutte le connessioni esistenti tramite il proxy vengono abbandonate e l'applicazione non può più creare 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 persistente, in modo che se esce per qualsiasi motivo, venga riavviato automaticamente. Per farlo, puoi utilizzare 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 la tua applicazione

Non è necessario creare un processo proxy per ogni processo dell'applicazione; molti processi dell'applicazione possono condividere un unico processo del proxy di autenticazione Cloud SQL. Esegui un processo client del proxy di autenticazione Cloud SQL per ogni workstation o macchina virtuale.

Se utilizzi l'autoscaling 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, questa abbia il proprio processo del proxy di autenticazione Cloud SQL.

Sta a te gestire il numero di connessioni richieste dalla tua applicazione, limitandone o raggruppandone le connessioni. Il proxy di autenticazione Cloud SQL non impone limitazioni alle frequenze delle nuove connessioni o al numero di connessioni permanenti.

Riduci 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 quando avvii il proxy di autenticazione Cloud SQL. Tieni presente, tuttavia, che questa operazione 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 l'alta disponibilità e si verifica un failover, le connessioni tramite il proxy di autenticazione Cloud SQL sono interessate nello 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.

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 viene resa disponibile una nuova versione del proxy di autenticazione Cloud SQL, estrai la nuova versione dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato il tuo ambiente. Puoi vedere la versione corrente 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 delle istanze Cloud SQL utilizzando ConnectorEnforcement. Con l'applicazione del connettore, le connessioni dirette al database vengono rifiutate.

Per utilizzare l'applicazione forzata dei connettori, utilizza il campo ConnectorEnforcement nell'API instances.

Se utilizzi un'istanza abilitata per Private Service Connect, è presente una limitazione. Se per l'istanza è attiva l'applicazione dei connettori, non puoi creare repliche di lettura per l'istanza. Analogamente, se l'istanza ha repliche di lettura, non puoi attivare l'applicazione dei connettori 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 connettersi a un'istanza, consulta Applicare l'utilizzo del proxy di autenticazione Cloud SQL.

Informazioni sull'operatore Cloud SQL Proxy

Cloud SQL Proxy Operator è un operatore Kubernetes open source che automatizza la connessione dei workload 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 determinato carico di lavoro. L'operatore proxy di autenticazione Cloud SQL legge questa risorsa e aggiunge un contenitore proxy di autenticazione Cloud SQL con la configurazione richiesta ai carichi di lavoro appropriati.

Quando installi l'operatore nel tuo cluster GKE e configuri i tuoi carichi di lavoro e le tue istanze Cloud SQL, l'operatore Cloud SQL Auth Proxy configura automaticamente il proxy di autenticazione Cloud SQL e connette i carichi di lavoro GKE alle tue istanze Cloud SQL.

L'operatore del 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 del proxy di autenticazione Cloud SQL genera informazioni di debug e fornisce indicazioni per risolvere i problemi di configurazione comuni.

Per ulteriori informazioni, consulta Eseguire la connessione utilizzando l'operatore proxy Cloud SQL.

Passaggi successivi