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 valider 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 du serveur.
Hiérarchies des autorités de certification (CA)
Cette section décrit les deux types d'autorité de certification de serveur (CA) que vous pouvez choisir pour vos instances Cloud SQL. Deux possibilités s'offrent à vous :
- 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, 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 serveurs 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 Certificate Authority Service (CA Service) Google Cloud. Cloud SQL gère également la rotation des autorités de certification racine et des autorités de certification de serveurs subordonnés, 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.
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 l'instance.
Le tableau suivant compare les deux options de hiérarchie de l'autorité de certification.
Fonctionnalité | Autorité de certification par instance | Autorité de certification partagée |
---|---|---|
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 |
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 |
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 |
Période de validité du certificat du serveur | 10 ans | 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. |
Rotation du certificat de serveur déclenchée par l'utilisateur ? | 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 sont les points d'ancrage de confiance pour toutes les instances d'une région donnée. |
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. |
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. |
autorité de certification par instance hébergée par Cloud SQL
Cette hiérarchie d'autorités de certification correspond à la configuration par défaut du mode autorité de certification de serveur.
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
ou laissez le paramètre de configuration non spécifié lorsque vous créez l'instance.
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
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.
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.
La commande de rotation à 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.
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.
Avant l'expiration du certificat 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) 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
Par défaut, les instances Cloud SQL utilisent la valeur par défaut GOOGLE_MANAGED_INTERNAL_CA
comme serverCaMode
. Les certificats SSL ont une période d'expiration de 10 ans. Avant que ces certificats n'expirent, effectuez une rotation de l'autorité de certification.
Pour les instances qui utilisent des autorités de certification 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 la rotation des certificats SSL. 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 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 sont expirés é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 ou le mode de serveur d'autorité de certification partagée, 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.