À propos du proxy d'authentification Cloud SQL

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Vous trouverez sur cette page une présentation du proxy d'authentification Cloud SQL et une description de ses options.

Pour obtenir des instructions détaillées concernant l'utilisation du proxy d'authentification Cloud SQL, suivez le lien correspondant à votre environnement :

Vous n'avez pas besoin d'utiliser le proxy d'authentification Cloud SQL ni de configurer SSL pour vous connecter à Cloud SQL depuis l'environnement standard App Engine ou l'environnement flexible App Engine.

Fonctions assurées par le proxy d'authentification Cloud SQL

Le proxy d'authentification Cloud SQL fournit un accès sécurisé à vos instances sans avoir besoin de réseaux autorisés ni de configuration SSL.

Le proxy d'authentification Cloud SQL et les autres connecteurs Cloud SQL présentent les avantages suivants :

  • Connexions sécurisées : le proxy d'authentification Cloud SQL chiffre automatiquement le trafic vers et depuis la base de données à l'aide de TLS 1.3 avec un algorithme AES 256 bits. Les certificats SSL permettent de valider les identités du client et du serveur. Ils sont indépendants des protocoles de base de données (vous n'avez pas besoin de gérer les certificats SSL).
  • Autorisation de connexion simplifiée : le proxy d'authentification Cloud SQL utilise les autorisations IAM pour contrôler qui peut se connecter à vos instances Cloud SQL. Ainsi, le proxy d'authentification Cloud SQL gère l'authentification auprès de Cloud SQL, ce qui évite d'avoir à fournir des adresses IP statiques.

Le proxy d'authentification Cloud SQL ne procure pas de nouveau chemin de connectivité. Il repose sur la connectivité IP existante. Pour permettre la connexion à une instance Cloud SQL à l'aide d'une adresse IP privée, le proxy d'authentification Cloud SQL doit se trouver sur une ressource ayant accès au même réseau VPC que l'instance.

Fonctionnement du proxy d'authentification Cloud SQL

Le proxy d'authentification Cloud SQL fonctionne avec un client local qui s'exécute dans l'environnement local. Pour communiquer avec le proxy d'authentification Cloud SQL, votre application utilise le protocole de base de données standard de votre base de données.

Le proxy d'authentification Cloud SQL se sert d'un tunnel sécurisé pour communiquer avec son processus associé qui est exécuté sur le serveur. Chaque connexion établie via le proxy d'authentification Cloud SQL crée une connexion à l'instance Cloud SQL.

Lorsqu'une application se connecte au proxy Cloud SQL Auth, elle vérifie si une connexion existante entre elle et l'instance Cloud SQL cible est disponible. Si la connexion n'existe pas, elle appelle les API Cloud SQL Admin pour obtenir un certificat SSL éphémère et l'utilise pour se connecter à Cloud SQL. Les certificats SSL éphémères expirent au bout d'environ une heure. Le proxy d'authentification Cloud SQL actualise ces certificats avant leur expiration.

Bien que le proxy d'authentification Cloud SQL puisse écouter sur n'importe quel port, il crée uniquement des connexions sortantes vers l'instance Cloud SQL sur le port 3307. Étant donné que le proxy Cloud SQL authentifie les API via le nom de domaine sqladmin.googleapis.com qui ne possède pas d'adresse IP fixe, toutes les connexions TCP sortantes sur le port 443 doivent être autorisées. Si votre machine cliente dispose d'une règle de pare-feu sortante, assurez-vous qu'elle autorise les connexions sortantes sur le port 3307 sur l'adresse IP de votre instance Cloud SQL.

Le proxy d'authentification Cloud SQL ne fournit pas de regroupement de connexions, mais il peut être associé à un autre regroupement de connexions pour plus d'efficacité.

Le schéma suivant montre comment le proxy d'authentification Cloud SQL se connecte à Cloud SQL :

Diagramme du proxy d'authentification Cloud SQL connectant un logiciel client à une instance SQL

Conditions requises pour utiliser le proxy d'authentification Cloud SQL

Pour utiliser le proxy d'authentification Cloud SQL, vous devez répondre aux exigences suivantes :

  • L'API Cloud SQL Admin doit être activée.
  • Vous devez fournir au proxy d'authentification Cloud SQL des identifiants d'authentification Google Cloud.
  • Vous devez indiquer au proxy d'authentification Cloud SQL un compte utilisateur et un mot de passe valides pour la base de données.
  • L'instance doit avoir une adresse IPv4 publique ou doit être configurée pour utiliser une adresse IP privée.

    L'adresse IP publique n'a pas besoin d'être accessible à une adresse externe (elle n'a pas besoin d'être ajoutée en tant qu'adresse réseau autorisée).

Télécharger et installer le proxy d'authentification Cloud SQL

Linux 64 bits

  1. Téléchargez le proxy d'authentification Cloud SQL :
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  2. Rendez le proxy d'authentification Cloud SQL exécutable :
    chmod +x cloud_sql_proxy
    

Linux 32 bits

  1. Téléchargez le proxy d'authentification Cloud SQL :
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
    
  2. Si la commande wget est introuvable, exécutez sudo apt-get install wget puis répétez la commande de téléchargement.
  3. Rendez le proxy d'authentification Cloud SQL exécutable :
    chmod +x cloud_sql_proxy
    

macOS 64 bits

  1. Téléchargez le proxy d'authentification Cloud SQL :
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
    
  2. Rendez le proxy d'authentification Cloud SQL exécutable :
    chmod +x cloud_sql_proxy
    

macOS 32 bits

  1. Téléchargez le proxy d'authentification Cloud SQL :
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
    
  2. Rendez le proxy d'authentification Cloud SQL exécutable :
    chmod +x cloud_sql_proxy
    

Mac M1

  1. Téléchargez le proxy d'authentification Cloud SQL :
      curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.arm64
      
  2. Rendez le proxy d'authentification Cloud SQL exécutable :
      chmod +x cloud_sql_proxy
      

Windows 64 bits

Pour télécharger le proxy d'authentification Cloud SQL, effectuez un clic droit sur le lien https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe, puis sélectionnez Enregistrer le lien sous. Renommez le fichier en cloud_sql_proxy.exe.

Windows 32 bits

Pour télécharger le proxy d'authentification Cloud SQL, effectuez un clic droit sur le lien https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe, puis sélectionnez Enregistrer le lien sous. Renommez le fichier en cloud_sql_proxy.exe.

Image Docker du proxy d'authentification Cloud SQL

Pour plus de commodité, plusieurs images de conteneur contenant le proxy d'authentification Cloud SQL sont disponibles sur GitHub dans le dépôt du proxy d'authentification Cloud SQL. Vous pouvez extraire la dernière image sur votre ordinateur local en utilisant Docker avec la commande suivante :
docker pull gcr.io/cloudsql-docker/gce-proxy:1.32.0

Autres systèmes d'exploitation

Pour les autres systèmes d'exploitation non inclus ici, vous pouvez compiler le proxy d'authentification Cloud SQL à partir de la source.

Options de démarrage du proxy d'authentification Cloud SQL

Lorsque vous démarrez le proxy d'authentification Cloud SQL, vous devez lui fournir les informations suivantes :

  • Instances Cloud SQL avec lesquelles établir des connexions
  • Où écouter les données provenant de l'application à envoyer à Cloud SQL
  • Où trouver les identifiants pour authentifier l'application auprès de Cloud SQL
  • Quel type d'adresse IP utiliser, le cas échéant

Les options de démarrage que vous spécifiez pour le proxy d'authentification Cloud SQL déterminent si le proxy écoute un port TCP ou un socket Unix. Dans le cas d'un socket Unix, celui-ci est créé à l'emplacement de votre choix, généralement dans le répertoire /cloudsql/. Pour les connexions TCP, le proxy d'authentification Cloud SQL écoute localhost par défaut.

Exécutez l'exécutable cloud_sql_proxy avec l'argument --help pour afficher la liste complète des options de démarrage.

Vous pouvez installer le proxy d'authentification Cloud SQL n'importe où dans votre environnement local. L'emplacement des fichiers binaires du proxy d'authentification Cloud SQL n'a pas d'incidence sur l'endroit d'où il écoute les données de votre application.

Utiliser un compte de service pour l'authentification

Le proxy d'authentification Cloud SQL nécessite une authentification IAM en tant qu'identité Cloud SQL pour autoriser les connexions à une instance Cloud SQL.

Le fait d'utiliser un compte de service à cette fin présente l'avantage de vous permettre de créer un fichier d'identifiants spécifiquement pour le proxy authentification Cloud SQL. Il sera associé de manière explicite et permanente au proxy d'authentification Cloud SQL tant qu'il est en cours d'exécution. Pour cette raison, l'utilisation d'un compte de service est la méthode recommandée pour les instances de production qui ne s'exécutent pas sur une instance Compute Engine.

Si vous devez appeler le proxy d'authentification Cloud SQL à partir de plusieurs machines, le fichier d'identifiants peut être dupliqué dans une image système.

Pour utiliser cette méthode, vous devez créer et gérer le fichier d'identifiants. Seuls les utilisateurs disposant de l'autorisation resourcemanager.projects.setIamPolicy (par exemple, les propriétaires de projet) peuvent créer le compte de service. Si votre utilisateur Google Cloud ne dispose pas de cette autorisation, vous devez demander à une autre personne de créer le compte de service ou authentifier le proxy d'authentification Cloud SQL via une autre méthode.

Découvrez comment créer un compte de service

Autorisations requises pour les comptes de service

Lorsque vous utilisez un compte de service pour fournir les identifiants du proxy d'authentification Cloud SQL, vous devez le créer avec des autorisations suffisantes. Si vous gérez vos autorisations Cloud SQL à l'aide des rôles IAM (Identity and Access Management), qui sont plus précis, vous devez attribuer au compte de service un rôle qui inclut l'autorisation cloudsql.instances.connect. Voici les rôles Cloud SQL prédéfinis qui incluent cette autorisation :

  • Client Cloud SQL
  • Éditeur Cloud SQL
  • Administrateur Cloud SQL

Si vous utilisez les anciens rôles de projet (Lecteur, Éditeur, Propriétaire), le compte de service doit disposer au minimum du rôle Éditeur.

Options de spécification d'instances Cloud SQL

Il existe plusieurs façons d'indiquer au proxy d'authentification Cloud SQL les instances auxquelles vous souhaitez vous connecter. Certaines sont explicites, d'autres sont implicites. Dans certaines configurations, vous n'avez pas besoin d'indiquer à l'avance au proxy d'authentification Cloud SQL les instances auxquelles vous souhaitez vous connecter, car il se connecte en fonction des demandes de connexion.

Les options de spécification d'instances varient selon le système d'exploitation et l'environnement :

Option Avantages Mises en garde et conditions requises Linux/macOS
(sockets Unix)
Java Windows Remarques
Détection automatique d'instances Pas besoin de spécifier d'instances. Des sockets sont créés pour toutes les instances dans le projet par défaut. L'utilisation de l'API du proxy d'authentification Cloud SQL augmente. gcloud doit être installé et authentifié, et un projet par défaut doit être défini. Le proxy d'authentification Cloud SQL doit être redémarré pour ajouter une nouvelle instance. Compatible Non Non Option déconseillée pour les instances de production.
Détection de projets Pas besoin de spécifier des instances. Des sockets sont créés pour toutes les instances dans les projets indiqués. L'utilisation de l'API du proxy d'authentification Cloud SQL augmente. gcloud doit être installé et authentifié. Le proxy d'authentification Cloud SQL doit être redémarré pour ajouter une nouvelle instance. Compatible Non Non Utilisez le paramètre -projects. Option déconseillée pour les instances de production.
Instances spécifiées dans l'appel du proxy d'authentification Cloud SQL La liste des instances est connue et statique. Le proxy d'authentification Cloud SQL doit être redémarré pour ajouter une nouvelle instance. Compatible Compatible avec les sockets TCP Compatible avec les sockets TCP Utilisez le paramètre -instances. En cas d'instances multiples, séparez-les par une virgule, sans inclure d'espaces. En savoir plus
Instances spécifiées à l'aide de métadonnées Compute Engine Vous pouvez mettre à jour la liste des instances en modifiant la valeur des métadonnées sans redémarrer le proxy d'authentification Cloud SQL. Cette option n'est disponible que sur Compute Engine. Compatible Compatible avec les sockets TCP Compatible avec les sockets TCP Utilisez l'option -instances_metadata. En savoir plus

Maintenir le proxy d'authentification Cloud SQL à jour

Google publie occasionnellement de nouvelles versions du proxy d'authentification Cloud SQL. Pour savoir quelle est la version actuelle, 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 concernant Cloud SQL sur Google Groupes.

Utilisation de l'API

Le proxy d'authentification Cloud SQL envoie des requêtes à l'API Cloud SQL, lesquelles sont comptabilisées dans le quota d'API du projet.

L'utilisation de l'API atteint son niveau le plus élevé lorsque vous démarrez le proxy d'authentification Cloud SQL, en particulier si vous utilisez la détection automatique d'instances ou le paramètre -projects. Lorsque le proxy d'authentification Cloud SQL est en cours d'exécution, il émet 2 appels d'API par heure et par instance connectée.

Paramètres et options du proxy d'authentification Cloud SQL

Le proxy d'authentification Cloud SQL accepte plusieurs indicateurs et paramètres lors de son démarrage. Ces options déterminent où et comment le proxy d'authentification Cloud SQL crée les sockets qu'il utilise pour communiquer avec Cloud SQL, et comment il s'authentifie.

Pour obtenir de l'aide concernant les options du proxy d'authentification Cloud SQL, consultez les sources d'information suivantes :

Utiliser le proxy d'authentification Cloud SQL dans un environnement de production

Lorsque vous utilisez le proxy d'authentification Cloud SQL dans un environnement de production, vous devez appliquer certaines étapes afin de vous assurer qu'il offre la disponibilité requise pour l'application.

Vérifier que le proxy d'authentification Cloud SQL est exécuté en tant que service persistant

Si le processus de proxy d'authentification Cloud SQL est arrêté, toutes les connexions associées sont interrompues et l'application ne peut plus créer de connexions avec l'instance Cloud SQL via le proxy d'authentification Cloud SQL. Pour éviter ce cas de figure, veillez à exécuter le proxy d'authentification Cloud SQL en tant que service persistant. Ainsi, s'il s'arrête pour une raison quelconque, il redémarre automatiquement. Pour ce faire, vous pouvez utiliser un service tel que systemd, upstart ou supervisor. Pour le système d'exploitation Windows, exécutez le proxy d'authentification Cloud SQL en tant que service Windows. En général, assurez-vous que le proxy d'authentification Cloud SQL présente les mêmes exigences de disponibilité que votre processus d'application.

De combien de copies du proxy d'authentification Cloud SQL l'application a-t-elle besoin ?

Il n'est pas nécessaire de créer un processus de proxy d'authentification Cloud SQL pour chaque processus d'application. En effet, plusieurs processus d'application peuvent partager un même processus de proxy. Exécutez un processus client proxy d'authentification Cloud SQL par poste de travail ou machine virtuelle.

Si vous utilisez l'autoscaling pour les machines virtuelles, assurez-vous que le proxy d'authentification Cloud SQL est inclus dans la configuration de vos VM. De cette manière, chaque fois qu'une nouvelle machine virtuelle est démarrée, elle dispose de son propre processus de proxy d'authentification Cloud SQL.

Il vous appartient de gérer le nombre de connexions requises par l'application, que ce soit en limitant ou en regroupant les connexions. Le proxy d'authentification Cloud SQL n'impose aucune limite concernant le taux de nouvelles connexions ou le nombre de connexions persistantes.

Réduire la sortie du proxy d'authentification Cloud SQL

Si vous devez réduire la taille du journal du proxy d'authentification Cloud SQL, vous pouvez le faire en définissant -verbose=false lorsque vous démarrez le proxy d'authentification Cloud SQL. Cependant, n'oubliez pas que cela réduit l'efficacité de la sortie du proxy d'authentification Cloud SQL pour le diagnostic de problèmes de connexion.

Proxy d'authentification Cloud SQL et processus de basculement

Si vous exécutez le proxy d'authentification Cloud SQL sur une instance configurée pour la haute disponibilité et qu'un basculement a lieu, les connexions établies via le proxy sont affectées de la même manière que les connexions sur IP : toutes les connexions existantes sont perdues et l'application doit en établir de nouvelles. Cependant, aucune intervention manuelle n'est requise, l'application peut continuer à utiliser les mêmes chaînes de connexion qu'auparavant.

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.

Étape suivante