Connettiti a un'istanza Cloud SQL per PostgreSQL con IP privato

Questa pagina mostra come creare e connetterti a un'istanza PostgreSQL utilizzando un IP privato. Le risorse create in questa guida rapida in genere costano meno di un dollaro, a condizione che tu completi i passaggi, inclusa la liberazione di spazio, in modo tempestivo.


Per seguire le indicazioni dettagliate per questa attività direttamente nella Google Cloud console, fai clic su Procedura guidata:

Procedura guidata


Prima di iniziare

  1. Accedi al tuo Google Cloud account. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Verifica di disporre delle autorizzazioni necessarie per completare questa guida rapida.
  7. Abilita le API necessarie Google Cloud .

    Console

    Nella Google Cloud console, vai alla pagina API.

    Vai alle API

    Abilita l'API Cloud SQL Admin. Abilitando questa API, puoi eseguire il proxy di autenticazione Cloud SQL.

    gcloud

    Fai clic sul pulsante seguente per aprire Cloud Shell, che fornisce l'accesso tramite riga di comando alle tue Google Cloud risorse direttamente dal browser. Cloud Shell può essere utilizzato per eseguire i comandi gcloud presentati in questa guida rapida.

    Apri Cloud Shell

    Esegui il gcloud services enable comando come segue utilizzando Cloud Shell per abilitare le API richieste per questa guida rapida:

    gcloud services enable sqladmin.googleapis.com

    Questo comando abilita le seguenti API:

    • API Cloud SQL Admin. Abilitando questa API, puoi eseguire il proxy di autenticazione Cloud SQL.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare Cloud SQL con un indirizzo IP privato, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto che vuoi configurare e a cui vuoi connetterti:

  • Crea o elimina un'istanza, un database e un utente: ruolo di amministratore Cloud SQL (roles/cloudsql.admin).
  • Crea o elimina un account di servizio IAM: ruolo Amministratore account di servizio IAM (roles/iam.serviceAccountAdmin).
  • Crea o elimina un'istanza di computing:
  • Crea una connessione:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Panoramica

Esistono molti modi per connettersi a un'istanza Cloud SQL con un indirizzo IP privato, a seconda della posizione dell'origine. Il fattore chiave è che la macchina di origine deve trovarsi nella stessa rete VPC dell'istanza Cloud SQL. Se l'origine non si trova in Google Cloud o non nello stesso Google Cloud progetto, devi configurare la connettività in modo diverso da quello mostrato qui.

In questa guida rapida, configuriamo la connettività tramite il percorso più diretto. L' origine e la destinazione si trovano nello stesso Google Cloud progetto e nella stessa rete VPC. Creiamo un'istanza Cloud SQL con un indirizzo IP privato (la destinazione) e una VM Compute Engine (l'origine). Utilizziamo la VM per installare e utilizzare gli strumenti necessari per connetterci dalla VM all'istanza Cloud SQL.

Esegui le seguenti azioni:

  1. Crea un'istanza Cloud SQL con un indirizzo IP privato.

    Trova e salva il connection name dell'istanza per un utilizzo successivo.

  2. Crea una VM Compute Engine.
  3. Apri due connessioni SSH nella VM di Compute Engine.

    Utilizzerai la prima finestra per installare psql e installare e avviare il proxy di autenticazione Cloud SQL. Poi utilizzerai la seconda finestra per connetterti all'istanza Cloud SQL connettendoti al proxy di autenticazione Cloud SQL.

  4. Nella finestra SSH n. 1, procedi nel seguente modo:
    1. Installa il client psql.
    2. Installa il proxy di autenticazione Cloud SQL.

      Il proxy di autenticazione Cloud SQL funge da connettore tra il client psql e l'istanza Cloud SQL.

    3. Avvia il proxy di autenticazione Cloud SQL.

      Se l'operazione va a buon fine, il proxy di autenticazione Cloud SQL rimane in attesa delle richieste di connessione.

  5. Nella finestra SSH n. 2, connettiti all'istanza Cloud SQL facendo in modo che il client psql si connetta a l proxy di autenticazione Cloud SQL.

    Se l'operazione va a buon fine, in questa finestra viene visualizzato il prompt psql e nella finestra SSH n. 1, in cui è in esecuzione il proxy di autenticazione Cloud SQL, viene visualizzato un messaggio di connessione riuscita.

  6. Libera spazio.

Crea un'istanza Cloud SQL con un indirizzo IP privato

Per creare un'istanza che utilizza connessioni IP private:

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

    Vai a Istanze Cloud SQL

  2. Seleziona la scheda PostgreSQL e fai clic su Crea istanza sandbox nella Sandbox casella. In alternativa, puoi fare clic su Crea istanza e procedere nel seguente modo:
    1. Fai clic su Scegli PostgreSQL.
    2. Seleziona la versione Enterprise.
    3. Scegli l'impostazione predefinita Sandbox.
  3. Se ti viene chiesto di abilitare l'API Compute, fai clic sul pulsante Abilita API.
  4. Nella sezione Informazioni istanza, inserisci un nome per l'ID istanza.
  5. Inserisci una password per l'utente postgres. Prendi nota della password che crei, perché ti servirà in seguito.
  6. Nella sezione Scegli regione e disponibilità zonale, seleziona l'opzione Singola zona.
  7. Espandi Mostra opzioni di configurazione.
  8. Espandi Connessioni.
  9. Deseleziona IP pubblico.
  10. Seleziona IP privato.
  11. Seleziona Accesso ai servizi privati (PSA).
  12. Dal menu a discesa Rete VPC, seleziona predefinita.
  13. Se utilizzi un nuovo progetto, viene visualizzato il messaggio: La connessione di rete non è configurata e una casella intitolata È richiesta la conferma della configurazione di rete ti indirizza alla documentazione VPC per la configurazione di PSA.
    1. Nella Google Cloud console, vai alla pagina Reti VPC:

      Vai a Reti VPC

    2. Seleziona la rete VPC predefinita.
    3. Imposta una regola firewall che consenta l'accesso alla porta TCP 22:
      1. Seleziona la scheda Firewall.
      2. In Regole firewall VPC, seleziona Crea regola firewall VPC.
      3. Assegna un nome alla regola firewall.
      4. In Destinazioni, seleziona Tutte le istanze nella rete.
      5. In Intervalli IPv4 di origine, inserisci 0.0.0.0/0.
      6. In Protocolli e porte, seleziona TCP e poi, nella casella Porte direttamente sotto, inserisci 22.
      7. Seleziona Crea.
    4. Alloca un intervallo di indirizzi IP:
      1. Seleziona la scheda Accesso privato ai servizi.
      2. Nella scheda Accesso privato ai servizi, seleziona la scheda Intervalli IP allocati per i servizi.
      3. Fai clic su Alloca intervallo IP.
      4. Inserisci un Nome e, facoltativamente, una Descrizione per l'intervallo allocato.
      5. Per consentire a Google di selezionare un intervallo disponibile, seleziona Automatico.
      6. Inserisci una lunghezza del prefisso compresa tra 16 e 124 (il numero di indirizzi allocati è uguale a 2 alla (32 - lunghezza del prefisso).
      7. Fai clic su Alloca per creare l'intervallo allocato.
    5. Crea una connessione privata:
      1. Nella scheda Accesso ai servizi privati, passa alla scheda Connessioni private ai servizi.
      2. Fai clic sul pulsante Crea connessione.
      3. Nel menu a discesa Allocazione assegnata nella casella Crea una connessione privata, seleziona il nome dell'intervallo di indirizzi IP che hai appena creato.
      4. Fai clic su Connetti.
    6. Una volta creata la connessione, torna alla pagina in cui stavi creando l'istanza Cloud SQL e fai clic su Conferma connessione.
  14. Una volta creata la connessione PSA, fai clic su Crea istanza.

Viene visualizzata la pagina Panoramica dell'istanza durante la creazione della nuova istanza.

Al termine della creazione dell'istanza, scorri fino alla sezione Connettiti a questa istanza e salva il Nome connessione dell'istanza. Il connection name è nel formato projectID:region:instanceID. Utilizzerai questo connection name in un secondo momento quando avvierai il proxy di autenticazione Cloud SQL.

Crea un database

Per creare un database, seleziona Database nel riquadro di navigazione a sinistra e poi:

  1. Seleziona Crea database.
  2. Inserisci un DB_NAME nel campo Nome database.
  3. Fai clic su Crea.

Utilizzerai questo db_name in un secondo momento quando ti connetterai utilizzando il proxy di autenticazione Cloud SQL.

Crea una VM Compute Engine

Per creare una VM, segui questi passaggi:

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

    Vai a Istanze VM

  2. Fai clic su Crea istanza.
  3. Inserisci un Nome per l'istanza.
  4. Seleziona Protezione dei dati nel riquadro di navigazione e seleziona Nessun backup.
  5. Seleziona Sicurezza nel riquadro di navigazione e, in Ambiti di accesso, seleziona Consenti l'accesso completo a tutte le API Cloud.
  6. Fai clic su Crea e attendi il completamento della creazione della VM.

Apri due connessioni SSH nella VM di Compute Engine

Utilizziamo due finestre nella VM. La prima finestra viene utilizzata per installare il client psql e il proxy di autenticazione Cloud SQL, recuperare il nome della connessione dell'istanza e utilizzare questo nome per avviare il proxy. La seconda finestra viene utilizzata per connettersi all'istanza Cloud SQL tramite il proxy.

  1. Espandi il menu SSH nella colonna Connetti per la tua istanza VM di Compute Engine.
  2. Seleziona Apri nella finestra del browser per aprire la finestra SSH n. 1.

    Potrebbero essere necessari alcuni secondi prima che il prompt nella finestra diventi disponibile.

  3. Quando viene visualizzato il prompt, inserisci pwd per verificare di trovarti nella /home/$USER directory.

    In questa finestra installerai il client psql e il proxy di autenticazione Cloud SQL e avvierai anche il proxy di autenticazione Cloud SQL.

  4. Seleziona di nuovo Apri nella finestra del browser per aprire la finestra SSH n. 2.

    Utilizzerai questa finestra per connetterti all'istanza Cloud SQL.

Installa il client psql

Utilizza la finestra SSH n. 1 per questo passaggio.

Installa il client psql dal gestore di pacchetti:

sudo apt-get update
sudo apt-get install postgresql-client
  

Installa il proxy di autenticazione Cloud SQL

Utilizza la finestra SSH n. 1 per questo passaggio.

  1. Installa wget:
    sudo apt-get install wget
        
  2. Scarica il proxy di autenticazione Cloud SQL:
    wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.8.2/cloud-sql-proxy.linux.amd64 \
    -O cloud-sql-proxy
      
  3. Rendi eseguibile il proxy di autenticazione Cloud SQL:
    chmod +x cloud-sql-proxy
      

Avvia il proxy di autenticazione Cloud SQL

Utilizza la finestra SSH n. 1 per questo passaggio.

Avvia il proxy di autenticazione Cloud SQL per monitorarne l'output. Sostituisci INSTANCE_CONNECTION_NAME con il connection name che hai copiato quando hai creato l'istanza Cloud SQL.

./cloud-sql-proxy --private-ip INSTANCE_CONNECTION_NAME

Quando il proxy di autenticazione Cloud SQL si avvia correttamente, nella finestra SSH viene visualizzato un messaggio simile al seguente:

Listening on 127.0.0.1:5432 for myInstance
Ready for new connections

Connettiti all'istanza Cloud SQL

Utilizza la finestra SSH n. 2 per questo passaggio.

Esegui il seguente comando dopo aver sostituito DB_NAME con il nome del database Cloud SQL:

psql "host=127.0.0.1 port=5432 sslmode=disable dbname=DB_NAME user=postgres"

Al prompt Enter password:, inserisci la password del tuo account PostgreSQL.

Verifica che venga visualizzato il prompt di PostgreSQL. Ti sei connesso al database utilizzando il client psql.

Torna alla finestra del terminale in cui hai avviato il proxy di autenticazione Cloud SQL. Dovresti vedere un messaggio simile al seguente:

New connection for myInstance

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

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

    Vai a Istanze Cloud SQL

  2. Seleziona l'istanza myinstance per aprire la pagina Dettagli istanza.
  3. Nella barra delle icone nella parte superiore della pagina, fai clic su Elimina.
  4. Nella finestra Elimina istanza, digita il nome dell'istanza e fai clic su Elimina.

Passaggi di pulizia facoltativi

Se non utilizzi le API abilitate nell'ambito di questa guida rapida, puoi disabilitarle.

  • API abilitate in questa guida rapida:
    • API Cloud SQL Admin
  1. Nella Google Cloud console, vai alla pagina API.

    Vai alle API

  2. Seleziona l'API Cloud SQL Admin e fai clic sul pulsante Disabilita API.

  3. Nella Google Cloud console, vai alla pagina Istanze VM.

    Vai a Istanze VM

  4. Seleziona il nome dell'istanza.

  5. Seleziona Elimina dal menu Altre azioni.

Passaggi successivi

In base alle tue esigenze, puoi scoprire di più sulla creazione di istanze Cloud SQL.

Puoi anche scoprire come creare utenti PostgreSQL e database per l'istanza Cloud SQL.

Inoltre, puoi scoprire come connetterti a un'istanza Cloud SQL da altre Google Cloud applicazioni: