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 fournissent une couche 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 une validation de l'identité du serveur en validant le certificat du serveur installé sur l'instance Cloud SQL et une 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 de l'autorité de certification 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 éventuellement choisir le type d'autorité de certification que Cloud SQL utilise pour signer le certificat de serveur.
Hiérarchies des autorités de certification (CA)
Cette section décrit les trois types d'autorité de certification de serveur (CA) 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 de cette instance.
Cloud SQL crée et gère ces autorités de certification. Pour choisir une autorité de certification par instance, spécifiez
GOOGLE_MANAGED_INTERNAL_CA
pour le paramètreserverCaMode
(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 ou l'indicateur lorsque vous créez une instance, cette option est la valeur par défaut de l'instance. Autorité de certification partagée: avec cette option, 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 est utilisée. 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 serveurs subordonnées sur Google Cloud Certificate Authority Service (CA Service). Cloud SQL gère également la rotation des autorités de certification racine et des autorités de certification de serveurs subordonnées, et fournit des liens accessibles au public vers les bundles de certificats CA à télécharger. Pour choisir une autorité de certification partagée, spécifiez
GOOGLE_MANAGED_CAS_CA
pour le paramètreserverCaMode
(API Cloud SQL Admin) ou l'indicateur--server-ca-mode
(gcloud CLI) lorsque vous créez l'instance.L'option d'autorité de certification partagée est disponible en version Preview.
Autorité de certification gérée par le client: avec cette option, vous créez et gérez 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 partagée, 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 de certificats d'autorité de certification et
CUSTOMER_MANAGED_CAS_CA
pour le paramètreserverCaMode
(API Cloud SQL Admin) ou l'indicateur--server-ca-mode
(gcloud CLI) lorsque vous créez l'instance.L'option de certification autorité de certification gérée par le client est en version Preview.
Une fois que vous avez créé une instance, vous pouvez afficher la hiérarchie de l'autorité de certification configurée pour une instance Cloud SQL à l'aide de la commande gcloud sql instances describe
.
Pour en savoir plus, consultez la section Afficher les informations sur les instances.
Le tableau suivant compare les trois options de hiérarchie de l'autorité de certification.
Fonctionnalité | Autorité de certification par instance | Autorité de certification partagée | Autorité de certification gérée par le client |
---|---|---|---|
Structure de l'autorité de certification | Autorité de certification distincte pour chaque instance | CA racine et autorités de certification subordonnées partagées entre les instances d'une même région | Hiérarchie des autorités de certification que vous créez et gérez |
Attributs cryptographiques | Clé RSA 2 048 bits avec algorithme SHA256 | Algorithme de signature numérique à courbe elliptique (ECDSA) avec clé 256 bits avec algorithme SHA384 | Algorithme de signature numérique à courbe elliptique (ECDSA) avec clé 256 bits avec algorithme SHA384 |
Période de validité de l'autorité de certification | 10 ans | 25 ans pour les autorités de certification racine et 10 ans pour les autorités de certification subordonnées | Configurable * |
Période de validité du certificat du serveur | 10 ans | 1 an | 1 an** |
Rotation de la CA déclenché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 déclenché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 est l'ancre de confiance de l'instance correspondante. | L'autorité de certification racine et les autorités de certification subordonnées constituent 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 points d'ancrage de confiance. |
Validation de l'identité du serveur | La validation de l'autorité de certification permet de vérifier l'identité du serveur, car chaque instance dispose d'une autorité de certification unique. | La validation du nom d'hôte et de l'autorité de certification est requise pour valider 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 nécessairement 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 activées avec Private Service Connect. 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. 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. |
* Pour l'option d'autorité de certification gérée par le client, la période de validité par défaut d'un certificat d'autorité de certification dans CA Service est de 10 ans. Vous pouvez configurer une période de validité différente pour vos certificats d'autorité de certification. Une durée de validité plus courte pour l'autorité de certification peut nécessiter des rotations plus fréquentes de l'autorité de certification, et une durée de validité inférieure à un an peut affecter la durée de validité de vos certificats de serveur. Pour en savoir plus, consultez Gérer la rotation des autorités 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 en savoir plus sur la configuration de la période de validité de votre certificat d'autorité de certification lors de sa création, consultez les sections Paramètres du certificat d'autorité de certification et Créer une autorité de certification racine.
autorité de certification par instance hébergée par Cloud SQL
La hiérarchie de l'autorité de certification par instance est la configuration par défaut du mode d'autorité de certification 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 autorité de certification de serveur autosigné 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 la gcloud CLI, ou sélectionner l'option Autorité de certification interne Google dans la console Google Cloud.
Le schéma suivant montre la hiérarchie des autorités de certification par instance.
Autorités de certification partagées hébergées par le service CA
La hiérarchie d'autorité de certification partagée est la configuration par défaut du mode d'autorité de certification 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'autorité de certification de serveur où les autorités de certification d'émission 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.
Le schéma suivant illustre la hiérarchie des autorités de certification partagées.
Autorités de certification 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'autorités de certification 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 utilise cette autorité pour émettre le certificat de serveur de 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, en fonction de 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 d'autorités de certification racine ou de créer une chaîne avec 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 la section Utiliser une autorité de certification gérée par le client. L'option de certification autorité de certification gérée par le client est disponible en version Preview.
Fonctionnement de la rotation des certificats de serveur
Cloud SQL fournit des moyens de faire pivoter 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'autorités de certification par instance, d'autorités de certification partagées ou d'autorités de certification gérées 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 de l'utilisation d'un certificat de serveur émis par une autorité de certification par instance ou d'un certificat de serveur émis par l'autorité de certification partagée ou l'autorité de certification 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 SQL Server pour qu'ils utilisent le nouveau fichier. Pour cela, copiez le fichier téléchargé vers vos machines hôtes clientes SQL Server afin de remplacer le fichier existant.
Une fois tous vos clients SQL Server mis à jour, envoyez à l'instance Cloud SQL une commande de rotation (pour une autorité de certification par instance) ou une commande de rotation (pour une autorité de certification partagée ou gérée par le client) pour effectuer la rotation vers le 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é.
Expiration du certificat SSL
Pour les instances Cloud SQL qui utilisent des autorités de certification par instance (serverCaMode
est défini sur GOOGLE_MANAGED_INTERNAL_CA
), les certificats SSL ont une période d'expiration de 10 ans. Avant que ces certificats n'expirent, effectuez une rotation des certificats CA de serveur.
Pour les instances qui utilisent des autorités de certification partagées (serverCaMode
est défini sur GOOGLE_MANAGED_CAS_CA
) (Preview), la période d'expiration des certificats de serveur est d'un an.
Avant l'expiration, effectuez une rotation des certificats de serveur.
La période d'expiration du certificat de l'autorité de certification racine est de 25 ans, et celle du certificat de l'autorité de certification partagée subordonnée est de 10 ans.
Cloud SQL gère leur rotation.
Si vous utilisez une autorité de certification gérée par le client (serverCaMode
est défini sur CUSTOMER_MANAGED_CAS_CA
)(Preview), vous pouvez effectuer la rotation des certificats d'autorité de certification en effectuant la rotation des autorités de certification dans le pool d'autorités de certification que vous avez créé. La période d'expiration d'une autorité de certification est généralement de 10 ans, mais vous pouvez configurer une période de validité plus courte pour votre autorité de certification dans le service CA.
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 autorités de certification.
Si un client est configuré pour vérifier l'autorité de certification ou le nom d'hôte dans le certificat du serveur, ses connexions aux instances Cloud SQL dont les certificats de serveur ont expiré échoueront. Pour éviter toute interruption des connexions client, effectuez une rotation du certificat de serveur avant son expiration.
Que vous utilisiez l'autorité de certification par instance, l'autorité de certification partagée ou le mode serveur 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.
Étape suivante
Configurez SSL/TLS sur votre instance Cloud SQL.
Découvrez comment le chiffrement est géré dans Google Cloud.
- En savoir plus sur comment SQL Server utilise les connexions chiffrées.
- Gérez SSL/TLS sur votre instance Cloud SQL.