Questa pagina descrive come configurare un'istanza Cloud SQL per utilizzare l'IP privato.
Per informazioni sul funzionamento dell'IP privato, nonché sui requisiti di ambiente e gestione, consulta IP privato.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Networking API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Networking API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per creare e gestire una connessione di accesso ai servizi privati,
chiedi all'amministratore di concederti il
ruolo IAM Compute Network Admin (roles/compute.networkAdmin)
nel progetto in cui prevedi di ospitare l'istanza Cloud SQL.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare e gestire una connessione di accesso privato ai servizi. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare e gestire una connessione di accesso privato ai servizi sono necessarie le seguenti autorizzazioni:
-
compute.addresses.create -
compute.addresses.list -
compute.globalAddresses.create -
compute.globalAddresses.createInternal -
compute.globalAddresses.list -
compute.networks.list -
compute.networks.use -
servicenetworking.services.addPeering -
serviceusage.services.list
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Accesso privato ai servizi
Quando crei una nuova rete Virtual Private Cloud (VPC) nel tuo progetto, devi configurare l'accesso privato ai servizi per allocare un intervallo di indirizzi IP e creare una connessione di accesso privato ai servizi. In questo modo, le risorse nella rete VPC possono connettersi alle istanze Cloud SQL. La console Google Cloud fornisce una procedura guidata per aiutarti a configurare questa configurazione.
Configura un'istanza per utilizzare l'IP privato
Puoi configurare un'istanza Cloud SQL per utilizzare l'IP privato quando crei l'istanza o per un'istanza esistente.
Configura l'IP privato per una nuova istanza
Per configurare un'istanza Cloud SQL in modo che utilizzi l'IP privato durante la creazione di un'istanza:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Fai clic su Crea istanza.
- Espandi Mostra opzioni di configurazione.
- Espandi Connessioni.
- Seleziona IP privato.
Un elenco a discesa mostra le reti VPC disponibili nel tuo progetto. Se il tuo progetto è il progetto di servizio di un VPC condiviso, vengono visualizzate anche le reti VPC del progetto host.
- Seleziona la rete VPC che vuoi utilizzare.
- Fai clic su Configura connessione.
- Nella sezione Alloca un intervallo IP, seleziona una delle seguenti opzioni:
- Seleziona uno o più intervalli IP esistenti o creane uno nuovo dal menu a discesa. Il menu a discesa include gli intervalli allocati in precedenza, se presenti, oppure puoi selezionare Alloca un nuovo intervallo IP e inserire un nuovo intervallo e un nuovo nome.
- Utilizza un intervallo IP allocato automaticamente nella tua rete.
- Fai clic su Continua.
- Fai clic su Crea connessione.
- Verifica di visualizzare il messaggio:
Private service connection for network VPC_NETWORK_NAME has been successfully created. - Se vuoi, puoi specificare un intervallo IP allocato che le istanze devono utilizzare per le connessioni.
- Espandi Mostra opzione intervallo IP allocato.
- Seleziona un intervallo IP dal menu a discesa.
- Completa la configurazione dell'istanza.
- Fai clic su Crea istanza.
Se viene visualizzato un messaggio che indica che devi configurare una connessione di servizio privato, procedi nel seguente modo:
gcloud
Prima di creare un'istanza utilizzando un indirizzo IP privato, assicurati che il tuo progetto sia configurato per l' accesso privato ai servizi.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
INSTANCE_ID: l'ID istanzaPROJECT_ID: l'ID progettoNETWORK_PROJECT_ID: L'ID progetto della rete VPCVPC_NETWORK_NAME: il nome della rete VPCRANGE_NAME: facoltativo. Se specificato, imposta un nome di intervallo per cui viene allocato un intervallo IP. Il nome dell'intervallo deve essere conforme aRFC-1035e contenere da 1 a 63 caratteri.REGION_NAME: Il nome della regione
--network. Per disattivare l'IP pubblico, utilizza il flag
--no-assign-ip.
Per forzare l'utilizzo della nuova architettura di rete per l'istanza, utilizza il flag --enforce-new-sql-network-architecture.
Assicurati di aver allocato un numero sufficiente di indirizzi IP. Quando utilizzi l'applicazione della nuova architettura di rete prima che un progetto venga completamente aggiornato, potresti riscontrare un errore di creazione dell'istanza se non è disponibile spazio sufficiente per l'indirizzo IP.
Per saperne di più, consulta Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
gcloud beta sql instances create INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME \ --enforce-new-sql-network-architecture
Terraform
Per configurare l'IP privato per una nuova istanza, utilizza le seguenti risorse Terraform:
google_compute_networkgoogle_compute_global_addressgoogle_service_networking_connectiongoogle_sql_database_instance
Applica le modifiche
Per applicare la configurazione Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel
main.tfappena creato.(Facoltativo) Copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, imposta l'argomento
deletion_protectionsufalsenel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yesal prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform destroy
REST v1
Crea una nuova istanza con un indirizzo IP privato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: L'ID progetto
- INSTANCE_ID: L'ID istanza
- VPC_NETWORK_NAME: Specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
- RANGE_NAME: Facoltativo. Se specificato, imposta un nome di intervallo per cui viene allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a
RFC-1035e contenere da 1 a 63 caratteri. - AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
Per il parametro ipv4Enabled, imposta il valore su true
se utilizzi un indirizzo IP pubblico per la tua istanza o su false se la tua istanza ha un
indirizzo IP privato.
Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato.
Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta
Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"name": "INSTANCE_ID",
"region": "region",
"databaseVersion": "database-version",
"settings": {
"tier": "machine-type",
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
"allocatedIpRange": "RANGE_NAME"
"authorizedNetworks": [AUTHORIZED_NETWORKS],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Crea una nuova istanza con un indirizzo IP privato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: L'ID progetto
- INSTANCE_ID: L'ID istanza
- VPC_NETWORK_NAME: Specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
- RANGE_NAME: Facoltativo. Se specificato, imposta un nome di intervallo per cui viene allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a
RFC-1035e contenere da 1 a 63 caratteri. - AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
Per il parametro ipv4Enabled, imposta il valore su true
se utilizzi un indirizzo IP pubblico per la tua istanza o su false se la tua istanza ha un
indirizzo IP privato.
Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato.
Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta
Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Corpo JSON della richiesta:
{
"name": "INSTANCE_ID",
"region": "region",
"databaseVersion": "database-version",
"settings": {
"tier": "machine-type",
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
"allocatedIpRange": "RANGE_NAME"
"authorizedNetworks": [AUTHORIZED_NETWORKS],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Configura l'IP privato per un'istanza esistente
La configurazione di un'istanza Cloud SQL esistente per l'utilizzo dell'IP privato comporta il riavvio dell'istanza, con conseguente tempo di inattività.
Per configurare un'istanza esistente in modo che utilizzi l'IP privato:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Seleziona Connessioni dal menu di navigazione di Cloud SQL.
- Nella scheda Networking, seleziona la casella di controllo IP privato.
Un elenco a discesa mostra le reti disponibili nel tuo progetto.
- Seleziona la rete VPC che vuoi utilizzare:
- Fai clic su Configura connessione.
- Nella sezione Alloca un intervallo IP, scegli una delle seguenti opzioni:
- Seleziona uno o più intervalli IP esistenti o creane uno nuovo dal menu a discesa. Il menu a discesa include gli intervalli allocati in precedenza, se esistono, oppure puoi selezionare Alloca un nuovo intervallo IP e inserire un nuovo intervallo e un nuovo nome.
- Utilizza un intervallo IP allocato automaticamente nella tua rete.
- Fai clic su Continua.
- Fai clic su Crea connessione.
- Verifica che venga visualizzato lo stato La connessione privata ai servizi per la rete
VPC_NETWORK_NAMEè stata creata. - Fai clic su Salva.
Se viene visualizzato il messaggio È richiesta una connessione privata ai servizi:
gcloud
Assicurati che il tuo progetto sia configurato per l' accesso privato ai servizi.
Aggiorna l'istanza Cloud SQL utilizzando il
parametro --network
per specificare il nome della rete VPC selezionata.
Per forzare l'utilizzo della nuova architettura di rete per l'istanza quando aggiungi una configurazione di rete con IP privato, utilizza il flag --enforce-new-sql-network-architecture.
Assicurati di aver allocato spazio
sufficiente per gli indirizzi IP nel tuo intervallo IP.
Se utilizzi l'applicazione della nuova architettura di rete prima che un progetto venga completamente aggiornato, potresti riscontrare un errore di creazione dell'istanza se non è disponibile spazio sufficiente per gli indirizzi IP.
Per saperne di più, consulta Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --enforce-new-sql-network-architecture
REST v1
Crea una nuova istanza con un indirizzo IP privato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: L'ID progetto
- INSTANCE_ID: L'ID istanza
- VPC_NETWORK_NAME: Specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
- RANGE_NAME: Facoltativo. Se specificato, imposta un nome di intervallo per cui viene allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a
RFC-1035e contenere da 1 a 63 caratteri. - AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
Per il parametro ipv4Enabled, imposta il valore su true
se utilizzi un indirizzo IP pubblico per la tua istanza o su false se la tua istanza ha un
indirizzo IP privato.
Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato.
Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta
Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"settings":
{
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
"allocatedIpRange": "RANGE_NAME"
"authorizedNetworks": [AUTHORIZED_NETWORKS],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Crea una nuova istanza con un indirizzo IP privato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: L'ID progetto
- INSTANCE_ID: L'ID istanza
- VPC_NETWORK_NAME: Specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
- RANGE_NAME: Facoltativo. Se specificato, imposta un nome di intervallo per cui viene allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a
RFC-1035e contenere da 1 a 63 caratteri. - AUTHORIZED_NETWORKS: Per le connessioni IP pubbliche, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
Per il parametro ipv4Enabled, imposta il valore su true
se utilizzi un indirizzo IP pubblico per la tua istanza o su false se la tua istanza ha un
indirizzo IP privato.
Puoi utilizzare il campo sqlNetworkArchitecture per forzare l'utilizzo della nuova architettura di rete per l'istanza al momento della creazione, anche se il progetto non è completamente aggiornato.
Per maggiori dettagli sulla nuova architettura di rete e sulle sue implicazioni, consulta
Esegui l'upgrade di un'istanza alla nuova architettura di rete e Alloca un intervallo di indirizzi IP.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"settings":
{
"ipConfiguration": {
"ipv4Enabled": false,
"privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
"allocatedIpRange": "RANGE_NAME"
"authorizedNetworks": [AUTHORIZED_NETWORKS],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Connettiti a un'istanza utilizzando il relativo IP privato
Utilizzi l'accesso privato ai servizi per connetterti alle istanze Cloud SQL da istanze Compute Engine o Google Kubernetes Engine nella stessa rete VPC (definita qui come origine interna) o da una rete esterna (un'origine esterna).
Connettersi da una fonte interna
Per connetterti da un'origine nello stesso progetto Google Cloud dell'istanza Cloud SQL, ad esempio Cloud SQL Auth Proxy in esecuzione su una risorsa Compute Engine, questa risorsa deve trovarsi nella stessa rete VPC in cui è stato stabilito l'accesso privato ai servizi per l'istanza Cloud SQL.
Per connetterti da un'origine serverless, come l'ambiente standard App Engine, Cloud Run o Cloud Run Functions, la tua applicazione o funzione si connette direttamente alla tua istanza tramite l'accesso VPC serverless senza Cloud SQL Auth Proxy.
Connettersi da un'origine esterna
Se una rete esterna (ad esempio una rete on-premise o una rete VPC) è connessa alla rete VPC a cui è connessa la tua istanza Cloud SQL, puoi utilizzare Cloud VPN o Cloud Interconnect per connetterti all'istanza da un client nella rete esterna.
Per consentire le connessioni da una rete esterna:
- Assicurati che la tua rete VPC sia connessa alla rete esterna utilizzando un tunnel Cloud VPN o un collegamento VLAN per Dedicated Interconnect o Partner Interconnect.
- Assicurati che le sessioni Border Gateway Protocol (BGP) sui
router Cloud che gestiscono i tunnel Cloud VPN e
i collegamenti Cloud Interconnect (VLAN) abbiano ricevuto prefissi (destinazioni) specifici dalla tua rete on-premise.
Le route predefinite (destinazione 0.0.0.0/0) non possono essere importate nella rete VPC Cloud SQL perché questa rete ha una propria route predefinita locale. Le route locali per una destinazione vengono utilizzate anche se il peering Cloud SQL è configurato per importare route personalizzate dalla tua rete VPC.
-
Identifica le connessioni di peering prodotte dalla connessione di accesso privato ai servizi. A seconda del servizio, la connessione di servizi privati potrebbe
creare una o più delle seguenti connessioni di peering, ma non necessariamente tutte:
cloudsql-mysql-googleapis-comcloudsql-postgres-googleapis-comservicenetworking-googleapis-com
- Aggiorna tutte le connessioni in peering per attivare l'esportazione di route personalizzate.
- Identifica l'intervallo allocato utilizzato dalla connessione ai servizi privati.
- Configura la modalità di annuncio personalizzato del router Cloud per l'intervallo allocato sui router Cloud che gestiscono le sessioni BGP per i tuoi tunnel Cloud VPN o i collegamenti Cloud Interconnect (VLAN).
Connetti da Cloud Shell
Cloud Shell utilizza una macchina virtuale Compute Engine gestita da Google Cloud e si trova al di fuori della tua rete VPC. Pertanto, non esiste un percorso di connettività tra Cloud Shell e lo spazio di indirizzi IP privati della tua rete VPC.
Di conseguenza, Cloud Shell non supporta la connessione a un'istanza Cloud SQL che ha solo un indirizzo IP privato.
Per connetterti alle istanze Cloud SQL da una rete esterna utilizzando la connettività IP privata, consulta Connettersi a un'istanza Cloud SQL dall'esterno del relativo VPC.
Connettiti da indirizzi IP non RFC 1918
RFC 1918 specifica gli indirizzi IP assegnati per l'uso interno (ovvero all'interno di un'organizzazione) e non verranno instradati su internet. Nello specifico, si tratta di:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Le connessioni a un'istanza Cloud SQL che utilizza un indirizzo IP privato vengono autorizzate automaticamente per gli intervalli di indirizzi RFC 1918. In questo modo, tutti i client privati possono accedere al database senza passare dal proxy.
Per connetterti da un indirizzo IP non RFC 1918, devi impostare l'autorizzazione IP per istanza per consentire il traffico dagli intervalli di indirizzi IP non RFC 1918.
Ad esempio, utilizza un comando gcloud come il seguente:
gcloud sql instances patch INSTANCE_NAME \ --authorized-networks=192.88.99.0/24,11.0.0.0/24
Per impostazione predefinita, Cloud SQL non apprende le route di subnet non RFC 1918 dalla tua rete VPC. Devi aggiornare il peering di rete a Cloud SQL per esportare le route non RFC 1918.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTIONè il nome della connessione in peering prodotta dalla connessione di servizi privati tra la tua rete VPC e la rete del producer di servizi.VPC_NETWORK_NAMEè il nome della rete VPC.PROJECT_IDè l'ID del progetto della rete VPC. Se utilizzi un VPC condiviso, utilizza l'ID progetto host.
Sostituisci quanto segue:
Per ridurre l'esaurimento degli indirizzi IP, puoi utilizzare indirizzi IP pubblici utilizzati privatamente.
Connessione da indirizzi IP pubblici utilizzati privatamente
Se vuoi configurare la tua istanza in un intervallo di indirizzi IP pubblici utilizzati privatamente, abilita
export-subnet-routes-with-public-ip sul peering di rete tra la tua rete
e la rete Cloud SQL.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTIONè il nome della connessione in peering generata dalla connessione di servizi privati tra la tua rete VPC e la rete del producer di servizi. Per conoscere il nome della connessione in peering, vai alla pagina Peering di rete VPC.VPC_NETWORK_NAMEè il nome della rete VPC.PROJECT_IDè l'ID del progetto della rete VPC. Se utilizzi un VPC condiviso, utilizza l'ID progetto host.
Sostituisci quanto segue:
Connettiti a un'istanza configurata con indirizzi IP pubblici utilizzati privatamente
Se la tua istanza è configurata in un intervallo di indirizzi IP pubblici utilizzati privatamente
e vuoi connetterti, attiva import-subnet-routes-with-public-ip sul peering di rete
tra la tua rete e la rete Cloud SQL.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --import-subnet-routes-with-public-ip \ --project=PROJECT_ID
Sostituisci quanto segue:
PEERING_CONNECTIONè il nome della connessione in peering prodotta dalla connessione di servizi privati tra la tua rete VPC e la rete del producer di servizi. Per conoscere il nome della connessione in peering, vai alla pagina Peering di rete VPC.VPC_NETWORK_NAMEè il nome della rete VPC.PROJECT_IDè l'ID del progetto della rete VPC. Utilizza l'ID progetto host se utilizzi un VPC condiviso.
Connettiti utilizzando un endpoint di scrittura
Oltre a un indirizzo IP privato, puoi utilizzare un endpoint di scrittura in una stringa di connessione SQL. Un endpoint di scrittura è un nome DNS (Domain Name Service) globale che si risolve automaticamente nell'indirizzo IP dell'istanza primaria corrente. Utilizzando un endpoint di scrittura, puoi evitare di dover apportare modifiche alla connessione dell'applicazione quando si verifica un errore della regione.
Se si verifica un failover o uno switchover di una replica, l'endpoint di scrittura può aiutare a gestire gli indirizzi IP privati delle istanze. In questo caso, utilizza l'endpoint di scrittura per connetterti all'istanza che funge da istanza principale.
Come Cloud SQL crea un endpoint di scrittura
Se abiliti l'API Cloud DNS per il tuo Google Cloud progetto e poi crei un'istanza Cloud SQL Enterprise Plus principale, promuovi la replica per l'istanza o esegui l'upgrade dell'istanza dalla versione Cloud SQL Enterprise, Cloud SQL genera automaticamente un endpoint di scrittura e lo assegna all'istanza.
Per saperne di più, consulta Visualizzare l'endpoint di scrittura.
Assegna un endpoint di scrittura a un'istanza
Se non abiliti l'API Cloud DNS per il tuo progetto Google Cloud e poi crei, promuovi o esegui l'upgrade dell'istanza, Cloud SQL non assegna automaticamente l'endpoint di scrittura all'istanza.
Per fare in modo che Cloud SQL generi un endpoint di scrittura e lo assegni all'istanza, consulta Generare l'endpoint di scrittura.
Limitazioni di Managed Service for Microsoft Active Directory
Se la regione dell'istanza primaria originale non è più disponibile e Managed Service for Microsoft Active Directory è abilitato, l'endpoint di scrittura dell'istanza primaria appena promossa non può essere utilizzato con l'autenticazione Managed Microsoft AD per connettersi dopo un'operazione di failover.
Supporto degli endpoint di scrittura della versione Cloud SQL Enterprise Plus nei trust tra foreste
Una VM unita on-premise si basa sul routing del suffisso del nome per l'autenticazione. Gli
endpoint di scrittura di un'istanza della versione Cloud SQL Enterprise Plus, gestiti da Cloud SQL, utilizzano un
formato del nome host distinto, ad esempio *.sql-psa.goog.
Se l'endpoint di scrittura associato all'istanza Cloud SQL Enterprise Plus opera da un dominio connesso tramite una relazione di trust, questo formato di connessione potrebbe impedire al dominio on-premise di trovare automaticamente il dominio autorevole per il nome principale del servizio.
Per risolvere il problema, devi aggiungere il suffisso del dominio gestito da Cloud SQL pertinente (ad esempio goog o sql-psa.goog) come suffisso UPN alternativo. Devi aggiungere questo suffisso a livello di foresta in
Active Directory del dominio gestito utilizzando l'account setupadmin:
- In Active Directory gestito, completa i seguenti passaggi:
- Nella finestra Server Manager, seleziona Strumenti. Quindi seleziona Domini e trust Active Directory.
- Nel riquadro, fai clic con il tasto destro del mouse su Domini e trust di Active Directory (il nodo radice).
- Poi seleziona Proprietà.
- Nella scheda Suffissi UPN, inserisci il suffisso UPN alternativo (ad es.
sql-psa.goog). - Fai clic su Aggiungi.
- Fai clic su Applica.
- Fai clic su OK.
- In Active Directory on-premise, completa i seguenti passaggi:
- Nella finestra Server Manager, seleziona Strumenti e poi Domini e trust di Active Directory.
- Nel riquadro, fai clic con il tasto destro del mouse sul nome di dominio AD gestito e sui trust. Questo è il dominio gestito specifico che ha la relazione di trust con il tuo dominio on-premise.
- Seleziona Properties (Proprietà), quindi vai alla scheda Trusts (Trust).
- Nelle sezioni Domini attendibili per questo dominio (attendibilità in uscita) o Domini che considerano attendibile questo dominio (attendibilità in entrata), seleziona la voce per il nome del dominio gestito e poi fai clic su Proprietà.
- Vai alla scheda Routing suffisso nome e fai clic su Aggiorna.
- Trova e seleziona il suffisso del nome appena aggiunto, ad esempio
sql-psa.googe fai clic su Attiva. - Fai clic su Applica e Ok in tutte le finestre di dialogo rimanenti.
Risoluzione dei problemi
Consulta la sezione Risoluzione dei problemi per i problemi di connettività noti e la sezione Debug dei problemi di connessione per assistenza con l'autodiagnosi.
Passaggi successivi
- Scopri di più sull'IP privato.
- Scopri di più sull'accesso privato ai servizi.
- Scopri come utilizzare i Controlli di servizio VPC per aggiungere un perimetro di servizio.
- Scopri di più sulla configurazione dell'accesso privato ai servizi.
- Scopri di più sulla configurazione dell'accesso privato ai servizi per Cloud SQL.
- Scopri di più su Cloud VPN.
- Scopri di più sulle reti VPC.
- Scopri di più sul peering di rete VPC.
- Scopri di più sul VPC condiviso.