Panoramica della connessione

Questa pagina descrive la connettività ai database gestiti da AlloyDB per PostgreSQL. Per maggiori 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 al di fuori del VPC.

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

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

Networking

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

IP privato

Quando configuri AlloyDB con IP privato, la tua 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 nel VPC del progetto possono connettersi all'istanza o a un proxy che la rappresenta senza ulteriori passaggi o risorse.

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

  • Le applicazioni in esecuzione al di fuori 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 prodottiGoogle Cloud per stabilire una connessione permanente tra l'applicazione e il VPC.

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

Le connessioni tramite IP privato in genere 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 IP pubblico, la tua istanza riceve un indirizzo IP pubblico per le connessioni in entrata, accessibile su internet pubblico. Se vuoi, puoi utilizzare le 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 i connettori dei linguaggi AlloyDB per garantire connessioni sicure tra il client e l'istanza.

Per saperne di più sull'aggiunta di un IP pubblico e di reti esterne autorizzate all'istanza, consulta Connessione tramite IP pubblico.

AlloyDB supporta anche le connessioni in uscita alla tua istanza. Puoi attivare l'IP pubblico in uscita per eseguire la migrazione di un database in AlloyDB direttamente da un'origine esterna utilizzando Database Migration Service o configurazioni pglogical autogestite. AlloyDB supporta anche la connessione a un'origine dati esterna utilizzando wrapper di dati esterni, come postgres_fdw o oracle_fdw.

Per saperne di più 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 di linguaggio AlloyDB sono librerie client che forniscono mTLS automatica utilizzando TLS 1.3 e l'autorizzazione IAM quando ci si connette a un cluster AlloyDB.

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

Per maggiori informazioni, consulta la panoramica dei connettori di linguaggio AlloyDB.

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

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

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

Limitare l'accesso VPC con 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 tue applicazioni. Ciò è particolarmente importante con le applicazioni esterne, come descritto in Connettersi a un cluster dall'esterno del relativo VPC.

Per saperne di più sulla configurazione del firewall del 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 tuoi database:

  • I ruoli utente PostgreSQL standard si autenticano utilizzando un nome utente e una password. Gestisci questi account utilizzando le normali tecniche di gestione degli utenti PostgreSQL. Per saperne di più, consulta Gestire i ruoli utente AlloyDB.

  • Gli utenti IAM e i service account eseguono l'autenticazione come utenti del database utilizzando i token OAuth 2.0. Gestisci questi account utilizzando il sistemaGoogle Cloud IAM. Per saperne di più, 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 rete e autorizzazione a un'istanza, puoi utilizzare le tecniche PostgreSQL standard per accedere a un'istanza e ai tuoi dati. Ciò 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 comporta l'accesso alla sua istanza principale come utente postgres, utilizzando la password specificata durante la creazione del cluster. Da qui, devi creare utenti del 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 saperne di più, consulta Gestire gli utenti PostgreSQL con l'autenticazione integrata.

Pooling

Il pooling di connessioni è una tecnica che ti aiuta a garantire che il tuo workload abbia una connessione affidabile e performante al tuo database. È utile sia sul lato client che su quello 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 carico di lavoro. Questo approccio garantisce che il tuo workload abbia una connessione affidabile al database.

  • Quando esegui le query manualmente dalla riga di comando.
  • Quando utilizzi una lingua che non supporta il pooling delle connessioni client.
  • Quando il carico di lavoro è effimero e non manterrà una connessione a lunga durata.

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

  • A volte la libreria del pool di connessioni client è separata dal driver PostgreSQL.
  • A volte il driver PostgreSQL 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, potresti dover 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 che potrebbero subire un aumento delle connessioni. Per saperne di più, consulta Configurare il pool di connessioni gestito.

Passaggi successivi