Configurer la connectivité TLS dans Azure Database pour PostgreSQL – Serveur unique

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur unique versions

Important

Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers Azure Database pour PostgreSQL - Serveur flexible. Pour plus d’informations sur la migration vers le Serveur flexible Azure Database pour PostgreSQL, consultez l’article Qu’arrive-t-il au Serveur unique Azure Database pour PostgreSQL ?

Azure Database pour PostgreSQL préfère connecter vos applications clientes au service PostgreSQL en utilisant le protocole TLS (Transport Layer Security), anciennement appelé SSL (Secure Sockets Layer). L’application de connexions TLS entre votre serveur de base de données et vos applications clientes vous protège contre les « attaques de l’intercepteur » en chiffrant le flux de données entre le serveur et votre application

Par défaut, le service de base de données PostgreSQL est configuré de façon à exiger une connexion TLS. Vous pouvez désactiver l’exigence d’utilisation du protocole TLS si votre application cliente ne prend pas en charge la connectivité TLS.

Important

Les certificats intermédiaires SSL sont définis pour être mis à jour à partir du 31 janvier 2024 (31/01/2024). Un certificat intermédiaire est un certificat subordonné émis par une racine approuvée spécifiquement pour émettre des certificats d’entité finale. Le résultat est une chaîne de certificats qui commence à l’autorité de certification racine approuvée, via l’autorité de certification intermédiaire (ou les autorités de certification) et se termine par le certificat SSL émis à vous. L’épinglage de certificat est une technique de sécurité où seuls les certificats autorisés ou épinglés sont acceptés lors de l’établissement d’une session sécurisée. Toute tentative d’établissement d’une session sécurisée à l’aide d’un autre certificat est rejetée. Contrairement à l’autorité de certification racine approuvée, que nous avons déjà mise à jour entièrement au cours de l’année en cours et où le certificat peut être épinglé à l’aide de verify-ca ou de la directive cliente de vérification chaîne de connexion complète, il n’existe aucun moyen standard et bien établi d’épingler l’autorité de certification intermédiaire. Toutefois, il existe une capacité théorique à créer une pile de connectivité personnalisée qui épingle les certificats intermédiaires au client dans divers langages de programmation. Comme expliqué ci-dessus, dans le scénario peu probable où vous épinglé les certificats intermédiaires avec du code personnalisé, vous pouvez être affecté par cette modification. Pour déterminer si vous épinglez des autorités de certification, reportez-vous à l’épinglage de certificats et aux services Azure

Appliquer les connexions TLS

Pour tous les serveurs Azure Database pour PostgreSQL approvisionnés via le Portail Azure et Azure CLI, l’application de connexions TLS est activée par défaut.

De même, les chaînes de connexion prédéfinies dans les paramètres « Chaînes de connexion » du serveur sur le Portail Azure incluent les paramètres requis par les langages courants pour se connecter au serveur de base de données via TLS. Le paramètre TLS varie en fonction du connecteur, par exemple « ssl=true », « sslmode=require » ou « sslmode=require » et d’autres variations.

Configurer l’application du protocole TLS

Vous pouvez désactiver l’application de la connectivité protocole TLS. Microsoft Azure recommande de toujours activer le paramètre Appliquer une connexion SSL pour renforcer la sécurité.

Utilisation du portail Azure

Accédez à votre serveur Azure Database pour PostgreSQL et sélectionnez Sécurité de la connexion. Utilisez le bouton bascule pour activer ou désactiver le paramètre Appliquer une connexion SSL. Sélectionnez ensuite Enregistrer.

Connection Security - Disable Enforce TLS/SSL

Vous pouvez vérifier le paramètre en consultant la page Vue d’ensemble pour voir si l’indicateur d ’état de d’application SSL est affiché.

Utilisation de l’interface de ligne de commande Azure

Vous pouvez activer ou désactiver le paramètre ssl-mise en œuvre en utilisant respectivement les valeurs Enabled ou Disabled dans Azure CLI.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Détermination de l’état des connexions SSL

Vous pouvez également collecter toutes les informations sur l’utilisation SSL de votre instance Azure Database pour PostgreSQL – Serveur unique par processus, client et application à l’aide de la requête suivante :

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Vérification que votre application ou votre infrastructure prend en charge les connexions TLS

Certaines infrastructures d’applications courantes qui utilisent PostgreSQL pour leurs services de base de données n’activent pas le protocole TLS par défaut lors de l’installation. Si votre serveur PostgreSQL applique des connexions TLS, mais que l’application n’est pas configurée pour cela, cette dernière risque de ne pas pouvoir se connecter à votre serveur de base de données. Consultez la documentation de votre application pour savoir comment activer les connexions TLS.

Applications nécessitant la vérification du certificat pour la connectivité TLS

Dans certains cas, les applications nécessitent un fichier de certificat local généré à partir du fichier de certificat d’une autorité de certification (AC) approuvée pour se connecter en toute sécurité. Vous trouverez le certificat permettant la connexion à un serveur Azure Database pour PostgreSQL ici : https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Télécharger le fichier du certificat et enregistrez-le à l’emplacement par défaut.

Consultez les liens suivants afin d’obtenir des certificats pour des serveurs de clouds souverains : Azure Government, Microsoft Azure géré par 21Vianet et Azure Allemagne.

Connexion via psql

L’exemple suivant montre comment vous connecter à votre serveur PostgreSQL à l’aide de l’utilitaire de ligne de commande psql. Utilisez le paramètre de chaîne de connexion sslmode=verify-full pour appliquer la vérification du certificat TLS/SSL. Passez le chemin d’accès du fichier de certificat local au paramètre sslrootcert.

La commande suivante est un exemple de chaîne de connexion pqsl :

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Conseil

Vérifiez que la valeur passée à sslrootcert correspond au chemin de fichier du certificat que vous avez enregistré.

Application de TLS dans Azure Database pour PostgreSQL Serveur unique

Azure Database pour PostgreSQL - Serveur unique prend en charge le chiffrement pour les clients qui se connectent à votre serveur de base de données à l’aide du protocole TLS (Transport Layer Security). TLS est un protocole standard qui garantit la sécurité des connexions réseau entre votre serveur de base de données et vos applications clientes, ce qui vous permet de respecter les exigences de conformité.

Paramètres TLS

Azure Database pour PostgreSQL Serveur unique offre la possibilité d’exiger une version TLS pour les connexions clientes. Pour exiger une version TLS, utilisez le paramètre d’option Version TLS minimale. Les valeurs suivantes sont autorisées pour ce paramètre d’option :

Paramètre TLS minimal Version TLS du client prise en charge
TLSEnforcementDisabled (par défaut) Aucun protocole TLS requis
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 et versions ultérieures
TLS1_1 TLS 1.1, TLS 1.2 et versions ultérieures
TLS1_2 TLS version 1.2 et ultérieures

Par exemple, la définition de ce paramètre TLS minimal sur TLS 1.0 signifie que votre serveur autorisera les connexions en provenance des clients utilisant TLS 1.0, 1.1 et 1.2+. Si vous choisissez la valeur 1.2, en revanche, cela signifie que vous autorisez uniquement les connexions en provenance des clients utilisant TLS 1.2+ et que toutes les connexions à l’aide des protocoles TLS 1.0 et TLS 1.1 sont rejetées.

Notes

Par défaut, Azure Database pour PostgreSQL n’applique aucune version TLS minimale (le paramètre TLSEnforcementDisabled).

Après avoir appliqué une version TLS minimale, vous ne pouvez plus la désactiver.

Pour découvrir comment définir le paramètre TLS pour Azure Database pour PostgreSQL - Serveur unique, consultez le Guide pratique pour configurer le paramètre TLS.

Prise en charge du chiffrement par Azure Database pour PostgreSQL – Serveur unique

Dans le cadre de la communication SSL/TLS, les suites de chiffrement sont validées et seules les suites de chiffrement prises en charge sont autorisées à communiquer avec le serveur de la base de données. La validation de la suite de chiffrement est contrôlée dans la couche passerelle et non pas explicitement sur le nœud lui-même. Si les suites de chiffrement ne correspondent pas à l’une des suites listées ci-dessous, les connexions client entrantes seront rejetées.

Suite de chiffrement prise en charge

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Étapes suivantes

Passez en revue les différentes options de connectivité d’application de la rubrique Bibliothèques de connexions d’Azure Database pour PostgreSQL.