Configurazione dell'IP privato

Questa pagina descrive come configurare un'istanza Cloud SQL per l'utilizzo di un IP privato.

Per informazioni sul funzionamento dell'IP privato, nonché sui requisiti di gestione e dell'ambiente, consulta IP privato.

Prima di iniziare

Requisiti relativi ad API e IAM

  • Devi abilitare l' API Service Networking per il tuo progetto Google Cloud.
  • Se utilizzi una rete VPC condivisa, devi anche attivare questa API per il progetto host.

  • Per gestire una connessione di accesso ai servizi privati, l'utente deve disporre delle seguenti autorizzazioni IAM (Identity and Access Management). Se non disponi delle autorizzazioni richieste, potresti ricevere errori relativi a autorizzazioni insufficienti.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Se utilizzi una rete VPC condivisa, devi anche aggiungere l'utente al progetto host e assegnare le stesse autorizzazioni all'utente nel progetto host.

Accesso privato ai servizi

Quando crei una nuova rete Virtual Private Cloud (VPC) nel tuo progetto, devi configurare l'accesso ai servizi privati per allocare un intervallo di indirizzi IP e creare una connessione di servizio privato. 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 impostare questa configurazione.

Configurare un'istanza per l'utilizzo di un IP privato

Puoi configurare un'istanza Cloud SQL per l'utilizzo dell'IP privato al momento della creazione o per un'istanza esistente.

Configurare 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

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Crea istanza.
  3. Espandi Mostra opzioni di configurazione.
  4. Espandi Connessioni.
  5. Seleziona IP privato.

    Un elenco a discesa mostra le reti VPC disponibili nel progetto. Se il tuo progetto è il progetto di servizio di un VPC condiviso, vengono visualizzate anche le reti VPC del progetto host.

  6. Seleziona la rete VPC che vuoi utilizzare.
  7. Se viene visualizzato un messaggio che ti informa che devi configurare una connessione di servizio privato, procedi nel seguente modo:

    1. Fai clic su Configura connessione.
    2. Nella sezione Alloca un intervallo IP, seleziona una delle seguenti opzioni:
      • Seleziona uno o più intervalli IP esistenti o creane uno nuovo dall'elenco 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.
    3. Fai clic su Continua.
    4. Fai clic su Crea connessione.
    5. Verifica di visualizzare il messaggio: Private service connection for network VPC_NETWORK_NAME has been successfully created.
  8. Facoltativamente, puoi specificare un intervallo IP allocato da utilizzare per le connessioni delle istanze.
    1. Espandi Mostra opzione intervallo IP allocato.
    2. Seleziona un intervallo IP dal menu a discesa.
  9. Facoltativo. Se vuoi consentire ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata, seleziona Abilita percorso privato.
  10. Completa la configurazione dell'istanza.
  11. Fai clic su Crea istanza.

gcloud

Prima di creare un'istanza utilizzando un indirizzo IP privato, assicurati che il progetto sia configurato per l' accesso ai servizi privati.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • INSTANCE_ID: l'ID istanza
  • PROJECT_ID: l'ID progetto
  • NETWORK_PROJECT_ID: l'ID progetto della rete VPC

  • VPC_NETWORK_NAME: il nome della rete VPC
  • RANGE_NAME: facoltativo. Se specificato, imposta un nome per l'intervallo a cui è allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a RFC-1035 e contenere da 1 a 63 caratteri.
  • DATABASE_VERSION: la versione del database PostgreSQL (ad es. POSTGRES_14)
  • NUMBER_OF_CPU: il numero di CPU
  • MEMORY_IN_GB: la quantità di memoria (in GB)
  • REGION_NAME: il nome della regione
Per specificare il nome della rete VPC, utilizza il parametro --network. Per disattivare l'IP pubblico, utilizza il flag --no-assign-ip.

Se vuoi, puoi anche utilizzare il parametro --enable-google-private-path per consentire ad altri servizi Google Cloud come BigQuery di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata. Questo parametro è valido solo se:

  • Utilizzi il parametro --no-assign-ip.
  • Utilizza il parametro --network per specificare il nome della rete VPC che vuoi utilizzare per creare una connessione privata.

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 \
--enable-google-private-path \
--database-version=DATABASE_VERSION \
--cpu=NUMBER_OF_CPU \
--memory=MEMORY_IN_GB \
--region=REGION_NAME

Terraform

Per configurare l'IP privato per una nuova istanza, utilizza le seguenti risorse Terraform:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "default" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}

# [START  cloud_sql_postgres_instance_private_ip_dns]

## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.id
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Applica le modifiche

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo 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 di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel main.tf appena creato.

    Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione -upgrade:

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o aggiornare corrispondano alle tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione di Terraform eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il tuo progetto Google Cloud 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:

  1. Per disattivare la protezione dell'eliminazione, imposta l'argomento deletion_protection su false nel file di configurazione Terraform.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo yes al prompt:

    terraform destroy

REST v1

Crea una nuova istanza con un indirizzo IP privato:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • 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-1035 e contenere da 1 a 63 caratteri.
  • AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni da reti autorizzate che possono connettersi all'istanza.

Per il parametro ipv4Enabled, imposta il valore su true se utilizzi un indirizzo IP pubblico per l'istanza o su false se l'istanza ha un indirizzo IP privato.

Se imposti il parametro enablePrivatePathForGoogleCloudServices su true, consenti ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata. Se imposti questo parametro su false, gli altri servizi Google Cloud non possono accedere ai dati in Cloud SQL tramite una connessione IP privata.

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],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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 seguenti sostituzioni:

  • 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-1035 e contenere da 1 a 63 caratteri.
  • AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni da reti autorizzate che possono connettersi all'istanza.

Per il parametro ipv4Enabled, imposta il valore su true se utilizzi un indirizzo IP pubblico per l'istanza o su false se l'istanza ha un indirizzo IP privato.

Se imposti il parametro enablePrivatePathForGoogleCloudServices su true, consenti ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata. Se imposti questo parametro su false, gli altri servizi Google Cloud non possono accedere ai dati in Cloud SQL tramite una connessione IP privata.

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],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Configurare l'IP privato per un'istanza esistente

La configurazione di un'istanza Cloud SQL esistente per l'utilizzo dell'IP privato provoca il riavvio dell'istanza, con conseguente tempo di riposo.

Per configurare un'istanza esistente in modo che utilizzi l'IP privato:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Seleziona Connessioni dal menu di navigazione di Cloud SQL.
  4. Nella scheda Networking, seleziona la casella di controllo IP privato.

    Un elenco a discesa mostra le reti disponibili nel progetto.

  5. Seleziona la rete VPC che vuoi utilizzare:
  6. Se viene visualizzato il messaggio È richiesta una connessione privata ai servizi:

    1. Fai clic su Configura connessione.
    2. Nella sezione Alloca un intervallo IP, scegli una delle seguenti opzioni:
      • Seleziona uno o più intervalli IP esistenti o creane uno nuovo dall'elenco 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.
    3. Fai clic su Continua.
    4. Fai clic su Crea connessione.
    5. Verifica di visualizzare lo stato La connessione privata ai servizi per la rete VPC_NETWORK_NAME è stata creata.
  7. Facoltativo. Se vuoi consentire ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata, seleziona la casella di controllo Abilita percorso privato.
  8. Fai clic su Salva.

gcloud

Assicurati che il 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.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path

REST v1

Crea una nuova istanza con un indirizzo IP privato:

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • 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-1035 e contenere da 1 a 63 caratteri.
  • AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni da reti autorizzate che possono connettersi all'istanza.

Per il parametro ipv4Enabled, imposta il valore su true se utilizzi un indirizzo IP pubblico per l'istanza o su false se l'istanza ha un indirizzo IP privato.

Se imposti il parametro enablePrivatePathForGoogleCloudServices su true, consenti ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata. Se imposti questo parametro su false, gli altri servizi Google Cloud non possono accedere ai dati in Cloud SQL tramite una connessione IP privata.

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],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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 seguenti sostituzioni:

  • 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-1035 e contenere da 1 a 63 caratteri.
  • AUTHORIZED_NETWORKS: per le connessioni con IP pubblico, specifica le connessioni da reti autorizzate che possono connettersi alla tua istanza.

Per il parametro ipv4Enabled, imposta il valore su true se utilizzi un indirizzo IP pubblico per l'istanza o su false se l'istanza ha un indirizzo IP privato.

Se imposti il parametro enablePrivatePathForGoogleCloudServices su true, consenti ad altri servizi Google Cloud, come BigQuery, di accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione IP privata. Se imposti questo parametro su false, gli altri servizi Google Cloud non possono accedere ai dati in Cloud SQL tramite una connessione IP privata.

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],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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 ai servizi privati per connetterti alle istanze Cloud SQL da istanze Compute Engine o Google Kubernetes Engine nella stessa rete VPC (qui definite come origini interne) o dall'esterno di questa rete (un'origine esterna).

Connettiti da un'origine interna

Per connetterti da un'origine nello stesso progetto Google Cloud dell'istanza Cloud SQL, ad esempio il proxy di autenticazione Cloud SQL in esecuzione su una risorsa Compute Engine, la risorsa deve trovarsi nella stessa rete VPC in cui è stato stabilito l'accesso ai servizi privati per l'istanza Cloud SQL.

Per connetterti da un'origine serverless, ad esempio l'ambiente standard App Engine, Cloud Run o le funzioni Cloud Run, la tua applicazione o funzione si connette direttamente all'istanza tramite l'accesso VPC serverless senza il proxy di autenticazione Cloud SQL.

Connettiti 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 l'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:

  1. Assicurati che la rete VPC sia connessa alla rete esterna utilizzando un Cloud VPN Cloud o un collegamento VLAN per Dedicated Interconnect o Partner Interconnect.
  2. Assicurati che le sessioni BGP (Border Gateway Protocol) sui router Cloud che gestiscono i tunnel Cloud VPN e i collegamenti VLAN Cloud Interconnect abbiano ricevuto prefisso (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 la propria route predefinita locale. Le route locali per una destinazione vengono utilizzate anche se il peering Cloud SQL è configurato per importare route personalizzate dalla rete VPC.

  3. Identifica le connessioni di peering prodotte dalla connessione ai servizi privati. A seconda del servizio, la connessione ai servizi privati potrebbe creare una o più delle seguenti connessioni di peering, ma non necessariamente tutte:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Aggiorna tutte le connessioni in peering per attivare l'opzione Esporta route personalizzate.
  5. Identifica l'intervallo allocato utilizzato dalla connessione ai servizi privati.
  6. Configura la modalità di annuncio personalizzato del router Cloud per l'intervallo allocato sui router Cloud che gestiscono le sessioni BGP per i tunnel Cloud VPN o i collegamenti (VLAN) Cloud Interconnect.

Connetti da Cloud Shell

Cloud Shell non supporta la connessione a un'istanza Cloud SQL con solo un indirizzo IP privato.

Connettiti da indirizzi IP non RFC 1918

La RFC 1918 specifica gli indirizzi IP assegnati per l'utilizzo interno (ovvero all'interno di un'organizzazione) e che non verranno instradati su internet. Nello specifico:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Le connessioni a un'istanza Cloud SQL che utilizzano un indirizzo IP privato sono autorizzate automaticamente per gli intervalli di indirizzi RFC 1918. In questo modo, tutti i client privati possono accedere al database senza passare per il proxy.

Per connetterti da un indirizzo IP non RFC 1918, devi impostare l'autorizzazione IP per istanza per consentire il traffico da 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 rete VPC. Devi aggiornare il peering di rete con Cloud SQL per esportare eventuali route non RFC 1918.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Sostituisci quanto segue:

  • cloudsql-postgres-googleapis-com è il nome di una connessione privata ai servizi nella pagina Rete VPC.

    Seleziona la tua rete, quindi cerca la sezione Connessione a Private Service.

  • VPC_NETWORK_NAME è il nome della rete VPC.
  • PROJECT_ID è l'ID del progetto della rete VPC. Se utilizzi la rete VPC condiviso, utilizza l'ID progetto host.

Per ridurre l'esaurimento degli indirizzi IP, puoi utilizzare indirizzi IP pubblici utilizzati privatamente.

Eseguire la connessione da indirizzi IP pubblici utilizzati privatamente

Se vuoi configurare l'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 cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Sostituisci quanto segue:

  • cloudsql-postgres-googleapis-com è il nome di una connessione privata ai servizi nella pagina Rete VPC.

    Seleziona la tua rete e cerca la sezione Connessione a servizi privati.

  • VPC_NETWORK_NAME è il nome della rete VPC.
  • PROJECT_ID è l'ID del progetto della rete VPC. Se utilizzi la rete VPC condiviso, utilizza l'ID progetto host.

Connettiti a un'istanza configurata con indirizzi IP pubblici utilizzati privatamente

Se la tua istanza è configurata in un intervallo di indirizzi IP pubblici di uso privato e vuoi connetterti, attiva import-subnet-routes-with-public-ip nel peering di rete tra la tua rete e la rete Cloud SQL.

gcloud compute networks peerings update cloudsql-postgres-googleapis-com \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Sostituisci quanto segue:

  • cloudsql-postgres-googleapis-com è il nome di una connessione privata ai servizi nella pagina Rete VPC.

    Seleziona la tua rete, quindi cerca la sezione Connessione a Private Service.

  • VPC_NETWORK_NAME è il nome della rete VPC.
  • PROJECT_ID è l'ID del progetto della rete VPC. Utilizza l'ID progetto host se utilizzi la Rete VPC condiviso.

Eseguire la connessione 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 risolve automaticamente l'indirizzo IP dell'istanza principale corrente. Utilizzando un endpoint di scrittura, puoi evitare di dover apportare modifiche alla connessione dell'applicazione in caso di interruzione del servizio a livello regionale.

Se si verifica un failover o uno switchover della replica, l'endpoint di scrittura può essere utile per 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 attivi l'API Cloud DNS per il tuo progetto Google Cloud e poi crei un'istanza principale della versione Cloud SQL Enterprise Plus, esegui la promozione della 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 ulteriori informazioni su come ottenere l'endpoint di scrittura per l'istanza, consulta Visualizzare le informazioni sull'istanza.

Assegnare un endpoint di scrittura a un'istanza

Se non attivi 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, completa i seguenti passaggi:

  1. Abilita l'API Cloud DNS.

    Console

    1. Nella console Google Cloud, vai alla pagina API.

      Vai alle API

    2. Fai clic sull'API Cloud DNS.
    3. Abilita l'API.

    gcloud

    1. Fai clic sul seguente pulsante per aprire Cloud Shell, che fornisce accesso da riga di comando alle risorse Google Cloud direttamente dal browser.

      Apri Cloud Shell

    2. Per abilitare l'API, esegui il seguente comando gcloud services enable:

      gcloud services enable dns.googleapis.com
  2. Crea una replica abilitata per il disaster recovery avanzato. Di conseguenza, Cloud SQL genera l'endpoint di scrittura e lo assegna all'istanza.

  3. Per recuperare l'endpoint di scrittura, utilizza il comando gcloud sql instances describe:
    gcloud sql instances describe INSTANCE_NAME | grep psaWriteEndpoint

    Sostituisci INSTANCE_NAME con il nome dell'istanza Cloud SQL.

Risoluzione dei problemi

Consulta la sezione Risoluzione dei problemi per conoscere i problemi di connettività noti e la sezione Debug dei problemi di connessione per assistenza con l'autodiagnosi.

Passaggi successivi