Panoramica della connessione

Questa pagina descrive la connettività ai database gestiti da AlloyDB per PostgreSQL. Per ulteriori informazioni, consulta Scegliere come connettersi ad AlloyDB.

  • Networking:le istanze AlloyDB utilizzano IP pubblici o privati su un virtual private cloud (VPC). Varie tecniche consentono connessioni sicure da applicazioni in esecuzione all'esterno del VPC.

  • Autorizzazione: il proxy di autenticazione AlloyDB ti consente di utilizzare Identity and Access Management (IAM) per controllare chi ha accesso ai tuoi dati. Il firewall del VPC ti consente di ottimizzare ulteriormente l'accesso alle risorse AlloyDB.

  • Autenticazione:utilizza le tecniche di autenticazione utente PostgreSQL standard per accedere alle 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 pool di connessioni lato client PostgreSQL standard e il pool di connessioni gestito lato server.

Networking

Anche se un'istanza AlloyDB contiene molti nodi, le applicazioni si connettono a un'istanza tramite un singolo indirizzo IP statico. Questo indirizzo può essere un IP privato per il VPC specificato durante la prima configurazione del cluster di un'istanza o un IP pubblico che consente connessioni dirette dall'esterno del VPC.

IP privato

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

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

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

    Ad esempio, Connettere un client psql a un' istanza mostra come connetterti all' istanza AlloyDB eseguendo il programma a riga di comando psql su una VM di Compute Engine all'interno del VPC.

  • Le applicazioni in esecuzione all'esterno del VPC richiedono un servizio intermedio per connettersi all'istanza AlloyDB. Le soluzioni includono l'esecuzione di servizi proxy su una VM all'interno del VPC dell'istanza o l'utilizzo di altri Google Cloud prodotti per stabilire una connessione permanente tra l'applicazione e il VPC.

    Per ulteriori informazioni, consulta Connettersi a un cluster dall'esterno del VPC.

In genere, le connessioni tramite IP privato offrono una latenza inferiore e vettori di 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 su internet pubblico. Facoltativamente, puoi utilizzare le reti esterne autorizzate per specificare un intervallo di indirizzi IP in formato CIDR che possono accedere all'istanza.

Ti consigliamo di utilizzare l'IP pubblico con i connettori dei linguaggi AlloyDB per garantire connessioni sicure tra il client e l'istanza.

Per ulteriori informazioni sull'aggiunta di un IP pubblico e di reti esterne autorizzate all' istanza, consulta Connettersi utilizzando l'IP pubblico.

AlloyDB supporta anche le connessioni in uscita dall'istanza a internet pubblico. Quando abiliti l'IP pubblico in uscita, AlloyDB fornisce un indirizzo IP di origine coerente e prevedibile per il traffico che lascia l'istanza AlloyDB verso internet pubblico. Quando abiliti questa funzionalità, AlloyDB esegue il provisioning di una coppia di indirizzi IP pubblici statici utilizzati esclusivamente per le connessioni in uscita dall'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 (DMS), puoi configurare il firewall del database esterno in modo da consentire le connessioni dagli indirizzi IP in uscita specifici dell'istanza AlloyDB, garantendo un percorso di trasferimento dei dati sicuro.

  • Foreign Data Wrapper: se devi eseguire query sui dati da un database esterno all'interno di AlloyDB utilizzando foreign data wrapper come postgres_fdw o oracle_fdw, puoi aggiungere gli indirizzi IP in uscita dell'istanza alla lista consentita del database esterno. In questo modo, AlloyDB può connettersi ed eseguire query sull'origine dati esterna in modo sicuro.

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

Per ulteriori informazioni sull'abilitazione dell'IP pubblico in uscita, consulta Aggiungere la connettività in uscita a un'istanza.

Autorizzazione

Puoi controllare l'accesso a un cluster AlloyDB utilizzando i connettori dei linguaggi AlloyDB, il proxy di autenticazione AlloyDB o le regole firewall VPC.

Connettori dei linguaggi AlloyDB

I connettori dei linguaggi AlloyDB sono librerie client che forniscono mTLS automatizzato utilizzando TLS 1.3 e l'autorizzazione IAM quando si connettono a un cluster AlloyDB.

Puoi utilizzare queste librerie direttamente dai rispettivi linguaggi di programmazione. Forniscono le stesse funzionalità del proxy AlloyDB senza richiedere un processo esterno. In questo modo, la sicurezza è migliorata e i requisiti di configurazione per la connessione ad AlloyDB sono ridotti.

Per ulteriori informazioni, consulta la panoramica dei connettori dei linguaggi AlloyDB.

Connettersi 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 ulteriori informazioni, consulta Connettersi utilizzando gcloud.

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

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

Per ulteriori informazioni, consulta Informazioni sul proxy di autenticazione AlloyDB.

Limitare l'accesso VPC con le regole firewall

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

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

Autenticazione

AlloyDB supporta due tipi di utenti di database, ognuno dei quali ha un 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 PostgreSQL. Per ulteriori informazioni, consulta Gestire i ruoli utente AlloyDB.

  • Gli utenti IAM e gli account di servizio eseguono l'autenticazione come utenti di database utilizzando i token OAuth 2.0. Puoi gestire questi account utilizzando il Google Cloud sistema IAM. Per ulteriori informazioni, consulta Gestire l'autenticazione IAM.

Una volta autenticata con un'istanza AlloyDB, un'applicazione può trattare l'istanza come un normale server PostgreSQL. Dopo aver stabilito le route di networking e autorizzazione a un'istanza, puoi utilizzare le tecniche PostgreSQL standard per accedere a un'istanza e ai tuoi dati. Questo vale sia per l'accesso manuale con uno strumento come psql sia per la connessione al database a livello di programmazione 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, devi creare utenti di database senza privilegi amministrativi per l'utilizzo dell'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 ulteriori informazioni, consulta Gestire gli utenti PostgreSQL con l'autenticazione integrata.

Pooling

Il pool di connessioni è una tecnica che ti aiuta a garantire che il tuo workload abbia una connessione affidabile e performante al 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 garantisce che queste connessioni rimangano attive e integre per tutta la durata del workload. Questo approccio garantisce che il workload abbia una connessione affidabile al database.

  • Quando esegui query manualmente dalla riga di comando.
  • Quando utilizzi un linguaggio che non supporta il pool di connessioni client.
  • Quando il workload è effimero e non manterrà una connessione a 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 pool di 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.

Configurare 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 ulteriori informazioni, consulta Informazioni sulle dimensioni del pool. A seconda dei carichi reali, potrebbe essere necessario eseguire un'ulteriore ottimizzazione.

Utilizzare il pool di connessioni gestito

Oltre al pool di connessioni client, AlloyDB supporta anche il pool di connessioni lato server con il pool di connessioni gestito.

Sebbene tu possa utilizzare il pool di connessioni gestito per qualsiasi workload transazionale, è più adatto alle applicazioni che contengono più connessioni di breve durata o alle applicazioni che potrebbero subire un aumento delle connessioni. Per ulteriori informazioni, consulta Configurare il pool di connessioni gestito.

Passaggi successivi