Informazioni sul proxy di autenticazione Cloud SQL

Questa pagina riassume il proxy di autenticazione Cloud SQL e descrive come utilizzarlo per stabilire 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 la connessione Cloud SQL dall'ambiente standard di App Engine o nell'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 di Compute Engine senza una necessità di reti autorizzate o per la configurazione di SSL.

Il proxy di autenticazione Cloud SQL altri connettori Cloud SQL hanno 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 della crittografia determinata Regole di Go. Vengono utilizzati certificati SSL per verificare le identità client e server. Inoltre, sono indipendenti dal database protocolli; non dovrai gestire i certificati SSL.
  • Autorizzazione di connessione semplificata: il proxy di autenticazione Cloud SQL utilizza le autorizzazioni IAM per per controllare chi e cosa può connettersi alle tue istanze Cloud SQL. Di conseguenza, Il proxy di autenticazione Cloud SQL gestisce l'autenticazione con Cloud SQL, eliminando la necessità di fornire indirizzi IP statici.
  • Autenticazione dei database IAM. Facoltativamente, il proxy di autenticazione Cloud SQL supporta una aggiornamento automatico dei token di accesso OAuth 2.0. Per informazioni al riguardo, funzionalità, consulta Autenticazione IAM dei database Cloud SQL.

Il proxy di autenticazione Cloud SQL non fornisce un nuovo percorso di connettività; si basa su indirizzi IP esistenti e la connettività privata. Per connetterti a un'istanza Cloud SQL utilizzando 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

Per eseguire il proxy di autenticazione Cloud SQL è necessario eseguire un client locale nell'ambiente locale. La tua applicazione comunica con il proxy di autenticazione Cloud SQL con il protocollo standard del 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, controlla se è presente e l'istanza Cloud SQL di destinazione. Se una connessione non esiste, 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 tra circa un'ora. Aggiornamenti del proxy di autenticazione Cloud SQL i certificati prima che scadano.

Sebbene il proxy di autenticazione Cloud SQL possa rimanere in ascolto su qualsiasi porta, crea traffico in uscita o in uscita 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 consentiti. Se sul computer client è configurato un criterio firewall in uscita, esegui assicurati che consenta le connessioni in uscita verso la porta 3307 sul tuo Cloud SQL l'IP dell'istanza.

Il proxy di autenticazione Cloud SQL non fornisce pooling di connessioni, ma può essere abbinato 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:

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 il proxy di autenticazione Cloud SQL con 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 l'utilizzo IP privato.

    L'indirizzo IP pubblico non deve essere accessibile a nessun indirizzo esterno (non è necessario aggiungerlo come indirizzo di rete autorizzato).

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.11.4/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.11.4/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.11.4/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.11.4/cloud-sql-proxy.darwin.arm64
      
  2. Rendi eseguibile il proxy di autenticazione Cloud SQL:
      chmod +x cloud-sql-proxy
      

Windows a 64 bit

Clic destro https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.4/cloud-sql-proxy.x64.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file come cloud-sql-proxy.exe.

Windows a 32 bit

Clic destro https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.4/cloud-sql-proxy.x86.exe e seleziona Salva link con nome per scaricare il proxy di autenticazione Cloud SQL. Rinomina il file come cloud-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 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, vedi 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.4

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 troverà le credenziali che userà per autenticare la tua 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 il proxy di autenticazione rimane in ascolto su una TCP o su un socket Unix. Se è in ascolto su un socket Unix, crea una presa di corrente nella posizione 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 in visualizza l'elenco completo delle opzioni di avvio.

Puoi installare il proxy di autenticazione Cloud SQL ovunque nel tuo ambiente locale. La posizione di i file binari del proxy di autenticazione Cloud SQL non influiscono sulla posizione in cui ascolta i dati dal tuo un'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 usare un account di servizio allo scopo di creare un file di credenziali specifico per al proxy di autenticazione Cloud SQL ed è collegato in modo esplicito e permanente al proxy di autenticazione Cloud SQL, purché sia in esecuzione. Per questo motivo, l'utilizzo di un account di servizio è il metodo consigliato per la produzione non in esecuzione su un'istanza 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ù macchine.

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

Scopri come Crea 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, deve crearlo con autorizzazioni sufficienti. Se utilizzi l'architettura Identity Access and Management (IAM) per gestire Cloud SQL, devi assegnare all'account di servizio un ruolo include l'autorizzazione cloudsql.instances.connect. Il valore predefinito I ruoli di Cloud SQL che includono questa autorizzazione sono:

  • Client Cloud SQL
  • Editor Cloud SQL
  • Amministratore Cloud SQL

Se utilizzi i ruoli di progetto legacy (Visualizzatore, Editor, Proprietario), il servizio dell'account deve avere almeno il ruolo Editor.

Mantieni aggiornato il proxy di autenticazione Cloud SQL

Di tanto in tanto, Google rilascia nuove versioni del proxy di autenticazione Cloud SQL. Puoi vedere quale attuale è controllare Pagina delle release di GitHub del proxy di autenticazione Cloud SQL. Le future release del proxy saranno indicate anche nella Forum di annunci di Cloud SQL per Google Gruppi.

Utilizzo delle API

Il proxy di autenticazione Cloud SQL invia richieste all'API Cloud SQL Admin. Queste richieste contano rispetto alla quota API del 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 ed emette due 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 usato per accedere all'istanza. Puoi utilizzare qualsiasi account utente del database a questo scopo. Tuttavia, poiché il proxy di autenticazione Cloud SQL si connette sempre da un nome host a cui è possibile accedere soltanto mediante il proxy di autenticazione Cloud SQL, puoi creare un account utente può essere utilizzato solo dal proxy di autenticazione Cloud SQL. Il vantaggio di questa operazione è che specificare questo account senza una password senza compromettere la sicurezza del dalla tua istanza o dai 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 l'indirizzo IP carattere jolly, che genererà 'cloudsqlproxy~%'. Il nome completo dell'account utente sarebbe:

'[USER_NAME]'@'cloudsqlproxy~%'

o

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

Per informazioni sulla creazione di un utente, consulta Creazione e gestione degli utenti. Per informazioni su come funziona Cloud SQL con gli account utente, consulta Utenti. Per informazioni sugli account utente MySQL, consulta Protezione degli account MySQL iniziali nel 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. Questi determinano dove e come il proxy di autenticazione Cloud SQL crea i socket che utilizza che comunica con Cloud SQL e come si autentica.

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 sta per "File system nello spazio utente". A seconda di come viene richiamato il proxy di autenticazione Cloud SQL, facoltativamente utilizzare FUSE per creare dai socket che utilizza per connettersi a Cloud SQL.

Quando ti connetti da Compute Engine o da ambienti di sviluppo locale, Il proxy di autenticazione Cloud SQL utilizza FUSE per accedere alle istanze Cloud SQL nel modo seguente:

  • La directory "/cloudsql" è montata come file system nello spazio utente oppure FUSE, da 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 punta a un socket Unix situato in un'altra posizione del file system.

  • Il processo (ad esempio mysql) segue il link e apre il socket Unix a cui conduce e che collega.

Installazione di FUSE

Per Linux:

FUSE richiede il programma fusermount e un modulo kernel per personalizzata. Puoi verificare se questo programma è installato cercando il link file, /dev/fuse/. Se fusermount non è nel tuo sistema, puoi installarlo utilizzando il gestore di pacchetti o compilando il file dal codice sorgente.

Per macOS:

Installa FUSE per macOS.

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, esistono alcune per assicurarti che il proxy di autenticazione Cloud SQL fornisca i necessari la disponibilità per la tua applicazione.

Assicurati 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 che lo attraversano vengono e l'applicazione non può più creare connessioni 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 viene riavviato automaticamente. A questo scopo, puoi utilizzare come systemd, upstart o supervisor. Per sistemi operativi Windows esegui il proxy di autenticazione Cloud SQL come servizio di Windows. In generale, assicurati che il proxy di autenticazione Cloud SQL gli stessi requisiti di uptime del processo di applicazione.

Numero di copie del proxy di autenticazione Cloud SQL necessarie alla tua applicazione

Non è necessario creare un processo proxy per ogni processo di richiesta. molti i processi dell'applicazione possono condividere un singolo processo proxy di autenticazione Cloud SQL. Esegui un 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 è incluso nella configurazione della macchina virtuale, in modo che ogni volta una macchina virtuale avviata, ha il suo processo proxy di autenticazione Cloud SQL.

Sta a te gestire il numero di connessioni richieste dalla tua applicazione, limitando o raggruppando le connessioni. Il proxy di autenticazione Cloud SQL non inserisce alcun Limitazioni sulle nuove velocità di connessione o sul 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 all'avvio del proxy di autenticazione Cloud SQL. Ricorda, tuttavia, che le attività Riduce quindi l'efficacia dell'output del proxy di autenticazione Cloud SQL nella diagnosi della connessione che le applicazioni presentino problemi di prestazioni.

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 un failover, le connessioni tramite il proxy di autenticazione Cloud SQL vengono applicate allo stesso modo come connessioni su IP: tutte le connessioni esistenti vengono perse e l'applicazione devono stabilire nuove connessioni. Tuttavia, non è richiesto alcun intervento manuale. il può continuare a usare 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 è disponibile una nuova versione del proxy di autenticazione Cloud SQL, esegui il pull dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato l'ambiente. Tu vedere la versione corrente del proxy di autenticazione Cloud SQL controllando Pagina delle release di GitHub del proxy di autenticazione Cloud SQL.

Come applicare in modo forzato l'utilizzo del proxy di autenticazione Cloud SQL

Puoi applicare in modo forzato l'uso del proxy di autenticazione Cloud SQL nelle connessioni dell'istanza Cloud SQL utilizzando 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 connettere i carichi di lavoro in un cluster GKE ai database Cloud SQL. La 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. 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 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 proxy di autenticazione Cloud SQL restituisce le informazioni di debug, e ti offre indicazioni per risolvere i problemi di configurazione più comune che le applicazioni presentino problemi di prestazioni.

Per ulteriori informazioni, consulta Connettiti utilizzando l'operatore proxy Cloud SQL.

Passaggi successivi