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 avere:

Connetti 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. Enable the Cloud SQL Admin API.

    Enable the API

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

      L'autenticazione mediante 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 attiva tutte le API della piattaforma Google Cloud.

      Se l'istanza Compute Engine non dispone degli ambiti appropriati, puoi aggiornarla in modo da includerli. Per ulteriori informazioni, consulta la documentazione di Compute Engine.

    3. Apri una connessione da terminale all'istanza seguendo le istruzioni riportate in Collegamenti alle istanze Linux.
  3. Installa il client sqlcmd sull'istanza 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 di Compute Engine ottimizzato per i container, ha già Client Docker 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.13.0
  6. Se esegui l'immagine Docker di Cloud SQL Auth Proxy su un computer locale (non su un'istanza Compute Engine) o se l'istanza Compute Engine non dispone degli ambiti appropriati, crea un account di servizio Google Cloud.
    1. Nella console Google Cloud, vai alla pagina Account di servizio.

      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 impostando un valore univoco e riconoscibile, poi 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 > Editor Cloud SQL
      • Cloud SQL > Amministratore Cloud SQL
    7. Fai clic su Fine per completare la creazione dell'account di servizio.
    8. Fai clic sul menu Azioni per il nuovo account di servizio e seleziona Gestisci chiavi.
    9. Fai clic sul menu a discesa Aggiungi chiave e quindi 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 sul computer. Puoi spostarlo in un'altra posizione. Tieni al sicuro il file della chiave.

    Fornisci il percorso del file della chiave come "PATH_TO_KEY_FILE" quando avviai il proxy di autenticazione Cloud SQL.

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

    Vai a Istanze Cloud SQL

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

    Ad esempio: myproject:us-central1:myinstance.

  9. Avvia il proxy di autenticazione Cloud SQL.

    A seconda del linguaggio e dell'ambiente, puoi avviare il proxy di autenticazione Cloud SQL utilizzando socket TCP o socket Unix. I socket Unix non sono supportati per applicazioni scritte nel linguaggio di programmazione Java o per Windows completamente gestito di Google Cloud.

    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.13.0 \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>

    Se utilizzi le credenziali fornite dalla tua istanza Compute Engine, non includono il parametro --credentials-file e -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json dalla riga di comando.

    Specifica sempre il prefisso 127.0.0.1 in -p in modo che il proxy di autenticazione Cloud SQL non sia esposti 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.

    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.13.0 //
      --unix-socket=/cloudsql \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME> 

    Se utilizzi le credenziali fornite dalla tua istanza Compute Engine, non includono il parametro --credentials-file e -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json dalla riga di comando.

    Se utilizzi un'immagine ottimizzata per i container, usa 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 le socket TCP, accedi a Cloud SQL Auth Proxy tramite 127.0.0.1.

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

Mantieni 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 dell'immagine Docker del proxy di autenticazione Cloud SQL per mantenere aggiornato l'ambiente. Tu vedere la versione corrente del proxy di autenticazione Cloud SQL controllando Pagina delle release di GitHub del proxy di autenticazione Cloud SQL. Le release future dei proxy verranno indicate anche nel forum Google Groups Cloud SQL announce.

Passaggi successivi