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

In questa pagina viene descritto come connettersi a un account Cloud SQL dall'esterno del VPC (Virtual Private Cloud) configurato.

Prima di iniziare

Prima di iniziare, assicurati di completare le seguenti azioni:

  1. Crei un'istanza Cloud SQL.
  2. Configuri 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 in esecuzione in un'istanza Compute Engine. Questa connessione in peering ti consente di utilizzare indirizzi IP interni per accedere alle risorse nel VPC dell'istanza come se facessero parte del tuo VPC.

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

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

  • L'applicazione viene eseguita in una VPC esistente al di fuori della rete di Google.

  • L'applicazione viene eseguita su una macchina che si trova da qualche parte altro ancora sulla rete internet pubblica.

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

Ti consigliamo le seguenti soluzioni per effettuare connessioni esterne, a seconda delle tue esigenze:

Le sezioni seguenti descrivono queste soluzioni.

Connettiti tramite una VM intermedia

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

In quanto soluzione autogestita, l'utilizzo di una VM intermedia in genere ha un costo inferiore e un tempo di configurazione più rapido rispetto all'utilizzo di un prodotto di connettività di rete. Presenta anche degli svantaggi: la disponibilità della connessione, la sicurezza e la velocità effettiva dei dati dipendono tutte dall'intermediario che devi gestire come parte del progetto.

Connettiti tramite IAP

Con Identity-Aware Proxy (IAP), puoi connettersi all'istanza Cloud SQL in modo sicuro senza dover esporre l'indirizzo IP interno della VM intermedia. Utilizza una combinazione di regole di firewall e Identity and Access Management (IAM) per limitare l'accesso tramite questo percorso. Questo rende gli acquisti in-app una buona soluzione per usi non di produzione come sviluppo e prototipazione.

Architettura di Identity-Aware Proxy

In questo diagramma, l'IAP funge da gateway tra il client esterno esterno al VPC e la VM intermedia all'interno del VPC. Il client crea un tunnel SSH per l'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:

  1. Sul client esterno, installa gcloud CLI.

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

  3. Nella 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 verso porta 22 (SSH). Se utilizzi la rete predefinita del progetto con la regoladefault-allow-ssh precompilata attivata, non è necessario definire un'altra regola.

  5. Configura il port forwarding 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 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, testa la connessione utilizzando mysql.

Connettiti tramite un proxy SOCKS

L'esecuzione di un servizio SOCKS sulla VM intermedia fornisce un servizio 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 Eseguire la connessione utilizzando un proxy intermedio (SOCKS5).

Connettiti tramite un pooler

Se devi installare ed eseguire il proxy di autenticazione Cloud SQL sulla VM intermedia, invece che su un client esterno, puoi attivare le connessioni sicure accoppiandolo a un proxy consapevole del protocollo, noto anche come pooler. Un pooler open source molto utilizzato per MySQL è ProxySQL.

In questa soluzione, esegui sia il proxy di autenticazione Cloud SQL sia il pooler sulla VM intermediaria. Il client o l'applicazione può quindi connettersi in modo sicuro direttamente al pooler tramite SSL, senza dover 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, ciascun servizio proxy può comunicare una sola istanza specifica: l'istanza principale, quella in standby o un pool di lettura. Pertanto, 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 un'alta disponibilità (HA), consigliamo di utilizzare un prodotto di connettività di rete di Google Cloud, come Cloud VPN o Cloud Interconnect, a seconda delle esigenze e della topologia di rete del servizio esterno. Poi, configura il router Cloud per pubblicizzare le route appropriate.

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

Passaggi successivi