Questa pagina descrive come connetterti a un'istanza Cloud SQL dall'esterno del Virtual Private Cloud (VPC) configurato.
Prima di iniziare
Prima di iniziare, assicurati di completare le seguenti azioni:
- Crea un'istanza Cloud SQL.
- Configura l'istanza in modo che utilizzi un indirizzo IP interno anziché un indirizzo IP esterno.
Informazioni sulle connessioni esterne
L'istanza Cloud SQL è costituita da una serie 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 ti consente di utilizzare gli indirizzi IP interni per accedere alle risorse sul VPC dell'istanza come se facessero parte del tuo VPC.
Nelle seguenti situazioni, connettiti all'istanza dall'esterno di un VPC connesso:
La tua applicazione viene eseguita al di fuori del VPC che hai utilizzato per connetterti all'istanza tramite l'accesso privato ai servizi o Private Service Connect.
La tua applicazione viene eseguita su un VPC che esiste al di fuori della rete di Google.
La tua applicazione viene eseguita su una macchina che si trova altrove sulla rete internet pubblica.
In tutti questi casi, devi configurare un servizio aggiuntivo per abilitare questo tipo di connessione esterna all'istanza Cloud SQL.
A seconda delle tue esigenze, ti consigliamo le seguenti soluzioni per stabilire connessioni esterne:
Per lo sviluppo o la prototipazione di progetti o per un ambiente di produzione a costi relativamente contenuti , configura una macchina virtuale (VM) intermedia, nota anche come bastione, all'interno del VPC. Esistono vari metodi per basarsi su questa VM intermedia per trasformarla in una connessione sicura tra un ambiente di applicazione esterno e l'istanza Cloud SQL.
Per gli ambienti di produzione che richiedono alta affidabilità, valuta la possibilità di stabilire una connessione permanente tra il VPC e la tua applicazione tramite Cloud VPN o Cloud Interconnect.
Le sezioni seguenti descrivono queste soluzioni.
Connettersi 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 all'interno del VPC dell'istanza Cloud SQL.
In quanto soluzione autogestita, l'utilizzo di una VM intermedia in genere costa meno e ha un tempo di configurazione più rapido rispetto a l'utilizzo di un prodotto di connettività di rete. Presenta anche degli svantaggi: la disponibilità, la sicurezza e la velocità effettiva dei dati della connessione dipendono dalla VM intermedia, che devi gestire come parte del progetto.
Connettersi tramite IAP
Utilizzando Identity-Aware Proxy (IAP), puoi connetterti in modo sicuro all'istanza Cloud SQL senza dover esporre l'indirizzo IP interno della VM intermedia. Utilizzi una combinazione di regole firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questa route. Ciò rende IAP una buona soluzione per usi non di produzione come lo sviluppo e la prototipazione.
In questo diagramma, IAP funge da gateway tra il client esterno che si trova al di fuori del VPC e la VM intermedia che si trova nel VPC. Il client crea un tunnel SSH a IAP. Il proxy di autenticazione Cloud SQL cripta il traffico tra la VM e l'istanza Cloud SQL. Tramite questi due proxy, viene stabilita la comunicazione tra il client e l'istanza.
Per configurare l'accesso IAP all'istanza:
Sul client esterno, installa gcloud CLI.
Sulla VM intermedia, scarica e installa il proxy di autenticazione Cloud SQL.
Sulla VM intermedia, avvia il proxy di autenticazione Cloud SQL.
Poiché la VM è configurata con un indirizzo IP interno, quando avvii il proxy di autenticazione Cloud SQL devi fornire l'opzione
--private-ip.Nel tuo Google Cloud progetto, abilita l'inoltro TCP di IAP.
Quando definisci la nuova regola firewall, consenti il traffico TCP in entrata alla porta
22(SSH). Se utilizzi la rete predefinita del progetto con la regola precompilatadefault-allow-sshabilitata, non devi definire una regola aggiuntiva.Configura l'inoltro delle porte tra il client esterno e la VM intermedia utilizzando SSH tramite IAP:
gcloud compute ssh VM_NAME \ --tunnel-through-iap \ --zone=ZONE_NAME \ --ssh-flag="-L 1433:localhost:1433"
Effettua le seguenti sostituzioni:
- VM_NAME: il nome della VM
- ZONE_NAME: il nome della zona associata alla VM
Sul client esterno, testa la connessione utilizzando un client SQL Server.
Connettersi tramite un proxy SOCKS
L'esecuzione di un servizio SOCKS sulla VM intermedia fornisce una connessione flessibile e scalabile all'istanza Cloud SQL, con la crittografia end-to-end fornita dal proxy di autenticazione Cloud SQL.
Per ulteriori informazioni sull'utilizzo di un proxy SOCKS per connetterti all'istanza Cloud SQL, consulta Connessione tramite un proxy intermedio (SOCKS5).
Connettersi tramite un pooler
Se devi installare ed eseguire il proxy di autenticazione Cloud SQL sulla VM intermedia, anziché su un client esterno, puoi abilitare le connessione sicure associandolo a un proxy con riconoscimento del protocollo, noto anche come un pooler. Un pooler open source diffuso per SQL Server è ADO.NET.
In questa soluzione, esegui sia il proxy di autenticazione Cloud SQL sia il pooler sulla VM intermedia. Il client o l'applicazione possono quindi connettersi in modo sicuro direttamente al pooler tramite SSL, senza la necessità di eseguire servizi aggiuntivi. Il pooler si occupa di trasmettere le query PostgreSQL all'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, lo standby o un pool di lettura. Pertanto, per ogni istanza devi eseguire un servizio pooler separato con un certificato SSL configurato in modo appropriato.
Connettersi tramite Cloud VPN o Cloud Interconnect
Per il lavoro di produzione che richiede alta affidabilità (HA), ti consigliamo di utilizzare un prodotto di connettività di rete Google Cloud , come Cloud VPN o Cloud Interconnect, a seconda delle esigenze e della topologia di rete del servizio esterno. Configura quindi il router Cloud per annunciare le route appropriate.
Per saperne di più sulle soluzioni di connettività di rete, consulta Scegliere un prodotto di connettività di rete.
Passaggi successivi
- Scopri di più sull'IP privato.
- Scopri di più sull'accesso privato ai servizi e sulla connettività on-premise connettività nei VPC gestiti da Google.
- Scopri di più sull'utilizzo di Private Service Connect per connetterti a un'istanza Cloud SQL.