Connecter un client SQL Server à l'aide de l'image Docker du proxy d'authentification Cloud SQL

Cette page décrit comment connecter un client sqlcmd à votre instance Cloud SQL à l'aide de l'image Docker du proxy d'authentification Cloud SQL et depuis une machine cliente exécutant Linux ou une instance Compute Engine Linux.

Avant de commencer

Vous devez avoir :

Connecter un client sqlcmd en utilisant l'image Docker du proxy d'authentification Cloud SQL

Pour vous connecter à l'aide de l'image Docker du proxy d'authentification Cloud SQL :

  1. Activez Cloud SQL Admin API.

    Activer l'API

  2. Si vous utilisez une instance Compute Engine, préparez-la :
    1. Affichez les propriétés de l'instance Compute Engine :
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Vérifiez les champs d'application activés sur l'instance.

      L'authentification par champs d'application nécessite les deux champs d'application suivants :

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

      Le champ d'application https://www.googleapis.com/auth/cloud-platform permet également d'activer toutes les API Google Cloud Platform.

      Si votre instance Compute Engine ne dispose pas des champs d'application appropriés, mettez-la à jour pour les inclure. Pour en savoir plus, consultez la documentation Compute Engine.

    3. Ouvrez une connexion de terminal à l'instance, en suivant les instructions de la section Connexion aux instances Linux.
  3. Si ce n'est pas déjà fait, installez le client sqlcmd sur l'instance Compute Engine ou la machine cliente.

    Debian/Ubuntu

    Pour Debian/Ubuntu, installez les outils de ligne de commande SQL Server applicables.

    CentOS/RHEL

    Pour CentOS/RHEL, installez les outils de ligne de commande SQL Server applicables.

    openSUSE

    Pour openSUSE, installez les outils de ligne de commande SQL Server applicables.

    Autres plates-formes

    Consultez la page de destination concernant l'installation de SQL Server, ainsi que la page de téléchargements SQL Server.

  4. Si nécessaire, installez le client Docker :
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER
    

    Si vous utilisez une instance de Compute Engine optimisée pour les conteneurs, le client Docker est déjà installé.

  5. Installez l'image Docker du proxy d'authentification Cloud SQL à partir de Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.0
  6. Si vous exécutez l'image Docker du proxy d'authentification Cloud SQL sur un ordinateur local (et non une instance Compute Engine) ou si votre instance Compute Engine ne dispose pas des champs d'application appropriés, créez un compte de service Google Cloud Platform.
    1. Dans Google Cloud Console, accédez à la page Comptes de service.

      Accéder à la page "Comptes de service"

    2. Sélectionnez le projet contenant l'instance Cloud SQL.
    3. Cliquez sur Créer un compte de service.
    4. Dans le champ Nom du compte de service, attribuez un nom descriptif au compte de service.
    5. Remplacez l'ID du compte de service par une valeur unique et facilement reconnaissable, puis cliquez sur Créer et continuer.
    6. Cliquez sur le champ Sélectionner un rôle, puis sélectionnez l'un des rôles suivants :
      • Cloud SQL > Client Cloud SQL
      • Cloud SQL > Éditeur Cloud SQL
      • Cloud SQL > Administrateur Cloud SQL
    7. Cliquez sur OK pour terminer la création du compte de service.
    8. Cliquez sur le menu Action de votre nouveau compte de service, puis sélectionnez Gérer les clés.
    9. Cliquez sur le menu déroulant Ajouter une clé, puis sur Créer une clé.
    10. Vérifiez que le type de clé est bien JSON et cliquez sur Créer.

      Le fichier de clé privée est téléchargé sur votre machine. Vous pouvez le changer d'emplacement. Conservez le fichier de clé à un endroit sécurisé.

    Vous fournissez au démarrage du proxy d'authentification Cloud SQL le chemin d'accès au fichier de clé sous la forme "PATH_TO_KEY_FILE".

  7. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  8. Sélectionnez l'instance pour ouvrir la page de Détails de l'instance correspondante et copiez le Nom de la connexion à l'instance.

    Exemple : myproject:us-central1:myinstance.

  9. Démarrez le proxy d'authentification Cloud SQL.

    Selon le langage et l'environnement que vous employez, vous pouvez démarrer le proxy d'authentification Cloud SQL à l'aide de sockets TCP ou Unix. Les sockets Unix ne sont pas compatibles avec les applications écrites en langage de programmation Java ou avec un environnement Windows.

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

    Si vous utilisez les identifiants fournis par votre instance Compute Engine, n'incluez pas le paramètre --credentials-file ni la ligne -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json.

    Spécifiez toujours le préfixe 127.0.0.1 dans -p afin de ne pas exposer le proxy d'authentification Cloud SQL en dehors de l'hôte local. La valeur "0.0.0.0" dans les paramètres de l'instance est requise pour rendre le port accessible de l'extérieur du conteneur Docker.

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

    Si vous utilisez les identifiants fournis par votre instance Compute Engine, n'incluez pas le paramètre --credentials-file ni la ligne -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json.

    Si vous utilisez une image de conteneur optimisée, utilisez un répertoire avec accès en écriture à la place de /cloudsql, par exemple :

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    Vous pouvez spécifier plusieurs instances en les séparant par des virgules. Il est également possible d'utiliser les métadonnées Compute Engine afin de déterminer de manière dynamique les instances auxquelles vous connecter. En savoir plus sur les paramètres du proxy

  10. Démarrez le client :

    La chaîne de connexion que vous utilisez varie selon que vous avez démarré le proxy d'authentification Cloud SQL à l'aide d'un socket TCP ou de Docker.

    Sockets TCP

    1. Lancez le client sqlcmd :
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
      

      Lorsque vous vous connectez à l'aide de sockets TCP, l'accès au proxy d'authentification Cloud SQL s'effectue via 127.0.0.1.

    2. Si vous y êtes invité, saisissez le mot de passe.
    3. L'invite sqlcmd s'affiche.
Besoin d'aide ? Pour obtenir de l'aide sur le dépannage du proxy, consultez la section Dépannage des connexions via le proxy d'authentification Cloud SQL ou la page Assistance Cloud SQL.

Maintenir à jour l'image Docker du proxy d'authentification Cloud SQL

L'image Docker du proxy d'authentification Cloud SQL est basée sur une version spécifique du proxy d'authentification Cloud SQL. Lorsqu'une nouvelle version du proxy d'authentification Cloud SQL est disponible, vous devez extraire la nouvelle version de l'image Docker du proxy afin de maintenir votre environnement à jour. Pour savoir quelle est la version actuelle du proxy d'authentification Cloud SQL, consultez la page GitHub relative aux versions du proxy d'authentification Cloud SQL. Les futures versions du proxy seront également indiquées sur le forum des annonces Cloud SQL sur Google Groupes.

Étapes suivantes