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 relativo al 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 connetterti a Cloud SQL dall'ambiente standard di App Engine o dall'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 tue istanze senza bisogno di reti autorizzate o di configurazione di SSL.
Il proxy di autenticazione Cloud SQL e gli altri connettori Cloud SQL offrono 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à client e server e sono indipendenti dai protocolli del database. Non dovrai quindi gestire i certificati SSL.
- Autorizzazione di connessione semplificata: il proxy di autenticazione Cloud SQL utilizza le autorizzazioni IAM per controllare chi e cosa può connettersi alle tue istanze Cloud SQL. In questo modo, il proxy di autenticazione Cloud SQL gestisce l'autenticazione con Cloud SQL, eliminando la necessità di fornire indirizzi IP statici.
Il proxy di autenticazione Cloud SQL non fornisce un nuovo percorso di connettività, ma si basa sulla connettività IP esistente. Per connettersi 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.
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 companion 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 Admin Cloud SQL per ottenere un certificato SSL temporaneo e lo utilizza per connettersi a Cloud SQL. I certificati SSL temporanei scadono tra circa un'ora. Cloud SQL Auth Proxy aggiorna questi certificati prima che scadano.
Sebbene il proxy di autenticazione Cloud SQL possa rimanere in ascolto su qualsiasi porta, crea connessioni in uscita o in uscita verso l'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, devono essere consentite tutte le connessioni TCP in uscita sulla porta 443. Se il tuo computer client ha un criterio firewall in uscita, assicurati che consenta le connessioni in uscita verso la porta 3307 sull'IP dell'istanza Cloud SQL.
Il proxy di autenticazione Cloud SQL non fornisce il pooling delle connessioni, ma può essere accoppiato ad altri pool di connessioni per aumentare l'efficienza.
Il seguente diagramma mostra come si connette il proxy di autenticazione Cloud SQL 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 il proxy di autenticazione Cloud SQL con le credenziali di autenticazione Google Cloud.
- Devi fornire al proxy di autenticazione Cloud SQL una password e un account utente del database validi.
L'istanza deve avere un indirizzo IPv4 pubblico o essere configurata per utilizzare l'IP privato.
L'indirizzo IP pubblico non deve essere accessibile da parte di nessun indirizzo esterno (non è necessario aggiungerlo come indirizzo di rete autorizzato).
Scarica e installa 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.11.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.11.3/cloud-sql-proxy.linux.386
- Se il comando
curl
non viene trovato, eseguisudo apt install curl
e 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.11.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.11.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.11.3/cloud-sql-proxy.x64.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file comecloud-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.11.3/cloud-sql-proxy.x86.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file comecloud-sql-proxy.exe
.
Immagine Docker del proxy di autenticazione Cloud SQL
Il proxy di autenticazione Cloud SQL ha immagini container diverse, ad esempio distroless
, alpine
e buster
. L'immagine del container proxy di autenticazione Cloud SQL predefinita 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'immagine più recente sulla tua macchina locale utilizzando Docker, utilizzando questo comando:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.3
Altro sistema operativo
Per altri sistemi operativi non inclusi qui, puoi compilare il proxy di autenticazione Cloud SQL dall'origine.Opzioni di avvio del proxy di autenticazione Cloud SQL
Quando avvii il proxy di autenticazione Cloud SQL, gli vengono fornite le seguenti informazioni:
- A quali istanze Cloud SQL stabilire le connessioni
- Dove ascolterà i dati provenienti dalla tua applicazione da inviare a Cloud SQL
- Dove si trovano le credenziali che useranno per autenticare la tua applicazione in Cloud SQL
- Se necessario, quale tipo di indirizzo IP utilizzare.
Le opzioni di avvio fornite per il proxy di autenticazione Cloud SQL determinano se quest'ultimo resterà in ascolto su una porta TCP o su un socket Unix. Se il socket è in ascolto su un socket Unix, crea il socket nella località scelta, di solito 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 sulla posizione in cui quest'ultimo rimane in ascolto dei dati dell'applicazione.
Per saperne di più 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à IAM di Cloud SQL 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 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 di Compute Engine.
Il file delle credenziali può essere duplicato in un'immagine di sistema se devi richiamare il proxy di autenticazione Cloud SQL da più computer.
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 di 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 le autorizzazioni sufficienti. Se utilizzi ruoli granulari di Identity Access and Management (IAM) 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:
- Client Cloud SQL
- Editor Cloud SQL
- Amministratore Cloud SQL
Se utilizzi i ruoli di progetto legacy (Visualizzatore, Editor, Proprietario), l'account di servizio deve avere almeno il ruolo Editor.
Opzioni per specificare le istanze Cloud SQL
Esistono diversi modi per indicare al proxy di autenticazione Cloud SQL le istanze a cui vuoi connetterti. Alcune sono esplicite, altre implicite. In alcune configurazioni, non è necessario indicare in anticipo al proxy di autenticazione Cloud SQL a quali istanze vuoi connetterti, poiché il proxy di autenticazione Cloud SQL si connette in base alle richieste di connessione.
Le opzioni per le specifiche dell'istanza dipendono dal sistema operativo e dall'ambiente:
Opzione | Vantaggi | Avvertenze e requisiti | Linux/macOS (socket Unix) |
Java | Windows | Note |
---|---|---|---|---|---|---|
Rilevamento automatico dell'istanza | Non è necessario specificare le istanze; socket creati per tutte le istanze nel progetto predefinito. | È stato aumentato l'utilizzo dell'API Cloud SQL Auth Proxy. Deve avere installato e autenticato gcloud CLI, con un progetto predefinito impostato. Per aggiungere una nuova istanza, devi riavviare il proxy di autenticazione Cloud SQL. | Supportato | No | No | Opzione sconsigliata per le istanze di produzione. |
Istanze specificate nella chiamata al proxy di autenticazione Cloud SQL | Elenco di istanze noto e statico. | Per aggiungere una nuova istanza, devi riavviare il proxy di autenticazione Cloud SQL. | Supportato | Supportata con i socket TCP | Supportata con i socket TCP | Per più istanze, utilizza un elenco separato da virgole, senza spazi. Ulteriori informazioni |
Mantieni aggiornato il proxy di autenticazione Cloud SQL
Di tanto in tanto, Google rilascia nuove versioni del proxy di autenticazione Cloud SQL. Puoi verificare la versione attuale consultando la pagina delle release di GitHub del proxy di autenticazione Cloud SQL. Le release future del proxy verranno indicate anche nel forum di annunci di Cloud SQL di Google Gruppi.
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 progetto.
L'utilizzo massimo dell'API si verifica all'avvio del proxy di autenticazione Cloud SQL. Mentre il proxy di autenticazione Cloud SQL è in esecuzione, emette due chiamate API all'ora per 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 sulle opzioni del proxy di autenticazione Cloud SQL, consulta le seguenti informazioni:
- Opzioni per l'autenticazione del proxy di autenticazione Cloud SQL
- Opzioni per specificare le istanze Cloud SQL
- Esempi di chiamate 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
Utilizza 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 il proxy di autenticazione Cloud SQL fornisca la disponibilità richiesta per la tua applicazione.
Assicurati che il proxy di autenticazione Cloud SQL venga eseguito come servizio permanente
Se il processo di proxy di autenticazione Cloud SQL viene interrotto, tutte le connessioni esistenti tramite il proxy di autenticazione vengono eliminate 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 per qualsiasi motivo il proxy di autenticazione Cloud SQL si chiude, venga riavviato automaticamente. È possibile farlo utilizzando un
servizio come systemd
, upstart
o supervisor
. Per il sistema operativo Windows, esegui il proxy di autenticazione Cloud SQL come servizio di Windows. In generale, assicurati che il proxy di autenticazione Cloud SQL abbia gli stessi requisiti di uptime del processo dell'applicazione.
Numero di copie del proxy di autenticazione Cloud SQL necessarie alla tua applicazione
Non è necessario creare un processo proxy per ogni processo dell'applicazione; molti processi delle applicazioni possono condividere un singolo processo proxy di autenticazione Cloud SQL. Esegui un processo client proxy di autenticazione Cloud SQL per ogni workstation o macchina virtuale.
Se utilizzi la 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 proxy di autenticazione Cloud SQL.
Sta a te gestire il numero di connessioni richieste dalla tua applicazione, limitando o raggruppando le connessioni in pool. Il proxy di autenticazione Cloud SQL non pone alcun limite sulle nuove tariffe di connessione o sul numero di connessioni permanenti.
Riduci l'output del proxy di autenticazione Cloud SQL
Se è necessario ridurre le dimensioni del log di autenticazione Cloud SQL, puoi farlo impostando --quiet
all'avvio del proxy di autenticazione Cloud SQL. Tuttavia, tieni presente 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 allo stesso modo delle connessioni su IP: tutte le connessioni esistenti vengono perse e l'applicazione deve stabilire nuove connessioni. Tuttavia, non è necessario alcun intervento manuale; l'applicazione può continuare a utilizzare le stesse stringhe di connessione di prima.
Mantieni 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 diventa 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 l'ambiente. Per visualizzare la versione attuale di Cloud SQL Auth Proxy, consulta la pagina delle release di GitHub di Cloud SQL Auth Proxy.
Come applicare in modo forzato l'utilizzo del proxy di autenticazione Cloud SQL
Puoi applicare in modo forzato l'utilizzo del proxy di autenticazione Cloud SQL nelle connessioni dell'istanza Cloud SQL tramite ConnectorEnforcement. Con l'applicazione del connettore, la connessione diretta al database viene rifiutata.
Per utilizzare l'applicazione del connettore, usa il campo ConnectorEnforcement
nell'API instances
.
Per ulteriori informazioni, consulta la sezione Modificare le istanze.
Informazioni sull'operatore proxy Cloud SQL
L'operatore proxy Cloud SQL è un operatore Kubernetes open source che automatizza il collegamento 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 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 restituisce le informazioni di debug e fornisce indicazioni per risolvere i problemi di configurazione più comuni.
Per ulteriori informazioni, consulta Connettiti utilizzando l'operatore proxy Cloud SQL.