Connettiti a un'istanza Cloud SQL dall'esterno del relativo VPC

Questa pagina descrive come connettersi a un'istanza Cloud SQL dall'esterno del VPC configurato.

Prima di iniziare

Prima di iniziare, assicurati di completare le seguenti azioni:

  1. Devi creare un'istanza di Cloud SQL.
  2. Devi configurare l'istanza in modo che utilizzi un indirizzo IP interno anziché un indirizzo IP esterno.

Informazioni sulle connessioni esterne

L'istanza Cloud SQL è composta da un numero di nodi all'interno di un VPC gestito da Google. Quando crei un'istanza, configuri anche l'accesso privato ai servizi o Private Service Connect tra uno dei tuoi VPC e il VPC gestito da Google contenente la nuova istanza. Questa connessione in peering consente di utilizzare indirizzi IP interni per accedere alle risorse sul VPC dell'istanza come se facessero parte del tuo VPC.

Nelle situazioni seguenti, connettiti all'istanza dall'esterno di un VPC connesso:

  • L'applicazione viene eseguita al di fuori del VPC utilizzato per la connessione all'istanza tramite l'accesso privato ai servizi o Private Service Connect.

  • L'applicazione viene eseguita su un VPC esistente al di fuori della rete Google.

  • L'applicazione viene eseguita su un computer che si trova in un altro punto della rete internet pubblica.

In tutti questi casi, devi configurare un servizio aggiuntivo per abilitare questo tipo di connessione esterna all'istanza Cloud SQL.

Consigliamo le seguenti soluzioni per creare connessioni esterne, a seconda delle tue esigenze:

Nelle sezioni seguenti vengono descritte queste soluzioni.

Connettiti tramite una VM intermedia

Per stabilire una connessione a un'istanza Cloud SQL dall'esterno del VPC utilizzando strumenti open source e un minimo di risorse aggiuntive, esegui un servizio proxy su una VM intermedia configurata all'interno di quel VPC. Puoi configurare una nuova VM o utilizzare una VM già in esecuzione nel VPC della tua istanza Cloud SQL.

Essendo una soluzione autogestita, l'utilizzo di una VM intermedia in genere ha un costo inferiore e ha tempi di configurazione più rapidi rispetto all'utilizzo di un prodotto per la connettività di rete. Presenta anche degli svantaggi: disponibilità, sicurezza e velocità effettiva dei dati della connessione dipendono dalla VM intermedia, che devi mantenere come parte del tuo progetto.

Connetti tramite IAP

Utilizzando Identity-Aware Proxy (IAP), puoi connetterti all'istanza Cloud SQL in modo sicuro senza dover esporre l'indirizzo IP interno della VM intermedia. Puoi utilizzare una combinazione di regole firewall e Identity and Access Management (IAM) per limitare l'accesso attraverso questa route. Questo fa di IAP una soluzione adeguata per gli usi non di produzione, come lo sviluppo e la prototipazione.

Architettura di Identity-Aware Proxy

In questo diagramma, IAP funge da gateway tra il client esterno al di fuori del VPC e la VM intermedia che si trova nel VPC. Il client crea un tunnel SSH per IAP. Il proxy di autenticazione Cloud SQL cripta il traffico tra la VM e l'istanza Cloud SQL. Attraverso questi due proxy, viene stabilita la comunicazione tra il client e l'istanza.

Per configurare l'accesso IAP all'istanza:

  1. Sul tuo client esterno, installa l'interfaccia a riga di comando gcloud.

  2. Sulla VM intermedia, scarica e installa il proxy di autenticazione Cloud SQL.

  3. Sulla VM intermedia, avvia il proxy di autenticazione Cloud SQL.

    Poiché la tua VM è configurata con un indirizzo IP interno, quando avvii il proxy di autenticazione Cloud SQL, devi fornire l'opzione --private-ip.

  4. Nel tuo progetto Google Cloud, abilita l'inoltro TCP IAP.

    Quando definisci la nuova regola firewall, consenti il traffico TCP in entrata verso la porta 22 (SSH). Se utilizzi la rete predefinita del tuo progetto con la regola default-allow-ssh precompilata abilitata, non devi definire una regola aggiuntiva.

  5. Configura il port forwarding tra il client esterno e la VM dell'intermediario utilizzando Da SSH a IAP:

    gcloud compute ssh VM_NAME \
    --tunnel-through-iap \
    --zone=ZONE_NAME \
    --ssh-flag="-L 3306:localhost:3306"
    

    Effettua le seguenti sostituzioni:

    • VM_NAME: il nome della VM
    • ZONE_NAME: il nome della zona associata alla VM
  6. Sul client esterno, verifica la connessione utilizzando mysql.

Connettiti tramite un proxy SOCKS

L'esecuzione di un servizio SOCKS sulla VM intermedia fornisce una connessione flessibile e scalabile alla tua istanza Cloud SQL, con crittografia end-to-end fornita dal proxy di autenticazione Cloud SQL.

Per saperne di più sull'utilizzo di un proxy SOCKS per la connessione all'istanza Cloud SQL, consulta Connettersi utilizzando un proxy intermedio (SOCKS5).

Connettiti tramite un pooler

Se devi installare ed eseguire il proxy di autenticazione Cloud SQL sulla VM intermedia, anziché su un client esterno, puoi abilitare connessioni sicure al client associandolo a un proxy sensibile ai protocolli, noto anche come pooler. Un popolare pooler open source per MySQL è Proxy SQL.

In questa soluzione, esegui sia il proxy di autenticazione Cloud SQL sia il pooler sulla VM dell'intermediario. Il client o l'applicazione possono quindi connettersi in modo sicuro direttamente al pooler tramite SSL, senza dover eseguire servizi aggiuntivi. Il pooler si occupa di trasferire le query PostgreSQL alla tua istanza Cloud SQL tramite il proxy di autenticazione Cloud SQL.

Poiché ogni istanza Cloud SQL ha un indirizzo IP interno separato, ogni servizio proxy può comunicare con una sola istanza specifica: l'istanza principale, l'istanza di standby o un pool di lettura. Di conseguenza, per ogni istanza, devi eseguire un servizio pooler separato con un certificato SSL configurato in modo appropriato.

Connettiti tramite Cloud VPN o Cloud Interconnect

Per i lavori di produzione che richiedono una disponibilità elevata (HA), consigliamo l'utilizzo di un prodotto Google Cloud Network Connectivity, come Cloud VPN o Cloud Interconnect, a seconda delle esigenze del tuo servizio esterno e della topologia di rete. Successivamente, configurerai il router Cloud per pubblicizzare le route appropriate.

Per saperne di più sulle soluzioni per la connettività di rete, vedi Scegliere un prodotto per la connettività di rete.

Passaggi successivi