Autoriser via des certificats SSL/TLS

Cette page explique comment utiliser Secure Socket Layer (SSL), dĂ©sormais Transport Layer Security (TLS), Ă  partir de votre application pour chiffrer les connexions aux instances Cloud SQL.

Présentation

Cloud SQL est compatible avec la connexion Ă  une instance Ă  l'aide du protocole SSL/TLS. Les connexions SSL/TLS offrent un niveau de sĂ©curitĂ© en chiffrant les donnĂ©es en transit entre votre client et la base de donnĂ©es de votre instance Cloud SQL. Si vous le souhaitez, votre connexion SSL/TLS peut effectuer la validation de l'identitĂ© du serveur en validant le certificat serveur installĂ© sur l'instance Cloud SQL, et la validation de l'identitĂ© du client en validant le certificat client installĂ© sur le client.

Certificats du serveur

Lorsque vous crĂ©ez une instance, Cloud SQL crĂ©e et installe automatiquement un certificat de serveur signĂ© par une autoritĂ© de certification (CA). Vous pouvez tĂ©lĂ©charger le certificat CA sur la machine hĂŽte du client et l'utiliser pour vĂ©rifier l'identitĂ© de l'autoritĂ© de certification et du serveur Cloud SQL. Vous pouvez Ă©galement choisir le type d'autoritĂ© de certification que Cloud SQL utilise pour signer le certificat de serveur.

Certificats clients

Vous pouvez Ă©galement crĂ©er et tĂ©lĂ©charger des certificats client avec des clĂ©s sur la machine hĂŽte du client pour l'authentification mutuelle (validation de l'identitĂ© du serveur et du client). Vous ne pouvez pas choisir le type d'autoritĂ© de certification que Cloud SQL utilise pour signer le certificat client.

Se connecter Ă  l'aide de SSL/TLS

Lorsque vous vous connectez Ă  une instance Cloud SQL depuis des clients, vous pouvez utiliser SSL/TLS pour les connexions directes, ainsi que pour les connexions qui utilisent le proxy d'authentification Cloud SQL ou les connecteurs de langage Cloud SQL.

  • Pour les connexions directes, Google recommande vivement d'appliquer le chiffrement SSL/TLS Ă  l'aide du paramĂštre de mode SSL dans Cloud SQL. Vous pouvez Ă©galement appliquer la validation des certificats clients. Pour en savoir plus, consultez Appliquer le chiffrement SSL/TLS.

  • Pour les connexions qui utilisent le proxy d'authentification Cloud SQL ou les connecteurs de langage Cloud SQL, les connexions sont automatiquement chiffrĂ©es avec SSL/TLS, et l'identitĂ© du client et du serveur est validĂ©e sans que vous ayez besoin de tĂ©lĂ©charger un certificat d'autoritĂ© de certification du serveur ni un certificat client.

Pour en savoir plus sur les options de connectivitĂ© Cloud SQL, consultez À propos des connexions Cloud SQL.

Pour en savoir plus sur la configuration SSL/TLS cÎté client, consultez la documentation de votre moteur de base de données.

Hiérarchies d'autorités de certification (CA)

Cette section dĂ©crit les trois types d'autoritĂ© de certification (AC) de serveur que vous pouvez choisir pour vos instances Cloud SQL. Vous avez trois possibilitĂ©s :

  • AutoritĂ© de certification par instance : avec cette option, une autoritĂ© de certification interne dĂ©diĂ©e Ă  chaque instance Cloud SQL signe le certificat de serveur pour cette instance. Cloud SQL crĂ©e et gĂšre ces CA. Pour choisir une CA par instance, sĂ©lectionnez AutoritĂ© de certification interne gĂ©rĂ©e par Google (consoleGoogle Cloud ) ou spĂ©cifiez GOOGLE_MANAGED_INTERNAL_CA pour le paramĂštre serverCaMode (API Cloud SQL Admin) ou l'indicateur --server-ca-mode (gcloud CLI) lorsque vous crĂ©ez l'instance. Si vous ne spĂ©cifiez pas le paramĂštre ni l'indicateur lorsque vous crĂ©ez une instance, cette option est la valeur par dĂ©faut de l'instance.

  • AutoritĂ© de certification partagĂ©e : cette option utilise une hiĂ©rarchie d'autoritĂ©s de certification composĂ©e d'une autoritĂ© de certification racine et d'autoritĂ©s de certification de serveur subordonnĂ©es. Les autoritĂ©s de certification de serveur subordonnĂ©es d'une rĂ©gion signent les certificats de serveur et sont partagĂ©es entre les instances de la rĂ©gion. Cloud SQL hĂ©berge et gĂšre l'autoritĂ© de certification racine et les autoritĂ©s de certification de serveur subordonnĂ©es sur le service d'autoritĂ© de certification (CA Service). Google CloudCloud SQL gĂšre Ă©galement la rotation des autoritĂ©s de certification racine et des autoritĂ©s de certification de serveur subordonnĂ©es, et fournit des liens accessibles au public pour tĂ©lĂ©charger les bundles de certificats CA. Pour choisir une autoritĂ© de certification partagĂ©e, spĂ©cifiez GOOGLE_MANAGED_CAS_CA pour le paramĂštre serverCaMode (API Cloud SQL Admin) ou l'indicateur --server-ca-mode (gcloud CLI) lorsque vous crĂ©ez l'instance.

  • AutoritĂ© de certification gĂ©rĂ©e par le client : cette option vous permet de crĂ©er et de gĂ©rer votre propre hiĂ©rarchie d'autoritĂ©s de certification. Choisissez cette option si vous souhaitez gĂ©rer vos propres autoritĂ©s de certification et certificats. Pour choisir une autoritĂ© de certification gĂ©rĂ©e par le client, vous devez crĂ©er un pool d'autoritĂ©s de certification et une autoritĂ© de certification dans CA Service. Dans Cloud SQL, spĂ©cifiez le pool d'AC et CUSTOMER_MANAGED_CAS_CA pour le paramĂštre serverCaMode (API Cloud SQL Admin) ou l'indicateur --server-ca-mode (gcloud CLI) lorsque vous crĂ©ez l'instance.

Une fois l'instance créée, vous pouvez afficher la hiĂ©rarchie d'autoritĂ© de certification configurĂ©e pour une instance Cloud SQL Ă  l'aide de la commande gcloud sql instances describe ou dans la console Google Cloud . Pour en savoir plus, consultez Afficher les informations sur les instances.

Le tableau suivant compare les trois options de hiérarchie d'AC.

Fonctionnalité CA par instance AC partagée AC gérée par le client
Structure de l'autoritĂ© de certification AutoritĂ© de certification distincte pour chaque instance CA racine et CA subordonnĂ©es partagĂ©es entre les instances d'une mĂȘme rĂ©gion HiĂ©rarchie d'AC que vous crĂ©ez et gĂ©rez
Attributs cryptographiques ClĂ© RSA de 2 048 bits avec l'algorithme SHA256 Algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) avec clĂ© de 384 bits et algorithme SHA384 Algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) avec clĂ© de 384 bits et algorithme SHA384
PĂ©riode de validitĂ© de l'AC 10 ans 25 ans pour l'autoritĂ© de certification racine et 10 ans pour les autoritĂ©s de certification subordonnĂ©es Configurable *
PĂ©riode de validitĂ© du certificat de serveur 10 ans 1 an 1 an**
Rotation des CA initiĂ©e par l'utilisateur Oui Non. La rotation des autoritĂ©s de certification est gĂ©rĂ©e par Cloud SQL. Oui
Rotation du certificat de serveur initiée par l'utilisateur Oui Oui Oui
Ancre de confiance de l'autorité de certification pour les connexions TLS L'autorité de certification unique par instance constitue l'ancre de confiance de l'instance correspondante. L'autorité de certification racine et les autorités de certification subordonnées sont les ancres de confiance pour toutes les instances d'une région donnée. Les autorités de certification que vous créez et gérez sont les ancres de confiance.
Validation de l'identitĂ© du serveur La vĂ©rification de l'AC permet de vĂ©rifier l'identitĂ© du serveur, car chaque instance possĂšde une AC unique. La vĂ©rification du nom d'hĂŽte et de l'autoritĂ© de certification est requise pour la vĂ©rification de l'identitĂ© du serveur, car les autoritĂ©s de certification du serveur sont partagĂ©es entre les instances. Bien que l'autoritĂ© de certification ne soit pas partagĂ©e entre les instances, vous pouvez vĂ©rifier le nom d'hĂŽte en mĂȘme temps que l'autoritĂ© de certification.
Champ "Autre nom de l'objet (SAN)" dans les certificats de serveur Le champ SAN ne contient le nom d'hĂŽte (nom DNS de l'instance) que pour les instances sur lesquelles Private Service Connect est activĂ©. Le nom d'hĂŽte peut ĂȘtre utilisĂ© pour vĂ©rifier l'identitĂ© du serveur. Si vous vous connectez Ă  une instance Cloud SQL en utilisant le nom DNS comme nom d'hĂŽte, vous devez configurer la rĂ©solution DNS. Le champ SAN contient le nom d'hĂŽte (nom DNS de l'instance) pour tous les types d'instances. Le nom d'hĂŽte peut ĂȘtre utilisĂ© pour valider l'identitĂ© du serveur. Si vous vous connectez Ă  une instance Cloud SQL en utilisant le nom DNS comme nom d'hĂŽte, vous devez configurer la rĂ©solution DNS. Le champ SAN contient le nom d'hĂŽte (nom DNS de l'instance) pour tous les types d'instances. Le nom d'hĂŽte peut ĂȘtre utilisĂ© pour valider l'identitĂ© du serveur.
CompatibilitĂ© avec les versions du proxy d'authentification Cloud SQL Compatible avec toutes les versions du proxy d'authentification Cloud SQL, y compris la version 1 et les versions ultĂ©rieures. NĂ©cessite le proxy d'authentification Cloud SQL version 2.13.0 ou ultĂ©rieure. NĂ©cessite le proxy d'authentification Cloud SQL version 2.14.3 ou ultĂ©rieure.
Limites de la connexion au service Aucun Les connexions depuis les services Google Cloudsuivants ne sont pas prises en charge : Les connexions depuis les services Google Cloudsuivants ne sont pas prises en charge :
  • Environnement standard App Engine
  • Environnement flexible App Engine
  • Services Cloud Run s'exĂ©cutant dans un environnement d'exĂ©cution de premiĂšre gĂ©nĂ©ration

* Pour l'option d'autoritĂ© de certification gĂ©rĂ©e par le client, la pĂ©riode de validitĂ© par dĂ©faut d'un certificat CA dans CA Service est de 10 ans. Vous pouvez configurer une pĂ©riode de validitĂ© diffĂ©rente pour vos certificats CA. Une pĂ©riode de validitĂ© plus courte pour l'autoritĂ© de certification peut nĂ©cessiter des rotations plus frĂ©quentes de l'autoritĂ© de certification. Une pĂ©riode de validitĂ© infĂ©rieure Ă  un an peut affecter la pĂ©riode de validitĂ© de vos certificats de serveur. Pour en savoir plus, consultez GĂ©rer la rotation des certificats d'autoritĂ© de certification.

** Pour l'option d'autorité de certification gérée par le client, la durée de validité par défaut d'un certificat de serveur est d'un an. Toutefois, si vous configurez une période de validité inférieure à un an pour votre certificat d'autorité de certification, la période de validité de votre certificat de serveur sera plus courte. Pour savoir comment configurer la période de validité de votre certificat CA lors de sa création, consultez ParamÚtres du certificat CA et Créer une autorité de certification racine.

CA par instance hĂ©bergĂ©e par Cloud SQL

La hiĂ©rarchie d'AC par instance est la configuration par dĂ©faut du mode AC du serveur lorsque vous crĂ©ez une instance Ă  l'aide de la gcloud CLI, de l'API Cloud SQL Admin ou de Terraform.

Cloud SQL crĂ©e une nouvelle autoritĂ© de certification de serveur autosignĂ©e pour chaque instance lorsque vous la crĂ©ez. Pour utiliser ce paramĂštre, configurez serverCaMode sur GOOGLE_MANAGED_INTERNAL_CA lorsque vous crĂ©ez l'instance. Vous pouvez laisser le paramĂštre de configuration serverCaMode non spĂ©cifiĂ© Ă  l'aide de l'API Cloud SQL Admin ou de gcloud CLI, ou sĂ©lectionner l'option AutoritĂ© de certification interne Google dans la console Google Cloud .

Le schéma suivant illustre la hiérarchie des CA par instance.

Schéma de la hiérarchie des CA internes par instance.

AC partagées hébergées par le service CA

La hiérarchie d'AC partagée est la configuration par défaut du mode AC du serveur lorsque vous créez une instance à l'aide de la console Google Cloud .

Ce mode d'autoritĂ© de certification de serveur se compose d'une autoritĂ© de certification racine et d'autoritĂ©s de certification de serveur subordonnĂ©es dans chaque rĂ©gion. Les autoritĂ©s de certification de serveur subordonnĂ©es Ă©mettent des certificats de serveur et sont partagĂ©es entre les instances de la rĂ©gion. Cloud SQL gĂšre la rotation des autoritĂ©s de certification de serveur rĂ©gionales partagĂ©es et fournit des liens accessibles au public pour tĂ©lĂ©charger les bundles de certificats CA.

Vous pouvez configurer une instance pour qu'elle utilise une hiĂ©rarchie d'AC de serveur oĂč les AC Ă©mettrices sont partagĂ©es entre les instances de la mĂȘme rĂ©gion. Pour utiliser ce paramĂštre, configurez serverCaMode sur GOOGLE_MANAGED_CAS_CA lorsque vous crĂ©ez l'instance. Vous pouvez Ă©galement sĂ©lectionner AutoritĂ© de certification CAS gĂ©rĂ©e par Google dans la console Google Cloud .

Le schéma suivant illustre la hiérarchie de l'autorité de certification partagée.

Schéma d'une hiérarchie d'AC partagée

AC gérées par le client

Ce mode d'autoritĂ© de certification de serveur vous permet de configurer votre propre hiĂ©rarchie d'autoritĂ©s de certification dans CA Service.

Pour utiliser l'option d'autoritĂ© de certification gĂ©rĂ©e par le client dans Cloud SQL, vous devez crĂ©er un pool d'autoritĂ©s de certification dans la mĂȘme rĂ©gion que vos instances Cloud SQL. Vous devez ensuite crĂ©er au moins une autoritĂ© de certification. Lorsque vous crĂ©ez l'instance Cloud SQL, spĂ©cifiez l'ID du pool d'AC dans le champ serverCaPool et configurez le champ serverCaMode avec la valeur CUSTOMER_MANAGED_CAS_CA. CA Service fournit une autoritĂ© de certification Ă  partir du pool d'autoritĂ©s de certification et l'utilise pour Ă©mettre le certificat de serveur pour l'instance.

Lorsque vous crĂ©ez des autoritĂ©s de certification dans CA Service, vous pouvez crĂ©er une autoritĂ© de certification racine ou une autoritĂ© de certification subordonnĂ©e, selon votre cas d'utilisation. Par exemple, vous pouvez crĂ©er une autoritĂ© de certification subordonnĂ©e si vous prĂ©voyez de configurer une hiĂ©rarchie ou une chaĂźne d'autoritĂ© de certification racine jusqu'Ă  une autoritĂ© de certification externe.

Ne sélectionnez l'option d'autorité de certification gérée par le client que si vous souhaitez gérer vos propres autorités de certification et certificats. Pour en savoir plus, consultez Utiliser une autorité de certification gérée par le client.

Fonctionnement de la rotation des certificats de serveur

Cloud SQL fournit des mĂ©thodes pour faire tourner votre certificat de serveur, afin que le nouveau certificat puisse ĂȘtre mis en place de maniĂšre transparente avant l'expiration de l'ancien.

Pour les instances qui utilisent les hiĂ©rarchies d'AC par instance, d'AC partagĂ©e ou d'AC gĂ©rĂ©e par le client, environ trois mois avant l'expiration du certificat de serveur d'une instance Cloud SQL, les propriĂ©taires de projet reçoivent un e-mail de Cloud SQL leur indiquant que le processus de rotation des certificats a Ă©tĂ© dĂ©marrĂ© pour l'instance concernĂ©e. L'e-mail indique le nom de l'instance et informe les propriĂ©taires de projet qu'un nouveau certificat de serveur y a Ă©tĂ© ajoutĂ© par Cloud SQL. Le certificat de serveur existant continue Ă  fonctionner normalement. De fait, l'instance dispose lors de cette pĂ©riode de deux certificats de serveur.

La commande de rotation du certificat de serveur Ă  utiliser dĂ©pend du type de certificat de serveur que vous utilisez : certificat Ă©mis par une autoritĂ© de certification par instance ou certificat Ă©mis par l'autoritĂ© de certification partagĂ©e ou gĂ©rĂ©e par le client.

Avant l'expiration du certificat de serveur actuel, téléchargez le nouveau fichier server-ca.pem contenant les détails du certificat actuel ainsi que ceux du certificat nouvellement créé. Mettez à jour vos clients PostgreSQL pour qu'ils utilisent le nouveau fichier. Pour cela, copiez le fichier téléchargé vers vos machines hÎtes clientes afin de remplacer le fichier existant.

Une fois tous vos clients PostgreSQL mis Ă  jour, envoyez Ă  l'instance Cloud SQL une commande de rotation (pour l'autoritĂ© de certification par instance) ou une commande de rotation (pour l'autoritĂ© de certification partagĂ©e ou gĂ©rĂ©e par le client) afin de passer au nouveau certificat de serveur. Une fois cette opĂ©ration effectuĂ©e, l'ancien certificat du serveur n'est plus reconnu et seul le nouveau certificat du serveur peut ĂȘtre utilisĂ©.

Les certificats clients ne sont pas affectés par la rotation des certificats du serveur.

Expiration du certificat SSL

Pour les instances Cloud SQL qui utilisent des CA par instance (serverCaMode est dĂ©fini sur GOOGLE_MANAGED_INTERNAL_CA), les certificats SSL ont une pĂ©riode d'expiration de 10 ans. Avant l'expiration de ces certificats, effectuez la rotation du certificat CA du serveur.

Pour les instances qui utilisent des CA partagĂ©es (serverCaMode est dĂ©fini sur GOOGLE_MANAGED_CAS_CA), la pĂ©riode d'expiration des certificats de serveur est d'un an. Avant l'expiration, effectuez une rotation des certificats de serveur. Le certificat de l'autoritĂ© de certification (CA) racine a une pĂ©riode d'expiration de 25 ans, et le certificat de l'autoritĂ© de certification partagĂ©e subordonnĂ©e a une pĂ©riode d'expiration de 10 ans. Cloud SQL gĂšre leur rotation.

Si vous utilisez une CA gĂ©rĂ©e par le client (serverCaMode est dĂ©fini sur CUSTOMER_MANAGED_CAS_CA), vous pouvez effectuer la rotation des certificats de CA en faisant tourner les CA dans le pool de CA que vous avez créé. La pĂ©riode d'expiration d'une CA est gĂ©nĂ©ralement de 10 ans, mais vous pouvez configurer une pĂ©riode de validitĂ© plus courte pour votre CA dans CA Service.

Pour effectuer la rotation des autoritĂ©s de certification, utilisez le processus de rotation des autoritĂ©s de certification dans CA Service. Pour en savoir plus, consultez GĂ©rer la rotation des certificats d'autoritĂ© de certification.

Si un client est configurĂ© pour valider l'autoritĂ© de certification ou le nom d'hĂŽte dans le certificat de serveur, ses connexions aux instances Cloud SQL dont les certificats de serveur ont expirĂ© Ă©choueront. Pour Ă©viter toute interruption des connexions client, faites tourner le certificat de serveur avant son expiration.

Que vous utilisiez le mode serveur de l'autoritĂ© de certification par instance, de l'autoritĂ© de certification partagĂ©e ou de l'autoritĂ© de certification gĂ©rĂ©e par le client, vous pouvez rĂ©initialiser la configuration SSL de votre instance Cloud SQL Ă  tout moment.

Étapes suivantes