Questa pagina fornisce una panoramica di AlloyDB Auth Proxy, un connettore che ti consente di effettuare connessioni autorizzate e criptate ai database AlloyDB.
Per una guida passo passo all'utilizzo del proxy di autenticazione, consulta Connessione tramite il proxy di autenticazione AlloyDB.
Panoramica
Il proxy di autenticazione offre i seguenti vantaggi rispetto alla connessione dei client direttamente ai database AlloyDB:
Autorizzazione delle connessioni basata su IAM (AuthZ): il proxy di autenticazione utilizza le credenziali e le autorizzazioni di un'entità IAM per autorizzare le connessioni alle istanze AlloyDB.
Comunicazione sicura e criptata: il proxy di autenticazione crea, utilizza e gestisce automaticamente una connessione TLS 1.3 utilizzando un cifrario AES a 256 bit tra il client e un'istanza AlloyDB per verificare le identità del client e del server e criptare il traffico di dati.
Per ulteriori informazioni su come connetterti alle istanze AlloyDB, consulta Panoramica della connessione.
Come funziona il proxy di autenticazione AlloyDB
Il proxy di autenticazione AlloyDB funziona con un client locale in esecuzione nell'ambiente locale. L'applicazione comunica con il proxy di autenticazione AlloyDB con il protocollo di database standard utilizzato dal database.
Il proxy di autenticazione AlloyDB utilizza un tunnel sicuro (TLS 1.3, crittografia AES a 256 bit) per comunicare con il processo complementare in esecuzione sul server. Ogni connessione stabilita tramite il proxy di autenticazione AlloyDB crea una connessione all'istanza AlloyDB.
Quando un'applicazione si connette al proxy di autenticazione AlloyDB, controlla se è disponibile una connessione tra l'applicazione e l'istanza AlloyDB di destinazione. Se non esiste una connessione, chiama le API di amministrazione AlloyDB per ottenere un certificato SSL temporaneo e lo utilizza per connettersi ad AlloyDB. I certificati SSL effimeri scadono dopo 24 ore. Il proxy di autenticazione AlloyDB aggiorna questi certificati prima della scadenza.
Sebbene il proxy di autenticazione AlloyDB possa ascoltare su qualsiasi porta, crea connessioni in uscita o di flusso in uscita all'istanza AlloyDB solo sulla porta 5433. Poiché
il proxy di autenticazione AlloyDB chiama le API tramite il nome di dominio alloydb.googleapis.com
,
che non ha un indirizzo IP fisso, tutte le connessioni TCP in uscita sulla porta 443
devono essere consentite. Se il computer client ha un criterio del firewall in uscita, assicurati che consenta le connessioni in uscita alla porta 5433 sull'IP dell'istanza AlloyDB.
In che modo il proxy di autenticazione AlloyDB autorizza le entità IAM
Per autorizzare la connessione di un client a un'istanza AlloyDB, il client proxy di autenticazione si autentica su Google Cloud utilizzando le credenziali dell'entità IAM sul client, quindi convalida che l'entità IAM disponga dei ruoli IAM Client Cloud AlloyDB (roles/alloydb.client
) e Consumer di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer
).
Per individuare le credenziali IAM sul client, il client Auth Proxy controlla ciascuno dei seguenti elementi, utilizzando il primo trovato per tentare di autenticarsi in Google Cloud:
Credenziali fornite dal flag --credentials-file
Utilizza un account di servizio per creare e scaricare il file della chiave JSON associato e imposta il flag--credentials-file
sul percorso del file quando avvii il client Auth Proxy. L'account di servizio deve disporre dei ruoli IAM Client Cloud AlloyDB (roles/alloydb.client
) e Consumer di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer
) per l'istanza AlloyDB.Per utilizzare questa opzione sulla riga di comando, invoca il comando
alloydb-auth-proxy
con il flag--credentials-file
impostato sul percorso e sul nome di un file di credenziali JSON. Il percorso può essere assoluto o relativo alla directory di lavoro corrente.Credenziali fornite dal flag --token
Crea un token di accesso e invoca il comando
alloydb-auth-proxy
con il flag--token
impostato su un token di accesso OAuth 2.0.Credenziali fornite da una variabile di ambiente
Questa opzione è simile all'utilizzo del flag
--credentials-file
, tranne per il fatto che specifichi il file delle credenziali JSON impostato nella variabile di ambienteGOOGLE_APPLICATION_CREDENTIALS
anziché utilizzare il flag--credentials-file
.Credenziali di un client Google Cloud CLI autenticato
Se hai installato gcloud CLI e hai eseguito l'autenticazione con il tuo account personale, il client Auth Proxy può utilizzare le stesse credenziali dell'account. Questo metodo è particolarmente utile per configurare un ambiente di sviluppo.
Se non è stato selezionato alcun account per
gcloud auth login
, il client Auth Proxy controlla se è stato selezionato un account pergcloud auth application-default login
.Le credenziali associate all'istanza Compute Engine
Se ti connetti ad AlloyDB da un'istanza Compute Engine, il client Auth Proxy può utilizzare l'account di servizio associato all'istanza Compute Engine. Se l'account di servizio dispone dei ruoli IAM Client Cloud AlloyDB (
roles/alloydb.client
) e Consumer di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer
) per l'istanza AlloyDB, il client Auth Proxy si autentica correttamente.Se l'istanza Compute Engine si trova nello stesso progetto dell'istanza AlloyDB, l'account di servizio predefinito per l'istanza Compute Engine dispone delle autorizzazioni necessarie per autenticare AlloyDB. Se le due istanze si trovano in progetti diversi, devi aggiungere l'account di servizio dell'istanza Compute Engine al progetto contenente l'istanza AlloyDB.
Service account predefinito dell'ambiente
Se il client Auth Proxy non riesce a trovare le credenziali in nessuno dei luoghi trattati in precedenza, segue la logica descritta in Autenticazione come account di servizio. Alcuni ambienti (come Compute Engine, App Engine e altri) forniscono un account di servizio predefinito che l'applicazione può utilizzare per l'autenticazione per impostazione predefinita. Se utilizzi un account di servizio predefinito, questo deve disporre dei ruoli IAM Cloud AlloyDB Client (roles/alloydb.client
) e Consumer di utilizzo del servizio (roles/serviceusage.serviceUsageConsumer
).Per ulteriori informazioni sull'approccio di Google Cloud all'autenticazione, consulta la Panoramica dell'autenticazione.