Questa pagina descrive come configurare un nome di sistema di nomi di dominio personalizzato (DNS) per l'istanza Cloud SQL.
Panoramica
Puoi configurare un'istanza Cloud SQL in modo che le tue applicazioni possano connettersi utilizzando un nome DNS personalizzato gestito dalla tua organizzazione. Se vuoi utilizzare un nome DNS personalizzato per connetterti a un'istanza Cloud SQL anziché un indirizzo IP, configura un nome alternativo soggetto (SAN) personalizzato. Puoi configurare una SAN personalizzata quando crei o aggiorni un'istanza.
Quando aggiungi un nome DNS personalizzato come configurazione SAN personalizzata all'istanza, Cloud SQL inserisce il nome DNS personalizzato nel campo SAN del certificato del server dell'istanza. Questa personalizzazione consente di utilizzare il nome DNS personalizzato con la convalida del nome host in modo sicuro.
Puoi aggiungere un elenco separato da virgole di massimo tre nomi DNS personalizzati alla configurazione SAN personalizzata. Per motivi di sicurezza, puoi utilizzare una configurazione SAN personalizzata solo per le istanze che configuri con CUSTOMER_MANAGED_CAS_CA
come modalità CA del server.
Dopo aver configurato il nome DNS personalizzato per l'istanza, puoi utilizzarlo per connettere i client o le applicazioni di database, inclusi i connettori dei linguaggi Cloud SQL e il proxy di autenticazione Cloud SQL.
Flusso di lavoro
Per configurare un nome DNS personalizzato per un'istanza:
- Crea un'istanza configurata con l'autorità di certificazione gestita dal cliente.
- Aggiungi valori SAN personalizzati all'istanza. I valori SAN personalizzati vengono inseriti nel campo SAN del certificato del server dell'istanza.
- Determina l'indirizzo IP dell'istanza.
- Crea record DNS personalizzati per l'istanza.
- Connettiti all'istanza utilizzando il nome DNS personalizzato.
Prima di iniziare
Prima di configurare un nome DNS personalizzato per l'istanza, assicurati di disporre delle autorizzazioni e dei ruoli richiesti.
Se stai creando una nuova istanza Cloud SQL, per utilizzare SAN personalizzate, la tua istanza deve utilizzare anche un'autorità di certificazione (CA) gestita dal cliente per la modalità CA del server.
Creare un'istanza con valori SAN personalizzati
Per creare un'istanza con valori SAN personalizzati, utilizza il seguente comando gcloud sql instances create
:
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID --custom-subject-alternative-names=CUSTOM_DNS_NAME
Esegui le seguenti sostituzioni:
INSTANCE_NAME
con il nome dell'istanza Cloud SQL che vuoi creare.DATABASE_VERSION
con ilenum
della versione dell'istanza Cloud SQL che vuoi creare.PROJECT_ID
con l'ID del progetto in cui hai intenzione di creare le istanze Cloud SQL.PROJECT_ID_CAS
con l'ID del progetto in cui hai creato il tuo CA_POOL_ID. Questo progetto potrebbe essere uguale o diverso da quello in cui vuoi creare l'istanza Cloud SQL.REGION
con la regione in cui hai creato il pool di CA. Devi creare l'istanza nella stessa regione del pool di CA.CA_POOL_ID
con l'ID del pool di CA che hai creato.CUSTOM_DNS_NAME
con fino a tre nomi DNS personalizzati, separati da virgole senza spazi tra i valori. Ad esempio,develop.example.com,test.example.com,production.example.com
.
Aggiungere o aggiornare i valori SAN personalizzati per un'istanza
Per aggiungere o aggiornare i valori SAN personalizzati per un'istanza esistente:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --custom-subject-alternative-names=CUSTOM_DNS_NAME
Esegui le seguenti sostituzioni:
INSTANCE_NAME
con il nome dell'istanza Cloud SQL da aggiornare.CUSTOM_DNS_NAME
con fino a tre nomi DNS personalizzati, separati da virgole senza spazi tra i valori. Ad esempio,develop.example.com,new-test.example.com,production.example.com
.
Cancellare tutti i valori SAN personalizzati da un'istanza
Per cancellare tutti i valori SAN personalizzati da un'istanza:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --clear-custom-subject-alternative-names
Sostituisci INSTANCE_NAME
con il nome dell'istanza Cloud SQL
che vuoi aggiornare.
Crea record DNS personalizzati
Prima di poter connetterti all'istanza utilizzando il nome DNS personalizzato con i tuoi client e le tue applicazioni, configura la mappatura tra il nome DNS e l'indirizzo IP. Questa mappatura è nota come risoluzione DNS. Se esegui la connessione in privato, crea il record DNS in una zona DNS privata nella rete Virtual Private Cloud (VPC) corrispondente.
Per creare record DNS personalizzati per l'istanza:
Recupera l'indirizzo IP della tua istanza. Esegui questo comando:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Esegui le seguenti sostituzioni:
- INSTANCE_NAME: il nome dell'istanza Cloud SQL
- PROJECT_ID: l'ID o il numero di progetto del Google Cloud progetto che contiene l'istanza
Nella risposta, cerca il campo
ipAddresses:
.Ad esempio:
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATE
Puoi recuperare l'indirizzo IP privato di un'istanza configurata per accesso privato ai servizi, Private Service Connect o entrambi.
Aggiungi due record DNS a una zona DNS utilizzata dalla tua applicazione. Puoi utilizzare un server DNS che gestisci autonomamente o la zona privata Cloud DNS utilizzata dalla tua applicazione.
- Crea un record
A
per l'indirizzo IP dell'istanza - Crea un record
TXT
contenente il nome di connessione dell'istanza.
I client di database standard utilizzano il record
A
per cercare l'indirizzo IP per effettuare la connessione. I connettori dei linguaggi Cloud SQL e il proxy di autenticazione Cloud SQL utilizzano il recordTXT
per cercare il nome della connessione dell'istanza.Ad esempio, la stringa di connessione per l'istanza è
my-project:region:my-instance
, ma vuoi connetterti utilizzando il nome DNSprod-db.mycompany.example.com
. Se l'indirizzo IP dell'istanza sulla rete aziendale è192.0.2.4
, crea i seguenti record DNS:Record type: A Name: prod-db.mycompany.example.com Value: 192.0.2.4 TTL: 600 Record type: TXT Name: prod-db.mycompany.example.com Value: my-project:region:my-instance TTL: 600
- Crea un record
Connettiti a un'istanza utilizzando un nome DNS personalizzato
Quando ti connetti all'istanza Cloud SQL per PostgreSQL, configura il nome DNS personalizzato come nome host e attiva la verifica dell'identità del server nel client.Ad esempio, quando utilizzi il client psql
, specifica il flag
sslmode=verify-full
Se ti connetti a un'istanza Cloud SQL privata da una rete esterna, devi configurare l'istanza Cloud SQL e la relativa rete Virtual Private Cloud (VPC) per consentire le connessioni esterne e consentire a Cloud DNS di comunicare con i sistemi on-premise. Per ulteriori informazioni su questa configurazione, consulta Eseguire la connessione da un'origine esterna e Configurare il DNS per i sistemi on-premise.
Limitazioni
- Non puoi aggiungere più di tre nomi DNS come valori SAN personalizzati al certificato del server di un'istanza Cloud SQL.
- La lunghezza massima di un nome DNS che puoi aggiungere al certificato come valore SAN personalizzato per un'istanza è di 253 caratteri.
- I nomi DNS che aggiungi al certificato di un'istanza non possono contenere caratteri jolly (
*
) o punti finali. Ad esempio,test.example.com.
non è consentito. - I nomi DNS devono essere validi, come specificato da RFC 1034.
- Puoi specificare valori SAN personalizzati solo per le istanze
CUSTOMER_MANAGED_CAS_CA
.
Passaggi successivi
- Gestisci i certificati SSL/TLS nell'istanza Cloud SQL.
- Scopri di più su come viene gestita la crittografia in Google Cloud.
- Connettiti all'istanza Cloud SQL utilizzando i certificati SSL/TLS.
- Scopri di più su come PostgreSQL utilizza i certificati SSL/TLS.