Connettiti a un'istanza Cloud SQL dall'esterno della relativa VPC

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

Prima di iniziare

Prima di iniziare, assicurati di completare le seguenti azioni:

  1. Crea un'istanza Cloud SQL.
  2. 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 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 ti consente di utilizzare 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 ai servizi privati 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 su internet pubblico.

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

A seconda delle tue esigenze, ti consigliamo le seguenti soluzioni per stabilire connessioni esterne:

Le sezioni seguenti descrivono queste soluzioni.

Connettiti tramite una VM intermediaria

Per stabilire una connessione a un'istanza Cloud SQL dall'esterno del relativo VPC utilizzando strumenti open source e un numero minimo di risorse aggiuntive, esegui un servizio proxy su una VM intermedia configurata all'interno di questo 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 intermediaria in genere costa meno e ha un tempo di configurazione più rapido rispetto all'utilizzo di unaConnettività di reterk Connectivity. Ha anche degli svantaggi: la disponibilità, la sicurezza e la velocità effettiva dei dati della connessione dipendono dalla VM intermediaria, che devi gestire nell'ambito del tuo progetto.

Connettiti tramite IAP

Utilizzando Identity-Aware Proxy (IAP), puoi connetterti in modo sicuro alla tua istanza Cloud SQL senza dover esporre l'indirizzo IP interno della VM intermediaria. Utilizzi una combinazione di regole firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questo percorso. Ciò rende IAP una buona soluzione per utilizzi 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 che si trova al di fuori del VPC e la VM intermediaria 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. Tramite questi due proxy, viene stabilita la comunicazione tra il client e l'istanza.

Per configurare l'accesso IAP alla tua istanza, segui questi passaggi:

  1. Sul client esterno, installa gcloud CLI.

  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 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 di IAP.

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

  5. Configura l'inoltro delle porte tra il client esterno e la VM intermediaria 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
  6. Sul client esterno, testa la connessione utilizzando un client SQL Server.

Connessione 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 saperne di più 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 attivare connessioni sicure associandolo a un proxy compatibile con il protocollo, noto anche come pooler. Un pooler open source popolare per SQL Server è ADO.NET.

In questa soluzione, esegui sia il proxy di autenticazione Cloud SQL sia il pooler sulla VM intermediaria. 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 passare 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 primaria, quella di standby o un pool di lettura. Pertanto, per ogni istanza devi eseguire un servizio di pooling separato con un certificato SSL configurato in modo appropriato.

Connettiti tramite Cloud VPN o Cloud Interconnect

Per il lavoro di produzione che richiede alta disponibilità (HA), consigliamo l'utilizzo di un prodotto Google Cloud Network Connectivity, come Cloud VPN o Cloud Interconnect, a seconda delle esigenze del servizio esterno e della topologia di rete. Poi configuri Cloud Router per annunciare le route appropriate.

Per scoprire di più sulle soluzioni di connettività di rete, consulta Scegliere un prodotto di connettività di rete.

Passaggi successivi