À propos du proxy d’authentification SQL Cloud

MySQL/PostgreSQL/SQL Server

Cette page fournit une introduction de base au proxy d’authentification SQL Cloud et décrit les options de proxy.

Pour obtenir des instructions étape par étape sur l’utilisation du proxy d’authentification Cloud SQL, suivez le lien pour votre environnement:

  • Démarrage rapide pour l’utilisation du proxy d’authentification Cloud SQL
  • Comment se connecter à l’aide du proxy d’authentification Cloud SQL
  • Comment se connecter à l’aide du proxy d’authentification Cloud SQL de GKE

Vous n’avez pas besoin d’utiliser le proxy d’authentification Cloud SQL ou de configurer SSL pour vous connecter à Cloud SQL à partir de la norme App Engine Environnement flexible du moteur d’application.

Essayez par vous-même

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud SQL dans des scénarios réels. Les nouveaux clients obtiennent également des crédits gratuits de 300 $ pour exécuter, tester et déployer des charges de travail.

Essayez Cloud SQL free

Ce que fournit 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 ou de configurer SSL.

Accéder à votre instance Cloud SQL à l’aide du proxy d’authentification Cloud SQL offre les avantages suivants:

  • Connexions sécurisées : Le proxy d’authentification SQL Cloud crypte automatiquement le trafic vers et depuis la base de données à l’aide de TLS 1.2 avec un chiffrement AES 128 bits; Les certificats SSL sont utilisés pour vérifier les identités des clients et des serveurs.
  • Gestion des connexions facilitée : Le proxy d’authentification Cloud SQL gère l’authentification avec Cloud SQL, éliminant ainsi la nécessité de fournir des adresses IP statiques.

Le proxy d’authentification SQL Cloud ne fournit pas de nouveau chemin de connectivité ; il repose sur la connectivité IP existante. Pour se connecter à 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 SQL Cloud

Le proxy d’authentification SQL Cloud fonctionne en exécutant un client local dans l’environnement local. Votre application communique avec le proxy d’authentification Cloud SQL avec le protocole de base de données standard utilisé par votre base de données. Le proxy d’authentification SQL Cloud utiliseun tunnel sécurisé pour communiquer avec son processus compagnon s’exécutant sur le serveur.

Bien que le proxy puisse écouter sur n’importe quel port, il ne crée que des connexions sortantes à notre instance Cloud SQL sur le port 3307. Si vous disposez d’une politique pare-feu sortante, assurez-vous qu’elle autorise les connexions au port 3307 sur l’adresse IP de votre Cloud SQLinstance.

Le diagramme suivant montre comment le proxy d’authentification Cloud SQL se connecte à Cloud SQL:

 Diagramme du proxy d'authentification SQL Cloud se connectant du logiciel client à l'instance SQL

Exigences pour l’utilisation du proxy d’authentification SQL Cloud

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

  • L’API d’administration Cloud SQL doit être activée.
  • Vous devez fournir au proxy d’authentification SQL Cloud des informations d’identification d’authentification Cloud Google.
  • Vous devez fournir au proxy d’authentification Cloud SQL un compte d’utilisateur et un mot de passe de base de données valides.
  • L’instance doit avoir une adresse IPv4 publique ou ê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).

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

Lorsque vous démarrez le proxy d’authentification SQL Cloud, vous lui fournissez les informations suivantes:

  • Quelles instances Cloud SQL pour établir des connexions à
  • Où il écoutera les données provenant de votre application à envoyer à Cloud SQL
  • Où il trouvera les informations d’identification qu’il utilisera pour authentifier votre demande vers Cloud SQL
  • Si nécessaire, quel type d’adresse IP utiliser.

Les options de démarrage du proxy Cloud SQL Auth que vous fournissez déterminent s’il écoutera sur un TCPport ou sur un socket Unix. S’il écoute sur un socket Unix, il crée thesocket à l’emplacement que vous choisissez ; généralement, le répertoire /cloudsql/.Pour 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 binaires proxy d’authentification SQL Cloud n’a aucune incidence sur l’endroit où il écoute les données de votre application.

Utilisation d’un compte de service pour l’authentification

Le proxy d’authentification SQL Cloud nécessite une authentification. L’avantage d’utiliser un compte de service pource but est que vous pouvez créer un fichier d’informations d’identification spécifiquement pour le proxy d’authentification SQL Cloud, et il est explicitement et en permanence lié au proxy d’authentification SQL Cloud tant qu’il fonctionne. Pour cette raison, l’utilisation d’un compte de service est la méthode recommandée pour productioninstances qui ne s’exécute pas sur une instance de moteur de calcul.

Le fichier d’informations d’identification peut être dupliqué dans une image système si vous devez appeler le proxy d’authentification Cloud SQL à partir de plusieurs machines.

Pour utiliser cette méthode, vous devez créer et gérer le fichier d’informations d’identification. Seuls les utilisateurs avec l’autorisation resourcemanager.projects.setIamPolicy (tels que les propriétaires de projet) peuvent créer le compte de service. Si votre utilisateur Cloud Google ne dispose pas de cette autorisation, vous devez demander à quelqu’un de créer le compte de service pour vous ou d’utiliser une autre méthode pour authentifier le proxy d’authentification SQL Cloud.

Pour obtenir de l’aide sur la création d’un fichier d’informations d’identification, consultez Création d’un compte de service.

Autorisations requises pour les comptes de service

Lorsque vous utilisez un compte de service pour fournir les informations d’identification du proxy d’authentification Cloud SQL, vous devez le créer avec des autorisations suffisantes. Si vous utilisez les rôles IAM (Access and Management) plus précis pour gérer les autorisations SQL de yourCloud, vous devez attribuer au compte de service un rôle comprenant l’autorisation cloudsql.instances.connect. Les rôles SQL prédéfinis qui incluent cette autorisation sont les suivants:

  • Cloud SQL Client
  • Cloud SQL Editor
  • Cloud SQL Admin

Si vous utilisez les rôles de projet hérités (Visionneuse, Éditeur, Propriétaire), serviceaccount doit avoir au moins le rôle d’éditeur.

Options pour spécifier des instances SQL Cloud

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

Vos options, par exemple, dépendent de votre système d’exploitation et de votre environnement:

Option Avantages Mises en garde et exigences Linux/macOS
(sockets Unix)
Java Windows Remarques
FUSE
(Système de fichiers dans l’espace utilisateur)
Création de socket dynamique basée sur les demandes de connexion ; aucun redémarrage du proxy n’est nécessaire lorsque les instances changent. LE FUSIBLE doit être installé. Pris en charge Non Non Utilisez l’indicateur -fuse.
Détection automatique des instances Pas besoin de spécifier des instances; sockets créés pour toutes les instances du projet par défaut. L’utilisation de l’API proxy Cloud SQL Auth est augmentée. Le SDK Cloud doit être installé et authentifié, avec un ensemble de projets par défaut. Doit redémarrer le proxy d’authentification Cloud SQL pour ajouter une nouvelle instance. Pris en charge Non Non Non recommandé pour les instances de production.
Découverte de projet Pas besoin de spécifier des instances ; sockets créés pour toutes les instances des projets spécifiés. L’utilisation de l’API proxy Cloud SQL Auth est augmentée. Le SDK Cloud doit être installé et authentifié. Doit redémarrer le proxy d’authentification Cloud SQL pour ajouter une nouvelle instance. Pris en charge Non Non Utilisez le paramètre -projects. Non recommandé pour les instances de production.
Instances spécifiées sur l’appel de proxy d’authentification SQL Cloud Liste d’instances connues et statiques. Doit redémarrer le proxy d’authentification Cloud SQL pour ajouter une nouvelle instance. Pris en charge Pris en charge avec les sockets TCP Pris en charge avec les sockets TCP Utilisez le paramètre -instances. Pour plusieurs instances, utilisez une liste séparée par des virgules, sans espaces. En savoir plus.
Les instances spécifiées à l’aide de la liste d’instances Compute Engine metadata peuvent être mises à jour en modifiant la valeur des métadonnées sans redémarrer le proxy d’authentification Cloud SQL. Disponible uniquement sur le moteur de calcul. Pris en charge Pris en charge avec les sockets TCP Pris en charge avec les sockets TCP Utilisez l’indicateur -instances_metadata. En savoir plus.

Voir exemples d’appels et de chaînes de connexion.

Mise à jour du proxy d’authentification SQL Cloud

Google publie occasionnellement de nouvelles versions du proxy d’authentification SQL Cloud. Vous pouvez voir quelle est la version actuelle en vérifiant la page releases du proxy d’authentification SQL cloud GitHub.Les futures versions de proxy seront également notées dans le forum d’annonce SQL Cloud des groupes GOOGLE.

Utilisation de l’API

Le proxy d’authentification SQL Cloud émet des demandes à l’API d’administration SQL Cloud. Ces requêtes comptent contre le quota d’API pour votre projet.

L’utilisation d’API la plus élevée se produit lorsque vous démarrez le proxy d’authentification Cloud SQL; cela est particulièrement vraisi vous utilisez la découverte automatique d’instance ou le paramètre -projects. Pendant que le proxy d’authentification SQL Cloud est en cours d’exécution, il émet 2 appels d’API par heure et par instance connectée.

À propos de la création d’un compte d’utilisateur spécial pour le proxy d’authentification SQL Cloud

Lorsque vous vous connectez à votre instance à l’aide du proxy d’authentification SQL Cloud, vous fournissez un compte d’utilisateurqui est utilisé pour vous connecter à l’instance. Vous pouvez utiliser n’importe quel compte d’utilisateur de base de données à cette fin. Cependant, comme le proxy d’authentification Cloud SQL se connecte toujours à partir d’un nom d’hôte auquel il est impossible d’accéder sauf par le proxy d’authentification Cloud SQL, vous pouvez créer un compte d’utilisateur qui peut être utilisé uniquement par le proxy d’authentification Cloud SQL. L’avantage de faire cela est que vous pouvez spécifier ce compte sans mot de passe sans compromettre la sécurité de votre instance ou de vos données.

Pour créer un compte utilisateur pour les connexions proxy Cloud SQL Auth, spécifiez le nom d’hôte 'cloudsqlproxy~'. Vous pouvez également utiliser l’adresse ipwildcard, ce qui entraînerait 'cloudsqlproxy~%'. Le nom complet du compte d’utilisateurdevrait être:

''@'cloudsqlproxy~%'

ou

''@'cloudsqlproxy~'

Pour obtenir de l’aide sur la création d’un utilisateur, consultez Création et gestion d’utilisateurs.Pour plus d’informations sur le fonctionnement de Cloud SQL avec les comptes d’utilisateurs, consultez Utilisateurs. Pour plus d’informations sur les comptes d’utilisateurs MySQL, voir la sécurisation des comptes MySQL initiaux dans la documentation theMySQL.

Paramètres et indicateurs du proxy d’authentification SQL Cloud

Le proxy d’authentification SQL Cloud accepte plusieurs indicateurs et paramètres au 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 sur les options de proxy d’authentification Cloud SQL, consultez les informations suivantes:

  • Options d’authentification du proxy d’authentification SQL Cloud
  • Options de spécification d’instances SQL Cloud
  • Exemple d’invocations de proxy d’authentification SQL Cloud
  • Page GitHub du proxy d’authentification SQL Cloud
  • L’aide du proxy d’authentification SQL Cloud, affichée avec ./cloud_sql_proxy -help

Comment FUSE est utilisé avec Cloud SQL Auth proxy

FUSE signifie « Système de fichiers dans l’espace utilisateur ».Selon la façon dont le proxy d’authentification Cloud SQL est invoqué, il peut utiliser optionnellement FUSE pour créer les sockets qu’il utilise pour se connecter à Cloud SQL.

Lors de la connexion à partir d’un moteur de calcul ou d’environnements de développement local, le proxy d’authentification SQL Cloud utilise FUSE pour accéder aux instances SQL Cloud comme suit:

  • Le répertoire « /cloudsql » est monté en tant que système de fichiers dans l’espace utilisateur, orFUSE, par un proxy d’authentification Cloud SQL.

  • Un processus (par exemple, mysql) tente de rechercher un fichier nomméINSTANCEINSTANCE.

  • Le proxy d’authentification Cloud SQL intercepte la requête et renvoie que /cloudsql/$INSTANCE est un lien asymétrique pointant vers un socket Unix situé ailleurs sur le système de fichiers.

  • Le processus (par exemple, mysql) suit le lien et ouvre la prise Unix vers laquelle il mène et se connecte.

Installation de FUSE

Pour Linux:

FUSE nécessite le programme fusermount et un module noyau, tofunction. Vous pouvez vérifier si ce programme est installé en recherchant lefichier, /dev/fuse/. Si fusermount n’est pas sur votre système, vous pouvez l’installer en utilisant votre gestionnaire de paquets ou en le compilant à partir de la source.

Pour macOS:

Installez FUSE pour macOS.

Utilisation du 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 pouvez prendre certaines mesures pour vous assurer que le proxy d’authentification Cloud SQL fournit la disponibilité requise pour votre application.

Assurez-vous que le proxy d’authentification SQL Cloud est exécuté en tant que service persistant

Si le processus de proxy d’authentification SQL Cloud est arrêté, toutes les connexions existantes via celui-ci sont supprimées et votre application ne peut plus créer de connexions à l’instance SQL Cloud avec le proxy d’authentification SQL Cloud. Pour éviter ce scénario, assurez-vous de lancer le proxy d’authentification Cloud SQL en tant que service persistant, de sorte que si le proxy d’authentification Cloud SQL se termine pour anyreason, il soit automatiquement redémarré. Cela peut être accompli en utilisant 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 SQL Cloud a les mêmes exigences de disponibilité que votre processus d’application.

Combien de copies du proxy d’authentification SQL Cloud votre application a besoin

Il n’est pas nécessaire de créer un processus proxy pour chaque processus d’application ; de nombreux processus d’application peuvent partager un seul processus proxy d’authentification SQL Cloud. Exécutez un processus client proxy Cloud SQL Auth par poste de travail ou machine virtuelle.

Si vous utilisez la mise à l’échelle automatique pour les machines virtuelles, assurez-vous que le proxy d’authentification SQL Cloud est inclus dans la configuration de votre machine virtuelle, de sorte que chaque fois qu’une nouvelle machine virtuelle est démarrée, elle dispose de son propre processus de proxy d’authentification SQL Cloud.

C’est à vous de gérer le nombre de connexions dont votre application a besoin, que ce soit en limitant ou en regroupant les connexions. Le proxy d’authentification SQL Cloud ne place aucune limite sur les nouveaux taux de connexion ou le nombre de connexions persistantes.

Réduction de la sortie du proxy d’authentification SQL Cloud

Si vous devez réduire la taille du journal du proxy d’authentification SQL Cloud, vous pouvez le faire en définissant -verbose=false lorsque vous démarrez le proxy d’authentification SQL Cloud. Gardez cependant à l’esprit que doingso réduit également l’efficacité de la sortie du proxy d’authentification SQL Cloud pour diagnostiquer les problèmes de connexion.

Comment le basculement affecte le proxy d’authentification SQL Cloud

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

Mise à jour de 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 SQL Cloud devient disponible, extrayez la nouvelle version de l’image Docker du proxy d’authentification SQL Cloud pour maintenir votre environnement à jour. Vous pouvez voir la version actuelle du proxy d’authentification Cloud SQL en vérifiant la page releases du proxy d’authentification Cloud SQL GitHub.

  • En savoir plus sur le proxy d’authentification Cloud SQL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.