Blog

TLS maintenant disponible pour tout type de bases de données

Chargement...

6 min de lecture

TLS maintenant disponible pour tout type de bases de données

Voyons comment tirer parti de cette fonction de sécurité.

How Scalingo makes migrating from Heroku easy

Après la récente publication de la connectivité TLS de MongoDB, nous sommes heureux d'annoncer que le chiffrement TLS est maintenant généralement disponible pour tous les types de bases de données. Voyons comment tirer parti de cette fonctionnalité de sécurité.

Depuis le début de Scalingo, nous protégions vos bases de données Scalingo des dangers d'Internet en les cachant à l'intérieur de notre réseau sécurisé. Pour y accéder, un tunnel SSL devait être configuré avec notre client en ligne de commande. À partir d'aujourd'hui, toutes les bases de données Scalingo sont livrées avec TLS activé par défaut. Vous pouvez alors choisir de les exposer sur Internet (uniquement si vous choisissez l'option "Forcer TLS").

Notez que Redis ne prend pas encore en charge les communications TLS. Si vous êtes utilisateur de Redis, malheureusement rien ne change pour vous aujourd'hui, vous devez toujours accéder à votre base de données via le tunnel SSH.

Qu'est-ce que TLS ?

Le Transport Layer Security (TLS) est un protocole cryptographique qui fournit une sécurité pour les communications sur les réseaux. Il est également connu sous le nom de Secure Sockets Layer (SSL), son nom précédent.

Lorsqu'une communication est sécurisée par TLS, elle peut avoir une ou plusieurs de ces trois propriétés :

  • La communication est privée (c'est-à-dire que personne ne peut espionner le contenu de votre communication).

  • L'intégrité de votre communication est garantie (c'est-à-dire que personne ne peut modifier le contenu de votre communication sans que vous le sachiez).

  • Les identités des deux parties (client et serveur) peuvent être authentifiées

TLS pour toutes vos bases de données

L'activation de TLS est une fonctionnalité qui a été intégrée dans nos images de base Docker. Elle est disponible pour toutes les bases de données nouvellement provisionnées. Pour les bases de données existantes, vous devrez mettre à niveau vers une version d'image plus récente (jetez un œil à votre tableau de bord de base de données).

Parce que MongoDB, PostgreSQL et MySQL acceptent les connexions TLS et non TLS sur le même port, vous pouvez toujours accéder à ces bases de données avec ou sans TLS. Vous pouvez ensuite choisir plus tard de "forcer TLS" pour éviter que des connexions non chiffrées n'atteignent votre base de données.

Cependant, pour InfluxDB et Elasticsearch, la situation est un peu différente. Ils peuvent utiliser HTTP ou HTTPS mais pas les deux sur le même port. Par conséquent, pour obtenir des connexions TLS, vous devrez activer explicitement l'option "forcer TLS" dans votre tableau de bord de base de données. Les connexions non chiffrées ne seront plus disponibles à partir de là.

Afin qu'une application puisse communiquer en toute sécurité avec votre base de données, vous devez lire la documentation de votre pilote de base de données. Si vous souhaitez vous connecter à votre base de données depuis votre station de travail en utilisant la CLI, voici quelques exemples :

> psql "<connection string>?sslmode=require"
> mongo --ssl --sslAllowInvalidCertificates <connection string>
> mysql --ssl-mode=REQUIRED -u <username> -p <password> -h <hostname> -P <port> <DB name>
> influx -ssl -unsafeSsl -username <username> -password <password> -host <hostname> -port <port> -database <DB name>
# For Elasticsearch
> curl --insecure "https://<username>:<password>@<hostname>:<port>"
> psql "<connection string>?sslmode=require"
> mongo --ssl --sslAllowInvalidCertificates <connection string>
> mysql --ssl-mode=REQUIRED -u <username> -p <password> -h <hostname> -P <port> <DB name>
> influx -ssl -unsafeSsl -username <username> -password <password> -host <hostname> -port <port> -database <DB name>
# For Elasticsearch
> curl --insecure "https://<username>:<password>@<hostname>:<port>"
> psql "<connection string>?sslmode=require"
> mongo --ssl --sslAllowInvalidCertificates <connection string>
> mysql --ssl-mode=REQUIRED -u <username> -p <password> -h <hostname> -P <port> <DB name>
> influx -ssl -unsafeSsl -username <username> -password <password> -host <hostname> -port <port> -database <DB name>
# For Elasticsearch
> curl --insecure "https://<username>:<password>@<hostname>:<port>"
> psql "<connection string>?sslmode=require"
> mongo --ssl --sslAllowInvalidCertificates <connection string>
> mysql --ssl-mode=REQUIRED -u <username> -p <password> -h <hostname> -P <port> <DB name>
> influx -ssl -unsafeSsl -username <username> -password <password> -host <hostname> -port <port> -database <DB name>
# For Elasticsearch
> curl --insecure "https://<username>:<password>@<hostname>:<port>"

Plus d'informations sur la documentation des différentes bases de données : PostgreSQL, MySQL, InfluxDB.

Utilisation du certificat CA

Nos certificats de bases de données sont auto-signés. Si vous souhaitez que le certificat soit fiable, vous devez obtenir notre certificat d'autorité de certification et le spécifier lors de la connexion à votre base de données.

Le certificat de notre autorité de certification est disponible sur l'image de votre application à /usr/share/ca-certificates/Scalingo/scalingo-database.pem. Vous pouvez également le télécharger depuis le tableau de bord de base de données.

Après l'avoir téléchargé, vous pouvez spécifier son chemin pour votre CLI de base de données. Avec PostgreSQL, cela ressemblerait à :

pgsql --ssl --sslCAFile=./ca.pem "<connection string>"
pgsql --ssl --sslCAFile=./ca.pem "<connection string>"
pgsql --ssl --sslCAFile=./ca.pem "<connection string>"
pgsql --ssl --sslCAFile=./ca.pem "<connection string>"

Bases de données disponibles de partout

Depuis le début de l'histoire de Scalingo, nous voulions protéger la communication entre votre ordinateur et la base de données des regards indiscrets. Par défaut, l'accès à la plupart des bases de données n'est pas chiffré, donc non sécurisé. Comme nous ne voulons pas que le trafic réseau non chiffré à destination ou en provenance de vos bases de données, le tunnel de base de données fournit un moyen chiffré d'y accéder.

Maintenant que nous avons activé TLS dans toutes vos bases de données, le trafic entre votre ordinateur et votre base de données dans les installations de Scalingo peut circuler en toute sécurité sans le tunnel.

Vous avez la possibilité d'ouvrir votre base de données pour qu'elle soit accessible publiquement depuis le vaste Internet. Il vous suffit de vous rendre sur votre tableau de bord de base de données et de cliquer sur le bouton bascule pour la rendre accessible depuis Internet.


Scalingo MongoDB screenshot internet
access
Etienne Michon, Scalingo

Étienne Michon

Docteur en informatique, Étienne Michon occupe actuellement le poste d'ingénieur R&D chez Scalingo. Il était l'un des premiers employés de Scalingo et il contribue grandement à faire grandir ce blog grâce à ses articles techniques de qualité.

Restez informé

Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.

Prêt à déployer en toute confiance ?

Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.

Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.

Dégradé arrière-plan section

Déployez une application ou base de données

Commencez à déployer

Rejoignez les équipes qui misent sur une plateforme conçue pour livrer rapidement, opérer sereinement, avec des valeurs européennes et un support humain.