Connessione del client SQL Server tramite l'immagine Docker del proxy di autenticazione Cloud SQL

Questa pagina descrive come connettere un client sqlcmd all'istanza Cloud SQL da una macchina client che esegue Linux o un'istanza Linux di Compute Engine utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL.

Prima di iniziare

Devi disporre di:

Connettere un client sqlcmd utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL

Per connetterti utilizzando l'immagine Docker del proxy di autenticazione Cloud SQL:

  1. Abilita l'API Cloud SQL Admin.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  2. Se utilizzi un'istanza di Compute Engine, preparala:
    1. Visualizza le proprietà dell'istanza di Compute Engine:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Verifica gli ambiti abilitati sull'istanza.

      L'autenticazione tramite gli ambiti richiede entrambi gli ambiti seguenti:

      • https://www.googleapis.com/auth/sqlservice.admin
      • https://www.googleapis.com/auth/devstorage.read_write

      In alternativa, l'ambito https://www.googleapis.com/auth/cloud-platform abilita tutte le API di Google Cloud Platform.

      Se l'istanza di Compute Engine non dispone degli ambiti corretti, puoi aggiornarla per includerli. Per saperne di più, consulta la documentazione di Compute Engine.

    3. Apri una connessione terminale all'istanza seguendo le istruzioni riportate in Connessione alle istanze Linux.
  3. Installa il client sqlcmd sull'istanza di Compute Engine o sulla macchina client, se non è già installato.
  4. Se necessario, installa il client Docker:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER

    Se utilizzi un'istanza di Compute Engine ottimizzata per i container, il client Docker è già installato.

  5. Installa l'immagine Docker del proxy di autenticazione Cloud SQL da Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1
  6. Se esegui l'immagine Docker del proxy di autenticazione Cloud SQL su una macchina locale (non un' istanza di Compute Engine) o se l'istanza di Compute Engine non dispone degli ambiti corretti, crea un account di servizio Google Cloud Platform.
    1. Nellaconsole, vai alla pagina Service account. Google Cloud

      Vai ad Account di servizio

    2. Seleziona il progetto che contiene l'istanza Cloud SQL.
    3. Fai clic su Crea account di servizio.
    4. Nel campo Nome account di servizio, inserisci un nome descrittivo per l'account di servizio.
    5. Modifica l'ID account di servizio con un valore univoco e riconoscibile, quindi fai clic su Crea e continua.
    6. Fai clic sul campo Seleziona un ruolo e seleziona uno dei seguenti ruoli:
      • Cloud SQL > Client Cloud SQL
      • Cloud SQL > Cloud SQL Editor
      • Cloud SQL > Amministratore Cloud SQL
    7. Fai clic su Fine per completare la creazione del account di servizio.
    8. Fai clic sul menu Azioni per il nuovo account di servizio, quindi seleziona Gestisci chiavi.
    9. Fai clic sul menu a discesa Aggiungi chiave e poi su Crea nuova chiave.
    10. Verifica che il tipo di chiave sia JSON e fai clic su Crea.

      Il file della chiave privata viene scaricato sulla tua macchina. Puoi spostarlo in un'altra posizione. Proteggi il file della chiave.

    Quando avvii il proxy di autenticazione Cloud SQL, fornisci il percorso del file della chiave come "PATH_TO_KEY_FILE".

  7. Vai alla pagina Istanze Cloud SQL nella Google Cloud console.

    Vai a Istanze Cloud SQL

  8. Seleziona l'istanza per aprire la pagina Dettagli istanza e copia il Nome connessione istanza.

    Ad esempio: myproject:us-central1:myinstance.

  9. Avvia il proxy di autenticazione Cloud SQL.

    A seconda della lingua e dell'ambiente, puoi avviare il proxy di autenticazione Cloud SQL utilizzando i socket TCP o i socket Unix. I socket Unix non sono supportati per le applicazioni scritte nel linguaggio di programmazione Java o per l'ambiente Windows environment.

    Socket TCP

    docker run -d \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      -p 127.0.0.1:1433:1433 \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1 \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>

    Se utilizzi le credenziali fornite dall'istanza di Compute Engine, non includere il parametro --credentials-file e la -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json riga.

    Specifica sempre il prefisso 127.0.0.1 in -p in modo che il proxy di autenticazione Cloud SQL non sia esposto all'esterno dell'host locale. Il valore "0.0.0.0" nel parametro instances è necessario per rendere la porta accessibile dall'esterno del container Docker container.

    Socket Unix

    docker run -d -v /cloudsql:/cloudsql \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1 //
      --unix-socket=/cloudsql \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME> 

    Se utilizzi le credenziali fornite dall'istanza di Compute Engine, non includere il parametro --credentials-file e la -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json riga.

    Se utilizzi un'immagine ottimizzata per i container, utilizza una directory scrivibile al posto di /cloudsql, ad esempio:

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    Puoi specificare più istanze, separate da virgole. Puoi anche utilizzare i metadati di Compute Engine per determinare dinamicamente le istanze a cui connetterti. Scopri di più sui parametri del proxy.

  10. Avvia il client:

    La stringa di connessione che utilizzi dipende dal fatto che tu abbia avviato il proxy di autenticazione Cloud SQL utilizzando un socket TCP o Docker.

    Socket TCP

    1. Avvia il client sqlcmd:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

      Quando ti connetti utilizzando i socket TCP, il proxy di autenticazione Cloud SQL è accessibile tramite 127.0.0.1.

    2. Se richiesto, inserisci la password.
    3. Viene visualizzato il prompt sqlcmd.
Hai bisogno di aiuto? Per assistenza nella risoluzione dei problemi relativi al proxy, consulta Risoluzione dei problemi di connessione del proxy di autenticazione Cloud SQL, o la nostra pagina di assistenza di Cloud SQL.

Mantenere aggiornata l'immagine Docker del proxy di autenticazione Cloud SQL

L'immagine Docker del proxy di autenticazione Cloud SQL si basa su una versione specifica del proxy di autenticazione Cloud SQL. Quando è disponibile una nuova versione del proxy di autenticazione Cloud SQL, esegui il pull della nuova versione dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato il tuo ambiente. Puoi visualizzare la versione attuale del proxy di autenticazione Cloud SQL controllando la pagina delle release del proxy di autenticazione Cloud SQL su GitHub.

Passaggi successivi