Panoramica della connessione

Per connettere in modo sicuro le tue applicazioni e i tuoi strumenti ai database AlloyDB per PostgreSQL, puoi configurare il networking, l'autorizzazione, l'autenticazione e il connection pooling:

  • Networking: le istanze AlloyDB utilizzano indirizzi IP pubblici o privati su una rete Virtual Private Cloud (VPC). Esistono diverse opzioni che consentono connessioni sicure dalle applicazioni in esecuzione all'esterno della rete VPC.

  • Autorizzazione: il proxy di autenticazione AlloyDB e gli AlloyDB Language Connector ti consentono di utilizzare Identity and Access Management (IAM) per controllare chi ha accesso ai tuoi dati. Le regole firewall della tua rete VPC ti consentono di ottimizzare ulteriormente l'accesso alle risorse AlloyDB.

  • Autenticazione: utilizza le tecniche di autenticazione utente PostgreSQL standard per accedere alle tue istanze. AlloyDB supporta anche l'autenticazione basata su IAM utilizzando i ruoli utente PostgreSQL standard.

  • Pooling: per migliorare l'affidabilità, le prestazioni e la scalabilità, utilizza il pooling di connessioni lato client standard di PostgreSQL e il pooling di connessioni gestite lato server.

Per indicazioni su come scegliere la configurazione di connettività corretta per il tuo workload, consulta Scegli un'opzione di connettività.

Networking

Anche se un'istanza AlloyDB contiene molti nodi, le tue applicazioni si connettono a un'istanza tramite un unico indirizzo IP statico. Questo indirizzo può essere un indirizzo IP privato sulla rete VPC che specifichi durante la configurazione iniziale del cluster di un'istanza o un indirizzo IP pubblico che consente connessioni dirette dall'esterno della rete VPC.

IP privato

Quando configuri AlloyDB con un IP privato, l'istanza riceve un indirizzo IP privato all'interno della tua rete VPC.

Gli indirizzi IP privati influiscono sulle connessioni alla tua applicazione in due modi:

  • Le applicazioni in esecuzione altrove all'interno della rete VPC del progetto possono connettersi all'istanza o a un proxy che la rappresenta, senza passaggi o risorse aggiuntivi.

    Ad esempio, Connettiti da Compute Engine mostra come connetterti alla tua istanza AlloyDB eseguendo il programma a riga di comando psql su una VM Compute Engine all'interno della tua rete VPC.

  • Le applicazioni in esecuzione all'esterno della rete VPC richiedono un servizio intermediario per connettersi all'istanza AlloyDB. Le soluzioni includono l'esecuzione di servizi di proxy su una VM all'interno della rete VPC dell'istanza o l'utilizzo di altri prodottiGoogle Cloud per stabilire una connessione permanente tra l'applicazione e la rete VPC.

    Per saperne di più, consulta Connettiti a un cluster dall'esterno del relativo VPC.

Le connessioni su IP privato in genere offrono una latenza inferiore e vettori d'attacco limitati perché non richiedono l'attraversamento di internet.

Per scoprire di più sull'IP privato in AlloyDB, consulta la panoramica dell'IP privato.

IP pubblico

Quando configuri AlloyDB con un IP pubblico, l'istanza riceve un indirizzo IP pubblico per le connessioni in entrata accessibile sulla rete internet pubblica. Facoltativamente, puoi utilizzare reti esterne autorizzate per specificare un intervallo di indirizzi IP in formato CIDR che possono accedere alla tua istanza.

Ti consigliamo di utilizzare l'IP pubblico con gli AlloyDB Language Connector o il proxy di autenticazione AlloyDB per garantire connessioni sicure tra il client e l'istanza.

Per saperne di più sull'aggiunta di un indirizzo IP pubblico e di reti esterne autorizzate alla tua istanza, consulta Connettiti utilizzando l'IP pubblico.

AlloyDB supporta anche le connessioni in uscita dalla tua istanza alla rete internet pubblica. Quando abiliti l'IP pubblico in uscita, AlloyDB fornisce un indirizzo IP di origine coerente e prevedibile per il traffico che esce dalla tua istanza AlloyDB verso la rete internet pubblica. Quando attivi questa funzionalità, AlloyDB esegue il provisioning di una coppia di indirizzi IP pubblici statici che vengono utilizzati esclusivamente per le connessioni in uscita dalla tua istanza.

Le connessioni in uscita sono particolarmente utili per i seguenti scenari:

  • Migrazione del database: quando esegui la migrazione dei dati da un database esterno ad AlloyDB utilizzando Database Migration Service, puoi configurare il firewall del database esterno in modo da consentire le connessioni dagli indirizzi IP in uscita specifici della tua istanza AlloyDB, garantendo un percorso di trasferimento dei dati sicuro.

  • Wrapper di dati esterni: se devi eseguire query sui dati di un database esterno all'interno di AlloyDB utilizzando wrapper di dati esterni come postgres_fdw o oracle_fdw, puoi aggiungere gli indirizzi IP in uscita dell'istanza alla lista consentita del database esterno. Questa configurazione consente ad AlloyDB di connettersi ed eseguire query sull'origine dati esterna in modo sicuro.

Quando attivi l'IP pubblico in uscita, puoi visualizzare gli indirizzi IP assegnati nella console Google Cloud o utilizzando gcloud CLI. Puoi quindi utilizzare questi indirizzi IP per configurare regole firewall o elenchi di controllo dell'accesso (ACL) sui tuoi sistemi esterni per concedere all'istanza AlloyDB l'accesso ai tuoi sistemi esterni.

Per saperne di più sull'attivazione dell'IP pubblico in uscita, consulta Aggiungi la connettività in uscita a un'istanza.

Autorizzazione

Puoi controllare l'accesso a un cluster AlloyDB utilizzando AlloyDB Language Connectors, il proxy di autenticazione AlloyDB o le regole firewall VPC.

Connettori dei linguaggi AlloyDB

Gli AlloyDB Language Connector sono librerie client che forniscono mTLS automatizzato utilizzando TLS 1.3 e l'autorizzazione IAM durante la connessione a un cluster AlloyDB.

Puoi utilizzare queste librerie direttamente dai rispettivi linguaggi di programmazione. Offrono le stesse funzionalità del proxy di autenticazione senza richiedere un processo esterno. Questo approccio offre una maggiore sicurezza e requisiti di configurazione ridotti per la connessione ad AlloyDB.

Per saperne di più, consulta la panoramica dei connettori di linguaggio AlloyDB.

Connettiti utilizzando gcloud

Per le sessioni di database interattive, puoi utilizzare il comando gcloud beta alloydb connect. Questo comando semplifica il processo di connessione gestendo automaticamente un'istanza locale del proxy di autenticazione AlloyDB e avviando una sessione client psql per te.

Per saperne di più, consulta Connettiti utilizzando gcloud.

Controlla l'accesso con IAM e il proxy di autenticazione AlloyDB

Sebbene sia possibile connettersi direttamente a un'istanza tramite il suo indirizzo IP, consigliamo di utilizzare il proxy di autenticazione AlloyDB negli ambienti di produzione. Fornisce controllo dell'accesso basato su IAM e la crittografia end-to-end tra il proxy e il cluster.

Per saperne di più, consulta Informazioni sul proxy di autenticazione AlloyDB.

Limita l'accesso al VPC con le regole firewall

Come per qualsiasi progetto basato su cloud, devi ottimizzare le regole firewall della tua rete VPC per limitare l'accesso alla rete solo agli intervalli IP o alle subnet da cui si connettono le tue applicazioni. Questa pratica è particolarmente importante con le applicazioni esterne, come descritto in Connettiti a un cluster dall'esterno del relativo VPC.

Per ulteriori informazioni sulla configurazione del firewall della rete VPC, consulta Regole firewall VPC.

Autenticazione

AlloyDB supporta due tipi di utenti del database, ognuno dei quali ha il proprio modo di autenticarsi con i database:

  • I ruoli utente PostgreSQL standard eseguono l'autenticazione utilizzando un nome utente e una password. Puoi gestire questi account utilizzando le normali tecniche di gestione degli utenti di PostgreSQL. Per saperne di più, consulta Gestisci gli utenti PostgreSQL con l'autenticazione integrata.

  • Gli utenti IAM e i service account si autenticano come utenti del database utilizzando i token OAuth 2.0. Questi account vengono gestiti utilizzando il sistema IAM diGoogle Cloud . Per saperne di più, consulta Gestisci l'autenticazione IAM.

Dopo l'autenticazione con un'istanza AlloyDB, un'applicazione può trattare l'istanza come un normale server PostgreSQL. Dopo aver stabilito i percorsi di networking e autorizzazione per un'istanza, puoi utilizzare le tecniche PostgreSQL standard per accedere a un'istanza e ai tuoi dati. Questo vale sia che l'accesso venga eseguito manualmente con uno strumento come psql, sia che la connessione al database venga eseguita in modo programmatico utilizzando una libreria di codice PostgreSQL.

In genere, la prima autenticazione con un nuovo cluster AlloyDB prevede l'accesso alla sua istanza principale come utente postgres, utilizzando la password specificata durante la creazione del cluster. Da qui, puoi creare utenti del database senza privilegi amministrativi per l'utilizzo della tua applicazione.

Se non imposti una password per postgres durante la creazione di un cluster, non puoi accedere al cluster. Per accedere, imposta una password per postgres o crea un utente aggiuntivo. Per saperne di più, consulta Gestisci gli utenti PostgreSQL con l'autenticazione integrata.

Pooling

Il connection pooling è una tecnica che ti aiuta a garantire che il tuo workload abbia una connessione affidabile e ad alte prestazioni al tuo database. È utile sia sul lato client che sul lato server.

Pool di connessioni client

Quando ti connetti ad AlloyDB, utilizza un pool di connessioni client. Il pool di connessioni client crea più connessioni al database e si assicura che rimangano attive e integre per tutta la durata del workload. Questo approccio garantisce che il workload abbia una connessione affidabile al database.

  • Quando esegui le query manualmente dalla riga di comando.
  • Quando utilizzi un linguaggio che non supporta il pooling delle connessioni client.
  • Quando il workload è temporaneo e non mantiene una connessione di lunga durata.

Puoi utilizzare qualsiasi pool di connessioni client standard che supporti PostgreSQL. Tieni presente quanto segue:

  • La libreria del pool di connessioni client a volte è separata dal driver PostgreSQL.
  • Il driver PostgreSQL a volte include la funzionalità di pooling delle connessioni client nella stessa libreria.

Di seguito sono riportate le librerie di pool di connessioni di uso comune:

Se la libreria supporta PostgreSQL, puoi utilizzarla con AlloyDB.

Configura i pool di connessioni client

Per ottenere le migliori prestazioni dal pool di connessioni client, potrebbe essere necessario configurare le dimensioni del pool. Utilizza la seguente formula come punto di partenza:

connections = (vCPU count * 2) + 1

Per saperne di più, consulta Informazioni sul dimensionamento del pool. A seconda dei carichi reali, potrebbe essere necessario eseguire un'ulteriore ottimizzazione.

Utilizza il pool di connessioni gestito

Oltre al pooling delle connessioni client, AlloyDB supporta anche il pooling delle connessioni lato server con il pooling delle connessioni gestito.

Sebbene sia possibile utilizzare il pool di connessioni gestito per qualsiasi workload transazionale, il pool di connessioni gestito è più adatto per le applicazioni che contengono più connessioni di breve durata o per le applicazioni che potrebbero subire un picco di connessioni. Per saperne di più, consulta Configura il pool di connessioni gestite.

Passaggi successivi