Chiffrement des connexions client aux instances de base de données MariaDB avec SSL/TLS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chiffrement des connexions client aux instances de base de données MariaDB avec SSL/TLS

Secure Sockets Layer (SSL) est un protocole de norme industrielle utilisé pour sécuriser les connexions réseau entre client et serveur. Après la version 3.0 de SSL, le nom du protocole est devenu Transport Layer Security (TLS). Amazon RDS prend en charge le chiffrement SSL/TLS pour les instances de base de données MariaDB. En utilisant SSL/TLS, vous pouvez chiffrer une connexion entre votre client d'application et votre instance de base de données MariaDB. Le support SSL/TLS est disponible dans tous les pays. Régions AWS

Utilisation de SSL/TLS avec une instance de base de données MariaDB

Amazon RDS crée un certificat SSL/TLS et l'installe sur l'instance de base de données quand Amazon RDS alloue l'instance. Ces certificats sont signés par une autorité de certification. Le certificat SSL/TLS inclut le point de terminaison de l'instance de base de données en tant que nom commun du certificat SSL/TLS pour assurer une protection contre les attaques par usurpation.

Un certificat SSL/TLS créé par Amazon RDS est l'entité racine approuvée et doit fonctionner dans la plupart des cas, mais il peut échouer si votre application n'accepte pas les chaînes de certificats. Si votre application ne les accepte pas, vous devrez peut-être utiliser un certificat intermédiaire pour vous connecter à votre Région AWS. Par exemple, vous devez utiliser un certificat intermédiaire pour vous connecter aux AWS GovCloud (US) régions à l'aide du protocole SSL/TLS.

Pour plus d'informations sur le téléchargement de certificats, veuillez consulter . Pour en savoir plus sur l'utilisation de SSL/TLS avec MySQL, consultez Mise à jour des applications pour se connecter aux instances MariaDB à l'aide de nouveaux certificats SSL/TLS.

Amazon RDS pour MariaDB prend en charge les versions 1.3, 1.2, 1.1 et 1.0 de Transport Layer Security (TLS). Le support TLS dépend de la version mineure de MariaDB. Le tableau suivant montre le support TLS pour les versions mineures de MariaDB.

Version de TLS MariaDB 10.11 MariaDB 10.6 MariaDB 10.5 MariaDB 10.4

TLS 1.3

Toutes les versions mineures

Toutes les versions mineures

Toutes les versions mineures

Toutes les versions mineures

TLS 1.2

Toutes les versions mineures

Toutes les versions mineures

Toutes les versions mineures

Toutes les versions mineures

TLS 1.1

10.11.6 et versions antérieures

10.6.16 et versions antérieures

10.5.23 et versions antérieures

10.4.32 et versions antérieures

TLS 1.0

10.11.6 et versions antérieures

10.6.16 et versions antérieures

10.5.23 et versions antérieures

10.4.32 et versions antérieures

Vous pouvez exiger des connexions SSL/TLS pour des comptes utilisateur spécifiques. Par exemple, vous pouvez utiliser l'une des instructions suivantes, selon votre version MariaDB, pour exiger des connexions SSL/TLS sur le compte utilisateur encrypted_user.

Utilisez l'instruction suivante.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Pour obtenir plus d'informations sur les connexions SSL/TLS avec MariaDB, consultez la section Securing Connections for Client and Server (Sécurisation des connexions pour le client et le serveur) dans la documentation de MariaDB.

Exiger SSL/TLS pour toutes les connexions à une instance de base de données MariaDB

Utilisez le paramètre require_secure_transport pour exiger que toutes les connexions des utilisateurs à votre instance de base de données MariaDB utilisent SSL/TLS. Par défaut, le paramètre require_secure_transport est défini sur OFF. Vous pouvez définir le paramètre require_secure_transport sur ON pour exiger SSL/TLS pour les connexions à votre instance de base de données.

Note

Le paramètre require_secure_transport est uniquement prise en charge pour MariaDB versions 10.5 et ultérieures.

Vous pouvez définir la valeur du paramètre require_secure_transport en mettant à jour le groupe de paramètres de base de données pour votre instance de base de données. Vous n'avez pas besoin de redémarrer votre instance de base de données pour que la modification prenne effet.

Lorsque le paramètre require_secure_transport est défini sur ON pour une instance de base de données, un client de base de données peut s'y connecter s'il peut établir une connexion chiffrée. Sinon, un message d'erreur similaire au suivant est renvoyé au client :

ERROR 1045 (28000): Access denied for user 'USER'@'localhost' (using password: YES | NO)

Pour plus d'informations sur la définition des paramètres, consultez Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.

Pour plus d'informations sur le paramètre require_secure_transport, consultez la documentation MariaDB.

Connexion à partir du client de ligne de commande MySQL avec SSL/TLS (chiffrée)

Les paramètres du programme client mysql sont légèrement différents selon que vous utilisez la version MySQL 5.7, la version MySQL 8.0 ou la version MariaDB.

Pour savoir quelle version vous avez, exécutez la commande mysql avec l'option --version. Dans l'exemple suivant, la sortie indique que le programme client provient de MariaDB.

$ mysql --version mysql Ver 15.1 Distrib 10.5.15-MariaDB, for osx10.15 (x86_64) using readline 5.1

La plupart des distributions Linux, telles qu'Amazon Linux, CentOS, SUSE et Debian, ont remplacé MySQL par MariaDB, et la version de mysql qu'elles contiennent provient de MariaDB.

Pour vous connecter à votre instance de base de données en utilisant SSL/TLS, procédez comme suit :

Pour vous connecter à une instance de base de données avec SSL/TLS en utilisant le client de ligne de commande MySQL
  1. Téléchargez un certificat racine qui fonctionne pour tous Régions AWS.

    Pour plus d'informations sur le téléchargement de certificats, veuillez consulter .

  2. Utilisez un client de ligne de commande MySQL pour vous connecter à une instance de base de données avec chiffrement SSL/TLS. Pour le paramètre -h, remplacez le nom DNS (point de terminaison) de votre instance de base de données. Pour le paramètre --ssl-ca, remplacez le nom de fichier du certificat SSL/TLS. Pour le paramètre -P, remplacez le port pour votre instance de base de données. Pour le paramètre -u, remplacez le nom d'utilisateur d'un utilisateur de base de données valide, par exemple l'utilisateur principal. Entrez le mot de passe de l'utilisateur principal quand vous y êtes invité.

    L'exemple suivant montre comment lancer le client à l'aide du paramètre --ssl-ca en utilisant le client MariaDB.

    mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl -P 3306 -u myadmin -p

    Pour exiger que la connexion SSL/TLS vérifie le point de terminaison de l'instance de la base de données par rapport au point de terminaison du certificat SSL/TLS, entrez la commande suivante :

    mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl-verify-server-cert -P 3306 -u myadmin -p

    L'exemple suivant montre comment lancer le client à l'aide du paramètre --ssl-ca en utilisant le client MySQL 5.7 ou version ultérieure.

    mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl-mode=REQUIRED -P 3306 -u myadmin -p
  3. Entrez le mot de passe de l'utilisateur principal quand vous y êtes invité.

Vous devez visualiser des résultats similaires à ce qui suit.

Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.6.10-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>