Per stabilire connessioni autorizzate e criptate alle istanze AlloyDB, puoi utilizzare il proxy di autenticazione AlloyDB. Per saperne di più, consulta Informazioni sul proxy di autenticazione AlloyDB.
Per utilizzare il proxy di autenticazione AlloyDB, esegui diversi passaggi di configurazione una tantum, quindi avvia il client del proxy di autenticazione e utilizzalo per connetterti a un database.
Prima di iniziare
L'host client deve soddisfare questi requisiti:
Il client deve avere visibilità di rete sulla rete Virtual Private Cloud (VPC) in cui risiedono le istanze a cui vuoi connetterti. Gli host client (come le istanze Compute Engine) in questa rete Virtual Private Cloud (VPC) hanno intrinsecamente questa visibilità di rete.
Gli host client nelle reti esterne (reti on-premise o reti VPC diverse) hanno questa visibilità di rete se la rete VPC dell'istanza AlloyDB è connessa alla rete esterna utilizzando un tunnel Cloud VPN o un collegamento VLAN per Dedicated Interconnect o Partner Interconnect.
Se l'host client ha una policy del firewall in uscita, deve consentire le connessioni in uscita alla porta
5433sugli indirizzi IP delle istanze AlloyDB e le connessioni in uscita alla porta443(la porta HTTPS standard) a tutti gli indirizzi IP.Se utilizzi un'istanza Compute Engine come host client, deve avere l'ambito di accesso
https://www.googleapis.com/auth/cloud-platformin modo da poter utilizzare l'API AlloyDB. Se necessario, modifica l'ambito di accesso in modo da includerlo.
Scarica il client del proxy di autenticazione
La macchina su cui scarichi il client del proxy di autenticazione dipende dal fatto che tu voglia connetterti alle istanze AlloyDB dall'interno o dall'esterno della rete VPC.
Se vuoi connetterti al cluster utilizzando l'accesso privato ai servizi, puoi scaricare il client del proxy di autenticazione su un'istanza di macchina virtuale (VM) Compute Engine in esecuzione all'interno della rete VPC che ha accesso privato ai servizi al tuo cluster.
Se intendi connetterti al cluster dall'esterno della rete VPC, la macchina su cui lo installi dipende dalla strategia di connessione esterna che utilizzi. Ad esempio, puoi installare il client del proxy di autenticazione su una macchina macOS o Windows locale per la tua applicazione, quindi utilizzare un server SOCKS in esecuzione all'interno della rete VPC AlloyDB come intermediario di connessione. Per saperne di più, consulta Connettersi a un cluster dall' esterno della rete VPC.
Linux
64 bit (AMD)
Scarica il client del proxy di autenticazione:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxyRendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
32 bit (AMD)
Scarica il client del proxy di autenticazione:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.linux.386 -O alloydb-auth-proxyRendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
64 bit (ARM)
Scarica il client del proxy di autenticazione:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.linux.arm64 -O alloydb-auth-proxyRendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
32 bit (ARM)
Scarica il client del proxy di autenticazione:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.linux.arm -O alloydb-auth-proxyRendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
macOS
ARM64
Scarica il client del proxy di autenticazione:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.darwin.arm64Rendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
AMD64
Scarica il client del proxy di autenticazione:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy.darwin.amd64Rendi eseguibile il client del proxy di autenticazione:
chmod +x alloydb-auth-proxyAggiungi il client del proxy di autenticazione al tuo PATH:
mkdir -p ~/.local/bin mv alloydb-auth-proxy ~/.local/bin/ export PATH="$HOME/.local/bin:$PATH"Per rendere permanenti queste modifiche tra le sessioni, aggiungi
export PATH="$HOME/.local/bin:$PATH"al file~/.bashrco~/.zshrc.
Windows
64 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy-x64.exe e seleziona Salva link con nome per scaricare il client del proxy di autenticazione. Rinomina il file in
alloydb-auth-proxy.exe.Aggiungi il client del proxy di autenticazione al tuo PATH:
New-Item -ItemType Directory -Force -Path "$HOME\bin" Move-Item -Path .\alloydb-auth-proxy.exe -Destination "$HOME\bin" $userPath = [Environment]::GetEnvironmentVariable("Path", "User") [Environment]::SetEnvironmentVariable("Path", "$userPath;$HOME\bin", "User")
32 bit
Fai clic con il tasto destro del mouse su https://storage.googleapis.com/alloydb-auth-proxy/v1.16.0/alloydb-auth-proxy-x86.exe e seleziona Salva link con nome per scaricare il client del proxy di autenticazione. Rinomina il file in
alloydb-auth-proxy.exe.Aggiungi il client del proxy di autenticazione al tuo PATH:
New-Item -ItemType Directory -Force -Path "$HOME\bin" Move-Item -Path .\alloydb-auth-proxy.exe -Destination "$HOME\bin" $userPath = [Environment]::GetEnvironmentVariable("Path", "User") [Environment]::SetEnvironmentVariable("Path", "$userPath;$HOME\bin", "User")
Immagine Docker
Per comodità, in Artifact Registry sono disponibili diverse immagini container che contengono il client del proxy di autenticazione.
Puoi eseguire il pull dell'ultima immagine sulla tua macchina locale utilizzando Docker con il seguente comando:
docker pull gcr.io/alloydb-connectors/alloydb-auth-proxy:latestAltri sistemi operativi
Per altri sistemi operativi non inclusi qui, puoi compilare il client del proxy di autenticazione dal codice sorgente.
Scegli l'entità IAM e preparala per l'autorizzazione
Il proxy di autenticazione AlloyDB supporta l'utilizzo di questi tipi di entità IAM per autorizzare le connessioni tra il client e un'istanza AlloyDB:
Un service account gestito dall'utente. Puoi creare un service account IAM per la tua applicazione e poi autorizzare le connessioni utilizzando questo account.
Google consiglia vivamente di utilizzare un account di servizio per l'autorizzazione negli ambienti di produzione.
Il tuo account utente. Puoi utilizzare il tuo account utente IAM per autorizzare le connessioni.
L'utilizzo del tuo account utente è comodo negli ambienti di sviluppo in cui gestisci le risorse AlloyDB utilizzando gcloud CLI, sviluppi il database utilizzando uno strumento come
psqle sviluppi il codice dell'applicazione sullo stesso host.Il service account predefinito di Compute Engine. Se l'host client è un'istanza Compute Engine, puoi utilizzare il account di servizio predefinito di Compute Engine per autorizzare le connessioni.
Dopo aver scelto l'entità IAM da utilizzare, devi assicurarti che disponga delle autorizzazioni IAM richieste e che le relative credenziali siano disponibili sull'host client.
Autorizzazioni IAM obbligatorie
L'entità IAM che utilizzi per autorizzare le connessioni deve disporre delle autorizzazioni fornite dai ruoli predefiniti roles/alloydb.client (Client AlloyDB) e roles/serviceusage.serviceUsageConsumer (Service Usage Consumer).
Per assegnare il ruolo Client AlloyDB a un'entità IAM:
L'API Cloud Resource Manager deve essere abilitata nel Google Cloud progetto.
Devi disporre del ruolo IAM di base
roles/owner(Proprietario) nel Google Cloud progetto o di un ruolo che conceda queste autorizzazioni:resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
Per ottenere queste autorizzazioni rispettando il principio del privilegio minimo, chiedi all'amministratore di concederti il ruolo
roles/resourcemanager.projectIamAdmin(Amministratore IAM progetto).
Rendi disponibili le credenziali IAM sull'host client
La modalità di rendere disponibili le credenziali IAM sull'host client dipende dal tipo di entità IAM che utilizzi per autorizzare le connessioni:
Service account gestito dall'utente
Per fornire le credenziali IAM per un account di servizio gestito dall'utente, crea una chiave account di servizio in formato JSON e scaricala sull'host client. Quando avvii il client del proxy di autenticazione, specifica la posizione del file della chiave utilizzando il flag
--credentials-file.Il tuo account utente
Per fornire le credenziali IAM per il tuo account utente, installa Google Cloud CLI sull'host client e quindi esegui il
gcloud auth application-default logincomando per generare il file delle credenziali predefinite dell'applicazione (ADC):gcloud auth application-default loginQuando avvii il client del proxy di autenticazione, questo rileva e utilizza automaticamente le credenziali del tuo account utente se non fornisci le credenziali del account di servizio gestito dall'utente.
Service account predefinito di Compute Engine
Se utilizzi un'istanza Compute Engine come host client, le credenziali del service account predefinito di Compute Engine sono già presenti sull'host. Quando avvii il client del proxy di autenticazione, questo rileva e utilizza automaticamente queste credenziali se le credenziali del account di servizio gestito dall'utente e dell'account utente non sono disponibili.
Raccogli gli URI di connessione per le istanze AlloyDB
Quando avvii il client del proxy di autenticazione, identifichi l'istanza o le istanze AlloyDB a cui vuoi connetterti utilizzando questo formato di URI di connessione:
projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Per visualizzare un elenco di tutti gli URI di connessione delle istanze, utilizza il
comando gcloud CLI
alloydb instances list.
Raccogli l'URI di connessione dell'istanza per ogni istanza a cui vuoi connetterti.
Avvia il client del proxy di autenticazione
Quando avvii il client del proxy di autenticazione, fornisci informazioni sulle istanze AlloyDB a cui connetterti e, se necessario, le informazioni sulle credenziali da utilizzare per autorizzare queste connessioni.
All'avvio, il client del proxy di autenticazione:
- Autorizza le connessioni alle istanze AlloyDB utilizzando le credenziali e le autorizzazioni IAM dell'entità IAM che hai configurato. Cerca le credenziali seguendo una sequenza specifica di passaggi.
- Autorizza automaticamente le connessioni IP pubbliche alla rete di origine, se l'istanza ha l'IP pubblico abilitato.
- Configura una connessione mTLS 1.3 privata al server del proxy di autenticazione di ogni istanza.
- Inizia ad ascoltare le richieste di connessione del client locale.
Per impostazione predefinita, il client del proxy di autenticazione rimane in ascolto delle connessioni TCP sull'indirizzo IP 127.0.0.1, a partire dalla porta 5432 e incrementando di un numero di porta per ogni istanza AlloyDB oltre la prima. Puoi specificare un indirizzo di ascolto e porte diversi quando avvii il client del proxy di autenticazione.
Riga di comando
./alloydb-auth-proxy INSTANCE_URI... \
[ --credentials-file PATH_TO_KEY_FILE \ ]
[ --token OAUTH_ACCESS_TOKEN \ ]
[ --port INITIAL_PORT_NUMBER \ ]
[ --address LOCAL_LISTENER_ADDRESS \ ]
[ --auto-iam-authn \ ]
[ --psc \ ]
[ --public-ip \ ]
[ --disable-built-in-telemetry ]Sostituisci quanto segue:
INSTANCE_URI: l'URI di connessione dell'istanza di un'istanza AlloyDB a cui connetterti, specificato utilizzando questo formato:projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_IDPuoi sostituire la porta di ascolto locale predefinita che il client del proxy di autenticazione utilizzerà per l'istanza aggiungendo il parametro di query
portall'URI:"projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?port=PORT"(Facoltativo)
PATH_TO_KEY_FILE: il percorso del file della chiave JSON del account di servizio gestito dall'utente da utilizzare per l'autorizzazione della connessione.(Facoltativo)
OAUTH_ACCESS_TOKEN: un valore del token OAuth 2 da utilizzare per l'autorizzazione della connessione.(Facoltativo)
INITIAL_PORT_NUMBER: il numero di porta iniziale da utilizzare al posto della porta predefinita5432quando si è in ascolto delle connessioni TCP locali.(Facoltativo)
LOCAL_LISTENER_ADDRESS: l'indirizzo di ascolto da utilizzare al posto del valore predefinito127.0.0.1quando si è in ascolto delle connessioni TCP locali.
Il flag facoltativo --auto-iam-authn consente di eseguire automaticamente l'autenticazione all'istanza. Funziona solo per l'utente del database associato all'account IAM che esegue il client del proxy di autenticazione. Per
saperne di più, consulta Eseguire l'autenticazione automaticamente utilizzando il
proxy di autenticazione.
Il flag facoltativo --psc consente al proxy di autenticazione di connettersi a un'istanza con Private Service Connect abilitato. Per saperne di più sulla configurazione del DNS con Private Service Connect, consulta
Configurare una zona gestita DNS e un record DNS.
Il flag facoltativo --public-ip consente al proxy di autenticazione di connettersi a un'istanza con IP pubblico abilitato utilizzando l'indirizzo IP pubblico dell'istanza. Per
saperne di più sull'IP pubblico, consulta Connettersi utilizzando l'IP pubblico.
Il flag facoltativo --disable-built-in-telemetry disabilita il reporter di metriche interno utilizzato dal proxy di autenticazione per segnalare l'integrità della connessione e della rete. Per impostazione predefinita, il proxy di autenticazione segnala le sue operazioni interne al prefisso della metrica di sistema alloydb.googleapis.com. Queste metriche aiutano AlloyDB a migliorare le prestazioni e a identificare i problemi di connettività del client. Questa opzione è utile per le applicazioni che operano in ambienti in cui l'esportazione delle metriche in uscita è limitata. Per disattivare questa telemetria, utilizza questo flag.
Container Docker
Avvia il client del proxy di autenticazione utilizzando il comando docker run.
Se utilizzi le credenziali fornite dall'istanza Compute Engine, puoi utilizzare un comando simile al seguente:
docker run \
--publish 127.0.0.1:PORT:PORT \
gcr.io/alloydb-connectors/alloydb-auth-proxy:latest \
--address 0.0.0.0 \
--port PORT \
INSTANCE_URISostituisci quanto segue:
PORT: la porta da utilizzare per le connessioni locali al client del proxy di autenticazione. Il valore predefinito è5432.INSTANCE_URI: l'URI di connessione dell'istanza di un'istanza AlloyDB a cui connetterti, specificato utilizzando il seguente formato:projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_IDPuoi sostituire la porta di ascolto locale predefinita che il client del proxy di autenticazione utilizza per l'istanza aggiungendo il parametro di query
portall'URI:"projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?port=PORT"
Specifica sempre il prefisso 127.0.0.1 nel flag --publish in modo che il client del proxy di autenticazione non sia esposto all'esterno dell'host locale.
Il valore 0.0.0.0 nel flag --address è necessario per rendere l'ascoltatore accessibile dall'esterno del container Docker.
Per fornire le credenziali che hai archiviato in un file JSON locale, includi i flag --volume e --credentials-file quando esegui il comando docker run:
docker run \
--volume PATH_TO_KEY_FILE:/key.json \
--publish 127.0.0.1:PORT:PORT \
gcr.io/alloydb-connectors/alloydb-auth-proxy:latest \
--address 0.0.0.0 \
--port PORT \
--credentials-file=/key.json \
INSTANCE_URISostituisci PATH_TO_KEY_FILE con il percorso del file della chiave JSON del account di servizio gestito dall'utente da utilizzare per l'autorizzazione della connessione.
Esempi di avvio
I seguenti esempi mostrano vari modi per avviare il client del proxy di autenticazione. Utilizzano questi URI di connessione dell'istanza di esempio:
projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary
projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool
Avvio di base
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary"In questo esempio, il client del proxy di autenticazione autorizza la connessione seguendo la normale sequenza di passaggi di autorizzazione, quindi inizia ad ascoltare le connessioni locali all'istanza myprimary su 127.0.0.1:5432.
Avvio utilizzando un account di servizio gestito dall'utente
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \\
--credentials-file "myappaccount/key.json"In questo esempio, il client del proxy di autenticazione autorizza la connessione utilizzando la chiave JSON del account di servizio gestito dall'utente archiviata in myappaccount/key.json, quindi inizia ad ascoltare le connessioni locali all'istanza myprimary su 127.0.0.1:5432.
Avvio della connessione a più istanze
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool"In questo esempio, il client del proxy di autenticazione autorizza la connessione seguendo la normale sequenza di passaggi di autorizzazione, quindi inizia ad ascoltare le connessioni locali all'istanza myprimary su 127.0.0.1:5432 e all'istanza myreadpool su 127.0.0.1:5433.
Avvio dell'ascolto su porte personalizzate
L'utilizzo di porte personalizzate per il client del proxy di autenticazione può essere utile quando devi riservare la porta 5432 per altre connessioni PostgreSQL.
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary?port=5000" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool?port=5001"In questo esempio, il client del proxy di autenticazione autorizza la connessione
seguendo la normale
sequenza di passaggi di autorizzazione
, quindi inizia ad ascoltare le connessioni locali all'istanza myprimary su
127.0.0.1:5000 e all'istanza myreadpool su 127.0.0.1:5001.
Poiché queste porte personalizzate sono sequenziali, lo stesso effetto può essere ottenuto utilizzando questo comando di avvio:
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool" \
--port 5000Avvio dell'ascolto su un indirizzo IP personalizzato
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
--address "0.0.0.0"In questo esempio, il client del proxy di autenticazione autorizza la connessione seguendo la normale sequenza di passaggi di autorizzazione, quindi inizia ad ascoltare le connessioni locali all'istanza myprimary su 0.0.0.0:5432.
Connetti un'applicazione a un database utilizzando il proxy di autenticazione AlloyDB
I seguenti esempi mostrano come connettere un'applicazione a un database utilizzando il proxy di autenticazione AlloyDB.
L'esempio psql fornisce un esempio di connessione di uno strumento a riga di comando.
Per diversi linguaggi di programmazione, la connessione a un'istanza AlloyDB utilizzando il proxy di autenticazione è identica alla connessione a Cloud SQL per PostgreSQL utilizzando il proxy di autenticazione Cloud SQL, quindi gli esempi di linguaggio sono gli stessi di quelli per Cloud SQL per PostgreSQL.
Questi esempi si basano su un avvio predefinito del client del proxy di autenticazione in modo che sia in ascolto delle connessioni TCP locali su 127.0.0.1:5432.
psql
psql -h 127.0.0.1 -p 5432 -U DB_USERSostituisci DB_USER con l'utente del database con cui vuoi connetterti, ad esempio postgres.
Ti verrà chiesto di inserire la password dell'utente DB_USER.
Python
Java
Node.js
Vai
Per visualizzare questo snippet nel contesto di un'applicazione web, consulta il file README su GitHub.
C#
Per visualizzare questo snippet nel contesto di un'applicazione web, consulta il file README su GitHub.
Ruby
Per visualizzare questo snippet nel contesto di un'applicazione web, consulta il file README su GitHub.
PHP
Per visualizzare questo snippet nel contesto di un'applicazione web, consulta il file README su GitHub.